- プログラミングは分からないけど自動化したい
- PowerAutomateの使い方がイマイチ分からない
- SharePointのリストを取得したい
無料ツールでさらにノンプログラミングで自動化ができるならぜひやってみたい!
この記事では、そんな方に向けてSharePointのリストを抽出する方法を5ステップで説明します。
- SharePointのリストと処理結果
- SharePointのリストを取得
- 列をフィルター
- 行をフィルター
- 表にする
この記事を読めば、SharePointのリストから自由に抽出ができるようになります。
まだPowerAutomateを使った事が無いという方はこちらの記事を参考にしてください。
PowerAutomateはブラウザで操作するのでインストール無しで利用できます。Windows10ではないMacユーザも自由に使えます。
SharePointのリストと処理結果
取得するSharePointのリストです。
作業管理表という名前のリストで、作業の日付と完了・未完了が書かれています。
ここから過去の日付・未完了のデータのみにフィルターします。タイトルも省略します。
①フィルターする列名
- 作業予定日
- 作業状況
②フィルターする行の条件
- 作業状況が未完了
- 作業予定日が過去
2022/07/19にフローを動かした結果です。
過去の日付で未完了のみ表示されました。
動かしたフローはこちら。
使っているアクションは7種類です。
- 変数 :変数を初期化する
- SharePoint:複数の項目の取得
- 条件 :Apply to each
- データ操作:作成
- 変数 :配列変数に追加
- データ操作:アレイのフィルター処理
- データ操作:HTMLテーブルの作成
使い方は作りながら見ていきましょう。それではフローを作っていきます。
まだ画面を開いていない方はMicrosoftの公式サイトからPowerAutomateを開いてください。
SharePointのリストを取得
画面左にある作成から「インスタントクラウドフロー」を選択。
フロー名を入力して「手動でフローをトリガーします」を選んで作成します。
新しいステップで「変数を初期化する」を選択。
3か所設定します。
名前:リスト
種類:アレイ
値 :何も入力しない
新しいステップでSharePointの「複数の項目の取得」を選択。
2つ設定します。
サイトのアドレス:https://xxxx.sharepoint.com/sites/tttt
リスト名 :作業管理表
リストを開いた時のURLの赤字の部分を①へ貼り付けます。
https://xxxx.sharepoint.com/sites/tttt/Lists/List2/AllItems.aspx
列をフィルター
今は「複数の項目の取得」という表の中に3つの列がある状態です。
- タイトル
- 作業予定日 ←欲しい列
- 作業状況 ←欲しい列
そこから欲しい列だけ「リスト」という配列にデータを移していきます。
新しいステップでコントロールの「Apply to each」を選択。
「複数の項目の取得」のvalueを指定。
「Apply to each」の中にあるアクションの追加ボタンから、データ操作の「作成」を選択。
文字と動的なコンテンツを組み合わせて画像のように入力する。
{
“作業予定日”:【複数の項目の取得の下にある「作業予定日」を指定】,
“作業状況”:【複数の項目の取得の下にある「作業状況」を指定】
}
この処理で欲しい列を選んでいます。
フィルターする列が2つ以上の場合、最後の項目以外にカンマ( , )をつける
{
“xxxx”:xxxx, ←カンマあり
“yyyy”:yyyy, ←カンマあり
“zzzz”:zzzz
}
フィルターする列が1つの場合カンマは無し
{
“xxxx”:xxxx
}
「Apply to each」の中にあるアクションの追加ボタンから、変数の「配列変数に追加」を選択。
2つ設定します。
名前:リスト
値 :動的なコンテンツの作成にある「出力」
ここで欲しい列だけ「リスト」という配列にデータを移しています。
「Apply to each」の中の処理はここまでです。
「データ操作の作成」と「配列変数に追加」を組み合わせる事で列をフィルターしました。
ここがこの記事のポイントなので列のフィルターを何度か試して感覚を掴んでおきましょう。
次は行のフィルターを説明します。
行をフィルター
行をフィルターするには列名とフィルターする条件を指定します。
新しいステップからデータ操作の「アレイのフィルター処理」を選択。
4か所入力します。
上:動的なコンテンツの「変数」にある「リスト」
左:式に「item()?[‘作業予定日’]」
中:次の値未満
右:動的なコンテンツの「手動でフローをトリガーします」にある「日付」
これでフローを実行した日より古いデータのみになります。
新しいステップからデータ操作の「アレイのフィルター処理」を選択。
2か所入力します。
上:動的なコンテンツの「アレイのフィルター処理」にある「本文」
左:式に「item()?[‘作業状況’]」
中:次の値に等しい
右:未完了
これで未完了のデータのみになります。
列のフィルターと異なり、行のフィルターは「アレイのフィルター処理」だけでできます。
また、作ってわかったと思いますが、フィルターする条件の数だけ「アレイのフィルター処理」を繰り返し使うのがポイントです。
表にする
メールやTeamsへ出力する場合、表形式だと扱いやすくなります。
新しいステップでデータ操作の「HTMLテーブルの作成」を選択。
動的なコンテンツの「アレイのフィルター処理2」にある「本文」を選択。
表にする設定はこれだけです。
フローが完成しました。
処理前のリストがこちら。
それでは日付が過ぎていて完了になっていないデータのみにフィルターします。
①フィルターする列名
- 作業予定日
- 作業状況
②フィルターする行の条件
- 作業状況が未完了
- 作業予定日が過去
フローを動かすと絞り込み結果が表示されました。
まとめ
SharePointのリストを抽出する方法を5ステップで説明しました。
- SharePointのリストと処理結果
- SharePointのリストを取得
- 列をフィルタ
- 行をフィルタ
- 表にする
「データ操作の作成」&「配列変数に追加」で列をフィルタ。「アレイのフィルター処理」で行をフィルタ。この2つを覚えておきましょう。
PowerAutomateのおすすめ記事
人気ページ
Apply to eachの使い方
アレイのフィルター処理の使い方
日付関数の使い方
エラーを無視する方法
メールの内容をExcelへ転記
メール本文から名前を抽出
>>PowerAutomateの記事一覧を見る<<
お気に入り必須!公式ページ
Microsoft Power Automate
式関数のリファレンス
コネクタのリファレンス
Excel Online (Business)のリファレンス