Power Automate SharePoint・リスト操作

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

Power Automateを使ってSharePointリストやExcelファイルなどから複数のデータを取得する際、「取得はできたけれど順番がバラバラ」「上から順に処理したいのに思った通り動かない」と悩む方は多いのではないでしょうか。
特に、実務では「最新のデータから順番に処理したい」「古い順に承認フローを回したい」など、データの並び順を制御することが求められます。

本記事では、Power Automateで「複数の項目を上から順に取得」するための考え方と設定方法を、実際のフロー構成を交えながらわかりやすく解説します。
また、上から順に処理する際の注意点や、業務での応用パターンについても紹介します。

✅ Power Automateで複数項目を上から順に取得する仕組みとは

Power Automateで複数の項目を取得する際に使われる代表的なアクションは「行の取得(List rows)」や「アイテムの取得(Get items)」です。
これらのアクションは非常に便利ですが、デフォルトのままだと並び順が保証されていないため、思った順序でデータを処理できないことがあります。

・順序が崩れる原因

Power Automateは、データソース(ExcelやSharePointなど)からの取得を「並び順なし」で行う仕様になっている場合があります。
つまり、「1行目→2行目→3行目」という人間が見た順番と、内部的に処理される順番が一致しないのです。
このため、業務で「上から順に処理する」ロジックを作るには、並び替え(ソート)またはループ内の制御を明示的に指定する必要があります。


✅ Excelのデータを上から順に取得する方法

ここでは、Excelをデータソースとするケースで、Power Automate Desktop(またはクラウド版)を使って上から順に取得する手順を紹介します。

・使用する主なアクション

  1. Excelの起動
    対象のファイルを開き、必要であれば「読み取り専用」モードを指定します。
  2. 範囲からデータを読み取り
    「範囲の読み取り(Read from Excel Worksheet)」アクションを使用して、表全体をデータテーブルとして取得します。
  3. For Each(繰り返し処理)アクション
    「For Each」を使用して、データテーブル内の各行を順番に処理します。

このように設定すれば、Power Automate Desktopは上から順(1行目→2行目→3行目)にデータを読み取って処理します。

・実際の設定手順

  1. 「Excelの起動」アクションで対象のExcelを開く。
  2. 「範囲の読み取り」アクションを追加し、データを格納する変数(例:ExcelData)を指定。
  3. 「For Each」アクションを配置し、ループ対象としてExcelData.Rowsを指定。
  4. ループ内で「メッセージを表示」や「変数に代入」など、行ごとの処理を設定。

これで、データは上から順番に処理されるようになります。


✅ SharePointリストのアイテムを上から順に取得する方法

SharePointリストをデータソースにしている場合、クラウドフロー(Power Automate)で「アイテムの取得(Get items)」を使うことが多いでしょう。
しかし、このアクションには注意点があります。デフォルトでは100件までしか取得されず、さらに順序が未指定のままだと並び替えられた結果が返ってくる可能性があります。

・OrderBy(並び替え)クエリの設定

上から順に取得するには、OrderByパラメータを明示的に指定します。
たとえば、SharePointリストの「ID」列を基準に昇順(古い順)で取得する場合は以下のように設定します。

  • Order ByID asc

逆に、新しいデータから順に取得したい場合は ID desc と指定します。

このように「アイテムの取得」アクションの詳細設定でOrderByを使うことで、安定した順序でデータを扱うことが可能になります。

・「Apply to each」で順番に処理する

取得したアイテムは「Apply to each(各アイテムに適用)」アクションで順に処理できます。
Power Automateでは、このループの順番は取得データの並び順に従うため、OrderBy設定をしておくことで正しい順序を維持できます。


✅ 上から順に取得したデータを別の処理に活用する例

順序を正しく制御できると、さまざまな実務フローに応用できます。ここでは代表的な例をいくつか紹介します。

・例1:古い順に承認依頼を送信する

SharePointリストに「申請日」や「作成日」がある場合、古いデータから順に承認メールを送信するフローを作ることで、申請の先着順処理を実現できます。
OrderByを「Created asc」にするだけで、古いデータ順に自動処理が可能です。

・例2:最新データから順にSlackやTeamsへ通知する

逆に、新しい順(降順)に取得しておけば、リアルタイム更新順通知ができます。
たとえば、最新の売上データや新規問い合わせ情報を上から順にTeamsチャネルへ投稿するなど、即時共有が可能です。

参考:【ChatGPT】 Power Automateで会話を自動化|Teamsに自動返信!

・例3:Excelリストのタスクを順に実行

タスクリストをExcelで管理している場合、行の順番をそのままフローに反映できます。
Power Automate Desktopで行単位に処理を行うことで、上から順に確実にタスクを自動実行できます。


✅ 注意点:データソースごとの仕様を理解しよう

Power Automateで「上から順に取得」する際には、データソースによって挙動が異なります。
正しい順序で処理するためには、それぞれの仕様を理解しておくことが大切です。

・Excelの場合

Excelでは、表形式でデータを取得する際に行番号順で読み取られます。
ただし、空白行や結合セルがある場合、データ構造が崩れることがあるため注意が必要です。
可能であれば、テーブル形式(Ctrl + T)に変換しておくと安定します。

参考:【Power Automate】Excelのデータを取得する方法|自動化で業務効率を飛躍的に向上させる実践ガイド

・SharePointリストの場合

SharePointでは、並び順を指定しなければ不定順です。
また、取得件数の上限(デフォルト100件)にも注意が必要です。
必要に応じて「件数制限の解除」や「Top Count」の設定を変更しておきましょう。

・DataverseやSQLなどの場合

これらのデータベース系ソースでは、Order By句をサポートしています。
複数条件で並び替えることもできるため、業務の優先順位やカテゴリ順に並べたい場合に便利です。




✅ 実務での応用テクニック:変数とループの活用

複数項目を順番に処理する際、変数を活用すると処理の自由度が大幅に上がります。

・現在のインデックスをカウントする

「Apply to each」内で現在のループ回数(インデックス)を取得し、
「変数に1を加算して次のループへ渡す」ことで、処理の進捗を把握できます。
これにより、たとえば「上から3件だけ処理する」といった条件制御も可能です。

・条件分岐で一部のみ処理する

For EachやApply to eachの中で条件分岐を追加し、
特定の列の値が「承認待ち」や「完了」でないものだけを処理する、といったフィルタリングもできます。
順序と条件の組み合わせによって、業務ロジックを柔軟に組み立てられます。


✅ トラブルシューティング:順序が崩れるときの対処法

上から順に取得する設定をしても、場合によってはデータの順序が想定と異なることがあります。
その場合は、以下のポイントを確認してください。

  1. OrderBy設定が正しく指定されているか(SharePointリストの場合)
  2. 空白行や異なるデータ型が混在していないか(Excelの場合)
  3. Apply to each の入力が配列のままになっていないか(配列変数の順序が変わるケースあり)
  4. 取得件数制限を超えていないか(最大5000件など)

これらをチェックすることで、順序が乱れるトラブルを防止できます。


✅ まとめ:Power Automateで複数項目を順番通りに処理しよう

最後に、この記事のポイントを整理します。

  • Power Automateでは、デフォルトでデータの順序が保証されない場合がある
  • Excelでは行番号順で読み取り、SharePointではOrderByを使って並び替える
  • 「Apply to each」アクションで、取得順のままループ処理できる
  • 変数を使えば「上から○件だけ処理」などの高度な制御も可能
  • データ構造の乱れや取得上限にも注意が必要

上から順にデータを取得し、正確な順序で処理を実行できるようになると、Power Automateの自動化は一段と実務的になります。
たとえば承認順制御、タスク処理、通知の順序など、順番が重要な業務で効果を発揮します。
順序を意識した設計をマスターして、より信頼性の高い自動フローを構築していきましょう。

    -Power Automate, SharePoint・リスト操作