Power Automateを使って自動化フローを作成する中で、最もよく使われる処理のひとつが「リストの値を取得」する操作です。
特にSharePointリストやExcelのテーブルなどから値を取り出して、条件分岐・通知メール・レポート生成などに活用するケースは非常に多いです。
しかし、実際に使ってみると「値が取れない」「配列しか返ってこない」「1件だけ取り出したい」など、細かなつまずきも多く発生します。
この記事では、Power Automateでリストの値を正しく取得する方法と、データソース別の注意点、実務での応用例までを詳しく解説します。
目次
- ✅ Power Automateで「リストの値を取得」とは?
- ✅ SharePointリストの値を取得する基本手順
- ・手順1:アクション「アイテムの取得」を追加する
- ・手順2:必要に応じて条件を追加
- ・手順3:「Apply to each」で各値を処理
- ✅ Excelテーブルのリスト値を取得する方法
- ・手順1:テーブル形式に変換しておく
- ・手順2:アクションの設定
- ・手順3:特定列の値を参照する
- ✅ リスト値の取得後に1件だけ取り出したい場合
- ・最初の1件を取得する方法
- ・最後の1件を取得する方法
- ✅ 配列の中から特定の値を抽出する方法
- ・例:Title列だけを抽出
- ・例:複数列をまとめて取得
- ✅ フィルターとソートで取得結果を制御する
- ・フィルタークエリ(Filter Query)
- ・Order By(並び替え)
- ✅ 実務での応用例
- ・例1:SharePointリストの承認待ちアイテムを抽出して通知
- ・例2:Excelの在庫リストから不足品を抽出してメール送信
- ・例3:リストの最新値をダッシュボードに反映
- ✅ トラブルシューティング:値が取得できないときの確認ポイント
- ✅ まとめ:リストの値取得を使いこなして業務を効率化しよう
✅ Power Automateで「リストの値を取得」とは?
「リストの値を取得」とは、データソース(例:SharePointリスト、Excelテーブル、Dataverseなど)に保存されている複数のデータを、Power Automateでフロー内に読み込む処理を指します。
取得した値をそのままメールに出力したり、条件分岐で使ったり、別のリストにコピーしたりと、業務自動化の核となる機能です。
このときよく使われるのが、次の2種類のアクションです。
- SharePointリストの場合:「アイテムの取得(Get items)」
- Excel Onlineの場合:「テーブルから行を一覧として取得(List rows present in a table)」
どちらも「複数の値」を配列(Array)として返す点が共通しており、その扱い方が理解のポイントになります。
まずは、Power Automateで最も利用されるSharePointリストを例に、値の取得方法を見ていきましょう。
・手順1:アクション「アイテムの取得」を追加する
- Power Automateのフローで「+ 新しいステップ」をクリック。
- 検索欄に「アイテムの取得」と入力し、「SharePoint - アイテムの取得」を選択。
- 対象のサイトアドレスとリスト名を指定します。
これでSharePointリスト全体を取得する設定が完了します。
・手順2:必要に応じて条件を追加
すべてのリスト項目を取得するのではなく、条件に合うものだけを取り出したい場合は「フィルタークエリ」を設定します。
Power AutomateではOData形式を使用するため、次のように記述します。
Status eq '完了'
これで、「Status」列が「完了」と一致するデータのみが取得されます。
複数条件を指定する場合は、and や or を使って結合します。
Department eq '営業部' and Priority eq '高'
・手順3:「Apply to each」で各値を処理
取得したリストの値は配列として返されるため、「Apply to each(各アイテムに適用)」アクションを追加してループ処理します。
ここで各項目の列名を参照できます。
例)タイトル列の値を表示する場合:
items('Apply_to_each')?['Title']
この構文で、各行の「Title」列を1件ずつ処理できます。
✅ Excelテーブルのリスト値を取得する方法
次に、Excel Online(Business)をデータソースとする場合の方法を見ていきます。
Excelのテーブルから行データを取得するには、「テーブルから行を一覧として取得」アクションを使用します。
・手順1:テーブル形式に変換しておく
Power Automateでは、Excel内の「通常の範囲」は認識されません。
事前にExcel上で範囲を選択し、「Ctrl + T」でテーブル化しておきましょう。
テーブル名は「テーブルデザイン」タブで確認・変更できます(例:Table1)。
・手順2:アクションの設定
- 「+ 新しいステップ」で「Excel」と検索し、「テーブルから行を一覧として取得」を追加。
- 「場所」「ドキュメントライブラリ」「ファイル」「テーブル名」を順に指定します。
- ファイルはOneDriveまたはSharePoint上に保存しておく必要があります(ローカルでは不可)。
この設定で、指定したテーブルのデータがすべて取得されます。
・手順3:特定列の値を参照する
「Apply to each」アクションを追加し、各行に対して次のように列を参照できます。
items('Apply_to_each')?['商品名']
また、特定の行を取得したい場合は「フィルタークエリ」を使います。
たとえば「担当者」が「田中」のデータのみ取得したい場合:
担当者 eq '田中'
これにより、条件に合うレコードだけを自動で抽出できます。
参考:【Power Automate】「アイテムの取得」ができない原因と解決策|SharePoint・Excel別の対処法を徹底解説
✅ リスト値の取得後に1件だけ取り出したい場合
SharePointやExcelで取得したリストは配列形式で返されますが、特定の1件だけを使いたいケースも多いです。
たとえば「最新の1件」や「最初の1件」などです。
・最初の1件を取得する方法
Power Automateではfirst()関数を使うことで、配列の先頭要素を簡単に取り出せます。
first(body('アイテムの取得')?['value'])?['Title']
これで、「アイテムの取得」で得たリストの最初のデータの「Title」列を参照できます。
・最後の1件を取得する方法
同様に、最後の要素を取り出す場合はlast()関数を使います。
last(body('アイテムの取得')?['value'])?['Title']
これにより、リストの末尾データを取得可能です。
特に「最新レコードを取得」したい場合に便利です。
✅ 配列の中から特定の値を抽出する方法
取得したリストの中から、特定の列の値だけを一覧として取り出すことも可能です。
このとき役立つのがselect()関数です。
・例:Title列だけを抽出
select(body('アイテムの取得')?['value'], 'Title')
この式を「配列の作成」アクションに入力すると、リストの「Title」列だけを取り出した新しい配列を生成できます。
・例:複数列をまとめて取得
select(body('アイテムの取得')?['value'], {'Title': item()?['Title'], 'Status': item()?['Status']})
これにより、「Title」と「Status」列をセットで取り出した配列を作成できます。
データ加工やJSON処理を行う前段階として非常に有効です。
参考:【Power Automate】Excelのデータを取得する方法|自動化で業務効率を飛躍的に向上させる実践ガイド
✅ フィルターとソートで取得結果を制御する
リストの値を効率よく扱うには、「取得するデータを最初から絞る」ことが重要です。
Power Automateの「アイテムの取得」には、フィルターや並び替えのためのパラメータが用意されています。
・フィルタークエリ(Filter Query)
特定条件のデータだけを取得できます。
例)ステータスが「完了」のデータだけ:
Status eq '完了'
例)日付が本日より前のデータ:
Created lt '@{utcNow()}'
・Order By(並び替え)
取得データを昇順・降順で並べ替えられます。
例)古い順に並べる:
ID asc
例)新しい順に並べる:
Created desc
この設定により、「最新データを1件だけ取り出す」といった高度な制御も簡単に実現できます。
✅ 実務での応用例
Power Automateでリスト値を取得できるようになると、業務の幅が一気に広がります。
ここでは、代表的な応用シーンを3つ紹介します。
「ステータス = 承認待ち」のデータを毎朝自動で取得し、担当者にTeams通知を送る。
これにより、未対応タスクを見落とすことなく管理できます。
・例2:Excelの在庫リストから不足品を抽出してメール送信
在庫数が10未満のデータを取得して、自動で購買部門に送信。
システムをまたがずに、簡易的な在庫アラートを構築できます。
・例3:リストの最新値をダッシュボードに反映
最新データを1件だけ取得して、Power BIや別システムに転送。
Power Automateのフローをスケジュール実行することで、常に最新情報が自動反映されます。
✅ トラブルシューティング:値が取得できないときの確認ポイント
「アイテムの取得」や「テーブル行の取得」で値が返ってこない場合は、次の項目を確認してください。
- コネクションエラー:使用しているアカウントにリストまたはファイルの閲覧権限があるか。
- テーブル未設定:Excelの場合、範囲がテーブル形式になっているか。
- フィルター構文ミス:
=ではなくeqを使用しているか。 - 件数制限:SharePointリストで既定上限(100件)を超えていないか。
- 列の内部名違い:列名に日本語が含まれる場合、内部名を確認。
これらをチェックすれば、ほとんどの「値が取れない」問題は解決できます。
✅ まとめ:リストの値取得を使いこなして業務を効率化しよう
最後に、本記事のポイントをまとめます。
- Power Automateでリストの値を取得するには「アイテムの取得」または「テーブル行の一覧取得」を使用
- 取得結果は配列で返されるため、「Apply to each」で順に処理
first()やselect()関数で必要なデータのみを抽出できる- フィルタークエリとOrderByで効率よくデータを制御
- 実務では承認管理・在庫通知・ダッシュボード更新などに活用可能
リスト値を自在に取得できるようになれば、Power Automateで扱える情報の幅が格段に広がります。
日々の繰り返し業務を自動化し、正確かつスピーディーにデータを扱うための第一歩として、今回紹介した方法をぜひ活用してみてください。