SharePoint「複数の項目の取得」で条件に合う項目を絞り込む
SharePointの未完了項目をフィルタークエリで取得。5件の入力から3件を選ぶ例で、列の内部名、valueの件数確認、0件・取得上限の違いを説明します。
画面上の名前は、表示言語やバージョンによって異なる場合があります。クラウドフローはトリガー(フローを開始する条件)から始まり、その後にアクションを実行します。値の受け渡しには、前のステップの出力を選ぶ「動的コンテンツ」を使います。式は[式]欄へ入力します。
実行前に確認
- SharePointへの接続と対象リストの読み取り権限が必要です。練習用リスト・列・データの準備には作成/編集権限も必要です。SharePointは標準コネクタですが、Power Automateの利用権、Microsoft 365の契約、組織のDLPポリシーを確認してください。誰でも無料という意味ではありません。
- このフローは読み取りと確認のみです。更新・削除・メール送信のアクションは追加しません。入力が実行履歴に残るため、個人情報や業務の秘密を練習に使わないでください。
- 0件なら対象サイト・リスト、Status列の文字(前後の空白や表記違い)、フィルター条件を確認します。式が文字のまま出力されたら「作成」の式欄を見直します。valueではなくbody全体をlengthへ渡さないでください。
- Filter arrayは取得後の配列を絞ります。今回のフィルタークエリはSharePoint側で条件を指定するものです。上限で取得できなかった項目を、後からFilter arrayで探すことはできません。
- 大量データではTop Count、ページネーション、リストのしきい値・索引などを別途確認します。10件返ったことや取得成功だけで全件取得と判断しません。この5件の練習は大規模リストの動作保証ではありません。
1使うトリガーとアクション
- トリガー手動でフローをトリガーする
- アクション複数の項目の取得GetOpenItems:Status eq '未完了'、ID昇順、最大10件
- アクション作成RetrievedItems:取得したvalue配列を確認
- アクション作成RetrievedCount:配列の件数を確認。メール送信・更新なし
図で見る処理のイメージ
概念図架空の練習データ5件から、状態が未完了の3件だけを読みます。IDは説明用です。
入力5件
未完了3件・完了2件。TitleとStatusを用意
取得時に絞る
Status eq '未完了' / ID asc / Top Count 10
配列を確認
valueの3件をRetrievedItemsで確認
件数を確認
RetrievedCountは3。0件なら空配列と0
基本は3件。該当なしの条件では0件。Top Countを2にすると2件だけで、未完了総数3件とは異なります。
| ID(例) | 件名(Title) | 状態(Status) | 取得結果 |
|---|---|---|---|
| 21 | 備品確認 | 未完了 | 取得する(1件目) |
| 22 | 会議室予約 | 完了 | 取得しない |
| 23 | 見積確認 | 未完了 | 取得する(2件目) |
| 24 | 資料整理 | 完了 | 取得しない |
| 25 | 棚卸準備 | 未完了 | 取得する(3件目) |
表と図は架空データの期待値です。実際のフローを実行して確認した結果ではありません。
設定と処理を説明する模式図です。実際の設定画面や実行結果のスクリーンショットではありません。
2実際の設定内容
入力する値・操作手順を確認する9ステップの設定と確認方法
- 1
準備:本番ではなく練習用のSharePointリストを使います。標準タイトル列(Title)と、作成時の名前を半角英字Statusにした「1行テキスト」列を用意します。この例では選択肢列やユーザー列を使いません。下の表の件名と状態を5件登録します。IDは自動採番なので、表の21〜25は説明用です。自分の実際のIDを使ってください。
- 2
インスタントクラウドフローに「手動でフローをトリガーする」を置き、SharePointの「複数の項目の取得」を追加してGetOpenItemsに名前を変更します。サイトのアドレスと練習用リストを選択します。「項目の取得」はID指定で1件を読む別アクションです。
- 3
詳細パラメーターのフィルター クエリ欄へ Status eq '未完了' を文字として入力します。Statusは列、eqは等しい、'未完了'は比較する文字列です。式欄に equals(...) を入れる書き方とは異なります。列名は引用符で囲まず、文字の値は半角のシングルクォートで囲みます。
- 4
並べ替え(Order By)=ID asc、上から順に取得(Top Count)=10、アクション設定のページネーション=オフにします。IDの小さい順に条件一致の最大10件を受け取る練習です。リスト全件を取得する設定ではありません。
- 5
データ操作「作成」を追加してRetrievedItemsに変更し、入力の式欄へ body('GetOpenItems')?['value'] を指定します。さらに「作成」を追加してRetrievedCountに変更し、式 length(body('GetOpenItems')?['value']) を指定します。配列全体と件数を見たいのでApply to eachは不要です。
- 6
手動実行し、GetOpenItemsが成功したことを確認してから、実行履歴のRetrievedItemsとRetrievedCountを開きます。表のデータなら取得されるのは備品確認・見積確認・棚卸準備の3件、件数は3です。元のリスト5件は変更されません。ID21・23・25は表と同じIDだった場合の期待値です。
- 7
0件の練習:フィルターだけを Status eq '該当なしテスト' に変更します。その文字を持つ行がなければ、取得成功時のvalueは []、RetrievedCountは0です。エラーで停止した場合とは区別します。確認後は Status eq '未完了' に戻します。
- 8
上限の練習:この5件だけのリストでTop Countを2にすると、未完了3件のうちIDが小さい2件だけが返り、件数は2です。取得件数は条件一致する総件数とは限りません。確認後は10に戻します。全件処理が必要な場合は、関連する期限切れ通知の記事のページネーション確認手順へ進みます。
- 9
既存リストへ応用する前に、列の内部名と種類を確認してください。画面の表示名が「状態」でも、そのままStatusや状態をクエリに書けるとは限りません。本例は作成時からStatusという英字名を使う前提です。列が存在しないエラーなら、まず練習用Status列で成功するか切り分け、既存列の定義をリスト管理者と確認します。表示名の変更だけで内部名を直そうとしないでください。
- 対象環境
- Power Automate クラウドフロー
- 更新日
- 2026年10月9日