Power Automate SharePoint・リスト操作

Power Automate|「複数の項目の取得」から1件だけ取り出す方法|条件指定・最新データ抽出ガイド

Power Automate(パワーオートメイト)でSharePointリストやExcelテーブルからデータを取得するとき、
「複数の項目を取得できたけれど、その中から1件だけ使いたい」という場面は非常に多くあります。

例えば、

  • 最新の申請データを1件だけ処理したい
  • 条件に合うレコードを1つだけ抽出して通知したい
  • 一覧の中から最初の項目を取り出して別処理に渡したい

このようなケースでは、「複数の項目の取得(Get items)」や「行の一覧取得」アクションを使い、配列データから1件を抽出する必要があります。

この記事では、Power Automateで「複数の項目を取得した後に1件だけ取り出す」方法を、初心者にもわかりやすく丁寧に解説します。
SharePoint・Excel両方の例を取り上げながら、条件指定や並び替え、関数の活用まで詳しく紹介していきます。

✅ 「複数の項目の取得」アクションの仕組みを理解しよう

Power Automateでは、データ取得アクションを使うと配列(Array)形式のデータが返されます。
この配列には、リスト内のすべての項目(行データ)が格納されており、複数件をまとめて扱える反面、1件だけを抜き出す処理が必要になることがあります。


・SharePointリストの場合

使用アクション:「アイテムの取得(Get items)」
取得結果は「value」配列として返されます。

例:

body('アイテムの取得')?['value']

この配列の中に、リストの各項目がオブジェクトとして格納されています。
そのため、「first()」「last()」関数などを使って特定の1件を取り出すことが可能です。


・Excel Onlineの場合

使用アクション:「テーブルから行を一覧として取得(List rows present in a table)」
同様に、配列で複数行が返されます。

body('テーブルから行を一覧として取得')?['value']

この中から特定条件に一致する1行を抽出する手順は、SharePointリストと同じ考え方で行えます。


✅ 「複数の項目」から1件だけ取り出す3つの代表的な方法

複数件のデータを取得したあと、1件だけを抽出する方法は主に3つあります。


方法①:first() 関数で最初の項目を取得する

最もシンプルなのが first() 関数を使う方法です。
配列の先頭(最初の1件)を直接取り出せます。

例:

first(body('アイテムの取得')?['value'])

これにより、配列の中の最初のデータ1件分の情報が取得されます。
その中の特定列(例:Title列)を参照する場合は、次のように書きます。

first(body('アイテムの取得')?['value'])?['Title']

特徴:

  • シンプルで高速
  • 並び順を制御すれば「最新」や「最古」も簡単に取得可能

注意点:

データの並び順を指定していないと、思わぬ順序で返される場合があります。
そのため、事前に「Order By」などで明確にソートしておくのがおすすめです。


方法②:last() 関数で最後の1件を取得する

last() 関数を使うと、配列の末尾(最後の項目)を取得できます。

例:

last(body('アイテムの取得')?['value'])

この式を使えば、リスト内の「最も古いデータ」や「最新データ」など、目的に応じて選択が可能です。

特徴:

  • 古い順でソートすれば「最新」を取得できる
  • データ量が多くても柔軟に対応できる

方法③:Filter Query と Top Count を組み合わせる

「複数取得 → 抽出」という流れを避け、最初から1件だけ取得する方法もあります。
SharePointの「アイテムの取得」では、上級オプションで「Top Count」を指定できます。

例:

  • 「Top Count」=1
  • 「Order By」=Modified desc

この設定を行うことで、「最終更新日時が最新の1件」だけを取得できます。
関数を使わなくても、アクション設定だけで目的の結果を得られるシンプルな方法です。


✅ 並び順(Order By)を指定して意図したデータを取得する

配列の順番は、取得時に「Order By」を設定しない限り保証されません。
たとえば、最新のデータを取り出したい場合は「Modified desc」などの並び替えを必ず指定しましょう。


・SharePointでの指定方法

「アイテムの取得」アクションの上級オプション内に「順序付け(Order By)」項目があります。

例:

  • 最新順(降順)
    Modified desc
    
  • 古い順(昇順)
    Created asc
    
  • タイトル順
    Title asc
    

これで、first()last() 関数で取り出すデータの順序が確定します。


・Excelでの順序指定

Excelの「テーブルから行を一覧として取得」アクションには直接Order Byがありません。
そのため、取得後に「sort()」関数を使って並び替えるのが一般的です。

例:

sort(body('テーブルから行を一覧として取得')?['value'], '列名', 'Descending')

これにより、指定列を基準に降順で並び替えられます。
その後 first() を使えば、最新のデータを取得できます。

参考:【Power Automate】複数の項目を上から順に取得する方法|実務で使える設定と応用例




✅ 実務でよく使われる1件取得のパターン

ここでは、Power Automateの現場で頻出する「1件取得」の具体的なシナリオを3つ紹介します。


・例1:最新の申請データを1件だけメール通知

フロー構成

  1. 「アイテムの取得」アクションでリストを取得
    • Filter Query:Status eq '承認待ち'
    • Order By:Created desc
    • Top Count:1
  2. 「変数に値を設定」でデータを格納
  3. Outlookで「申請通知メールを送信」

ポイント

最新の1件のみ取得するため、フロー全体が軽量化し、処理も高速になります。


・例2:Excelの最新在庫情報を取得してTeamsに投稿

フロー構成

  1. 「テーブルから行を一覧として取得」アクションで在庫データを取得
  2. 「並べ替え」式:sort()で更新日降順に並べ替え
  3. first()で最新データを取得
  4. Teamsへ「最新在庫:○○」を投稿

ポイント

Excelデータの並びが不定の場合でも、式によるソートで安定した結果が得られます。


・例3:指定条件に一致する最初の1件を取得

複数のレコードの中から、条件を満たす1件だけを取り出したいときは、Filter Arrayを使います。

手順:

  1. 「アイテムの取得」で全件取得
  2. 「Filter array」アクションを追加
  3. 条件例:@equals(item()?['Status'], '完了')
  4. その結果に対して first() を使用:
first(body('Filter_array'))

効果:

条件一致したレコードが複数あっても、1件目のみを確実に処理できます。

参考:【Power Automate】Excelのセルの値を取得する方法|業務自動化に役立つ実践ガイド


✅ よくあるトラブルと対処法

① 「The expression is invalid.」エラー

原因:関数の括弧やパスが間違っている。
対策body('アクション名')?['value'] のように正しい構文で指定する。


② 「配列が空です(null)」エラー

原因:フィルター条件に一致するデータが存在しない。
対策

  • 条件を見直す。
  • 式に coalesce()empty() を使って空データ対策を行う。

例:

if(empty(body('アイテムの取得')?['value']), 'データなし', first(body('アイテムの取得')?['value']))

③ 並び順が期待と違う

原因:Order Byが未設定。
対策:降順または昇順を明確に設定する。


✅ 関数まとめ:1件取得でよく使うPower Automate式

関数用途
first()最初の要素を取得first(body('Get_items')?['value'])
last()最後の要素を取得last(body('Get_items')?['value'])
take()先頭から指定件数を取得take(body('Get_items')?['value'], 1)
sort()並べ替えsort(body('Get_items')?['value'], 'Created', 'Descending')
empty()配列が空か判定empty(body('Get_items')?['value'])

これらを組み合わせることで、複雑な条件にも柔軟に対応できます。


✅ まとめ:複数項目の取得から1件を正確に扱うコツ

最後に、この記事で紹介した内容を振り返ります。

  • 「複数の項目の取得」アクションは配列を返す
  • first()last() で簡単に1件取得できる
  • Order Byを設定して順序を固定することが重要
  • Filter QueryやTop Countで最初から1件取得する方法も有効
  • エラー時は empty()if() で安全に処理

Power Automateの「複数項目取得 → 1件抽出」を正しく設計できるようになると、
最新情報の抽出、日次レポート、承認通知など、多くの自動化フローで安定した結果を得られます。

条件設定・並び順・関数の組み合わせを理解すれば、Power Automateのデータ取得処理は自在にコントロール可能です。
ぜひこの記事を参考に、あなたの業務自動化フローをより正確で効率的なものに仕上げてください。

    -Power Automate, SharePoint・リスト操作