Power Automate SharePoint・リスト操作

【Power Automate】ファイルの取得を並べ替えて扱う方法|最新ファイルを自動処理

Power Automateでファイル操作を自動化していると、「最新ファイルを取得したい」「更新日時の古い順に処理したい」といった場面によく遭遇します。
このとき最も便利なのが「ファイルの取得(プロパティのみ)」アクションです。

ただし、このアクションは単にファイル情報を一覧で取得するだけなので、並べ替え順の指定が必要です。
並び順を設定しないままだと、Power Automateの仕様上「不定順」で返ってくるため、想定外のファイルが選ばれることもあります。

この記事では、「ファイルの取得(プロパティのみ)」を正しく使ってファイルの並べ替え(ソート)を制御する方法を詳しく解説します。
また、OneDriveやSharePointを利用したケース別設定方法、よくあるエラー対策、実務応用例までをまとめています。

✅ 「ファイルの取得(プロパティのみ)」とは?

「ファイルの取得(プロパティのみ)」は、Power Automateでファイル情報を一覧として取得するためのアクションです。
OneDriveやSharePoint内のフォルダにあるすべてのファイルの「名前」「作成日時」「最終更新日時」「パス」などのメタ情報を取得できます。

実際のファイル内容(バイナリデータ)は含まれないため、高速・軽量で使いやすいのが特徴です。
このアクションを起点として、「最新ファイルのコピー」「最終更新日時の通知」「ファイル整理の自動化」など、数多くの実務フローに応用できます。


・アクション名と用途の違い

アクション名内容主な用途
ファイルの取得(プロパティのみ)ファイル名や作成日時などのメタ情報を一覧取得最新ファイル検索、一覧処理
ファイルの取得(コンテンツ)実際のファイルデータを取得コピー、添付、保存処理

「プロパティのみ」を使うと、不要なデータ読み込みを省略できるため、処理速度が向上します。
まずはファイル一覧を取得し、その後で特定の1件を選んでコンテンツを取得するのが定番の構成です。


✅ 基本設定:ファイルの取得(プロパティのみ)

ここでは、SharePointドキュメントライブラリを例に説明します。OneDriveでも手順は同様です。

・ステップ1:アクションを追加

  1. 「+ 新しいステップ」をクリック
  2. 「SharePoint」を検索
  3. 「ファイルの取得(プロパティのみ)」を選択

・ステップ2:アクションを設定

  • サイトのアドレス:対象のSharePointサイトを選択
  • ライブラリ名:「ドキュメント」など、対象のライブラリを指定
  • フォルダー:特定フォルダ配下に限定する場合は指定(空欄で全体)

設定を完了すると、そのフォルダ内のすべてのファイル情報を取得できます。


✅ 並べ替え順(Order By)の設定方法

Power Automateで取得されたファイルリストは、デフォルトでは並び順が保証されていません。
そのため、最新ファイルや特定条件のファイルを扱うには、「Order By(並べ替え)」を設定する必要があります。


・Order Byを設定する手順

「ファイルの取得(プロパティのみ)」の詳細設定を展開すると、「上級オプション(Advanced options)」があります。
その中に「順序付け(Order By)」という項目があり、ここにソート条件を記述します。

例1:最終更新日時の降順(最新順)

Modified desc

例2:作成日時の昇順(古い順)

Created asc

例3:ファイル名のアルファベット順

FileLeafRef asc

例4:複数条件での並べ替え

Modified desc, Created asc

このようにカンマで区切ることで、複数の条件を組み合わせて並べ替えることも可能です。


✅ 「ファイルの取得(プロパティのみ)」+「Apply to each」で順に処理

取得したファイル情報は配列として返されます。
これを1件ずつ処理するには、「Apply to each(各アイテムに適用)」アクションを使用します。

・手順例

  1. 「ファイルの取得(プロパティのみ)」の次に「Apply to each」を追加。
  2. 入力に「Body」または「value」を指定。
  3. 内部で各ファイルの情報を参照します。

例:

items('Apply_to_each')?['Name']      → ファイル名
items('Apply_to_each')?['Modified']  → 更新日時
items('Apply_to_each')?['Path']      → ファイルパス

並べ替えを設定しておけば、このループは指定した順序で実行されます。
たとえば「Modified desc」にしておけば、最新ファイルから順に処理できます。

参考:【Power Automate】リストの値を取得する方法|SharePoint・Excel・変数の扱いまで徹底解説




✅ 最新ファイル1件だけ取得したい場合

多くの業務フローでは、「フォルダ内の最新ファイル1件だけ」を扱いたいケースがあります。
このときは、すべてのファイルを取得してから**最初の要素(first)**を取り出します。

・手順

  1. 「ファイルの取得(プロパティのみ)」で Order ByModified desc を指定。
  2. 次に「変数に値を設定」アクションを追加。
  3. 式に以下を入力:
first(body('ファイルの取得(プロパティのみ)')?['value'])

これで配列の先頭要素(最新ファイル)だけを抽出できます。

その後、?['Path']?['Name'] を指定してファイル名やパスを取り出せます。


✅ SharePointとOneDriveでの挙動の違い

「ファイルの取得(プロパティのみ)」は、SharePointとOneDriveのどちらでも使用できますが、内部仕様にいくつか違いがあります。

・SharePointの場合

  • 「Modified」や「Created」など標準列がすべて利用可能
  • 並べ替えに asc / desc 指定が可能
  • サブフォルダを含めるかどうか選択可能

・OneDriveの場合

  • 並び順指定はサポートされているが、Created 列の値がUTC基準になる
  • サブフォルダ内のファイルをまとめて取得することも可能
  • 「ファイル名順」がデフォルトで返る場合がある(環境依存)

どちらの場合も、確実に順序を固定したい場合は明示的にOrder Byを設定するのが安全です。

参考:Power Automateの「get items(アイテムの取得)」を日本語で完全解説|設定方法とよくあるトラブル対処法


✅ フィルタークエリと組み合わせて効率化

並べ替えと同様に、取得対象を絞りたい場合は「Filter Query(フィルタークエリ)」を使います。
たとえば、特定フォルダ内で特定拡張子のファイルだけ取得したい場合などに便利です。

例1:拡張子が「.xlsx」のみ

substringof('.xlsx', FileLeafRef)

例2:指定フォルダ配下だけ

FileDirRef eq '/sites/業務共有/ドキュメント/レポート'

例3:昨日以降に更新されたファイル

Modified ge '@{addDays(utcNow(), -1)}'

Filter QueryをOrder Byと組み合わせることで、「昨日以降の更新ファイルの中から最新順に処理」といった柔軟な自動化が可能になります。


✅ 実務での応用シナリオ

Power Automateで「ファイルの取得(プロパティのみ)」を使うと、さまざまな業務を自動化できます。
ここでは代表的な3つの例を紹介します。


・例1:毎日アップロードされるレポートの自動転送

部門ごとにフォルダにアップロードされるExcelレポートのうち、最新ファイルだけを自動でメール転送するフローを構築。
手作業でのチェックが不要になり、日次業務が効率化されます。

構成イメージ:

  • ファイルの取得(プロパティのみ)
  • Order By:Modified desc
  • first()関数で最新ファイル取得
  • ファイルの取得(コンテンツ)→メール送信

・例2:フォルダ整理フロー(古いファイルを自動削除)

「Created asc」で古い順に並べて、「30日以上経過したファイルを削除」という自動フローを構築可能。
無駄なファイルを自動整理でき、ストレージ管理コストを削減できます。


・例3:定期バックアップのログ作成

SharePointのライブラリ内にあるファイルを取得し、「更新日順」に整列した一覧をExcelに書き出す。
そのExcelをバックアップログとして保存することで、誰がいつ更新したかを追跡可能にします。


✅ よくあるエラーと対処法

・エラー1:「BadGateway(502)」または「Timeout」

原因:取得対象のファイル数が多すぎる(数千件以上)
対策

  • Filter Queryで対象を絞る
  • ページネーションを有効にする
  • 件数制限を5000件以内に設定

・エラー2:「列名が無効です」

原因:「Order By」で指定した列名が存在しない
対策

  • 使用できる列名は CreatedModifiedFileLeafRefFileDirRef など
  • カスタム列を並べ替えたい場合は、内部名を確認して指定する

・エラー3:「順序付けがサポートされていません」

原因:OneDriveなど、一部環境でOrder Byの複数条件が非対応
対策

  • 1条件に絞る
  • もしくは後続ステップで「並べ替え(Sort)」式を使って制御

✅ 変数と式で並べ替えを再制御する方法

Power Automateでは、Order By以外にも**「sort()」関数**で配列を並べ替えることが可能です。
これは、アクション単体でソートできない環境(OneDriveなど)で特に有効です。

・構文例

sort(body('ファイルの取得(プロパティのみ)')?['value'])

さらに、条件を指定して並べ替える場合は、「select()」と組み合わせてJSON形式で制御します。
たとえば「Modified」で降順にソートしたい場合:

sort(body('ファイルの取得(プロパティのみ)')?['value'], 'Modified', 'Descending')

この方法を使えば、後続処理で柔軟に順序を操作できます。


✅ 効率的なフロー設計のコツ

  1. 「プロパティのみ」で軽量化
    コンテンツを最初から取得せず、必要な1件だけを後で取得する。
  2. Order By+Filter Queryの併用
    データ量を減らして、処理時間を短縮。
  3. 変数への格納と再利用
    一度取得した配列を変数に入れておくと、複数ステップで再利用できる。
  4. 最新ファイル取得のための降順ソート
    Modified desc を設定すれば、常に最新データが先頭に。

✅ まとめ:ファイルの並べ替えを制御して確実な自動処理を実現しよう

Power Automateの「ファイルの取得(プロパティのみ)」は、ファイル操作の自動化を支える重要なアクションです。
ただし、デフォルトのままだとファイルの順序が不定になり、意図した結果が得られないこともあります。

Order ByFilter Query を正しく使えば、最新ファイルや条件付きのデータを正確に取得できます。
さらに、必要な場合は first()sort() 関数を組み合わせて制御すると、より柔軟な処理が可能です。


記事のポイント振り返り

  • 「ファイルの取得(プロパティのみ)」は軽量で高速
  • 並び順は Order By で明示的に指定(例:Modified desc
  • Filter Query と併用して効率化
  • 最新ファイルを取得するには first() を使用
  • エラーは列名・件数制限・環境差に注意

正しい並べ替え設定を行うことで、Power Automateのフローは安定し、手動確認をなくすことができます。
「最新ファイルを自動で検出して処理する」フローを構築すれば、日常業務のスピードと精度が格段に向上するでしょう。

    -Power Automate, SharePoint・リスト操作