Power Automateで前月分をSharePoint→Excelへ送るときの落とし穴

Power AutomateでSharePoint OnlineリストからExcelへデータを書き出すフローを作成した際にハマったポイントを解説。内部名(OData)、前月フィルター、Excelテーブル追加などの落とし穴をまとめました。

Power Automateで前月分をSharePoint→Excelへ送るときの落とし穴(用語解説つき)

このメモは、Power Automateで以下を実現しようとして苦戦したポイントを、用語の意味も交えながら丁寧にまとめたものです。

  • 毎月1日に自動実行(スケジュール)
  • SharePoint Onlineリストから前月分のデータを取得
  • テンプレートExcelをコピーして新規ファイル作成
  • 取得データを1件ずつExcelのテーブルに追加
  • ExcelをPDF化

0. まず結論:何が難しかったのか?

今回つまずいた箇所は次の3つです。

  1. データの “見た目の名前” と “内部で使われる名前" (以下:内部名)が違うのでそれを調べることが必要
  2. Excelへ追加する時は“テーブル化”が必須で、要求される形が厳密
  3. そもそも使いづらい(ほんとにIT企業が開発したアプリか?)

1. 用語解説(最低限これだけ押さえる)

✅ Power Automate(フロー)

Microsoftの自動化ツール。
「トリガー(きっかけ)→ アクション(処理)」をつないで作る。

「ロー コードと AI を利用したロボティック プロセス オートメーションを使用して、より速く移動し、よりスマートに作業し、自信を持ってスケーリングできます。」 公式サイトより

Microsoft製品と繋げなきゃいけないという時に真価を発揮する?(逆にその必要がない場合は不要)


✅ SharePoint Onlineリスト

Excelの表みたいに、行(アイテム)が並ぶデータベース。

  • 1行 = 1件のデータ(アイテム)
  • 列(カラム) = 利用日、所属、氏名など

✅ フィルタークエリ

SharePoint Onlineから取得するときに「条件に合うデータだけ取る」ための式。

例:「前月の利用日だけ取得」など。


✅ For each(それぞれに適用)

データが複数件あるときに、1件ずつ繰り返し処理するループ

例: SharePoint Onlineからデータを10件取れたら、10回「表に行を追加」が実行される


✅ Excelテーブル(Table)

Power AutomateでExcelに行追加する時は、セル範囲ではなく “テーブル” を相手にする。

  • Excelで「挿入 → テーブル」で作るもの

  • テーブルが無いと「表に行を追加」は基本的に動かない

  • テーブルの作成とテーブル名の指定にはこちらのサイトを参考にさせていただきました。


✅ 内部名(Internal name)

SharePoint Onlineの列は、画面に見えている“表示名”とは別に、内部で使う名前がある。

特に日本語列は、内部名が暗号っぽい形になりがち。


2. 苦戦ポイント①:SharePoint Onlineの列名が「利用日」じゃない

起きた現象

データベースから、「利用日」「所属」「氏名」を参照できない

“““フローの保存がコード ‘InvalidTemplate’ およびメッセージ ‘The template validation failed: ‘The repetition action(s) ‘Apply_to_each’ referenced by ‘inputs’ in action ‘表に行を追加’ are not defined in the template.’.’ で失敗しました。”””

原因

SharePoint Onlineの取得結果を見ると、列名がこうなっていた:

  • 利用日(表示名)ではなく
    OData__x5229__x7528__x65e5_(内部名)

つまり、式で ['利用日'] を指定しても存在しない扱いになり、エラーが出る。

内部名はどうやって知る?

テスト を実施して、「複数の項目の取得」の出力の生データを確認する。

そこに “本当のキー名” が出てくる。


5. 苦戦ポイント④:Excel「表に行を追加」は“1行オブジェクト”が必要

起きたエラー(最初の方)

A value must be provided for item

原因

「表に行を追加」の item(行)には、1セルではなく

  • 1行分(1データ)

を渡す必要がある。

✅ 実際に渡されるデータのイメージ

{
  "利用日": "2026/02/17",
  "所属": "鰻屋",
  "氏名": "藤井",
  ...
}

6. 苦戦ポイント⑤:成功してるのに「空に見える」問題

❌ 起きた勘違い

「成功になってるのにExcelに反映されてない!」

Power Automate上では(クラウド上のフロー)エラーが出ていないのに、 Excelシートを見ると「データが入っていない」ように見えた。


🔍 実際はどうだったか

実行履歴のレスポンスを見ると:

  • statusCode: 200
  • 追加した行の値(利用日、所属、氏名など)

がしっかり返っていた。

つまり:

処理自体は成功していた。


💥原因

  • 処理成功から実際の保存・反映まで約30秒のラグがある

解決方法

  • “遅延”を用いて30秒待たせた。(保存終わってから次の処理走らせろよ)

8. 本番移行時に発生した「接続破損」エラーの教訓

❗ 発生したエラー


'表に行を追加' の接続が破損しています。
接続を修正してください。

🔎 なぜ起きたのか?

Power Automateの接続(SharePoint Online や Excel Online の API 認証)は、以下に紐づいている:

  • ユーザーアカウント
  • 環境(開発/本番)
  • 認証トークン

そのため、

開発環境で作成した接続は、本番環境ではそのまま使えない

ことがある。

フロー自体は正常でも、接続情報だけが無効になる



✅ どの接続が壊れているか確認する方法

方法①:アクション単位で確認(最も確実)

  1. フローを編集モードで開く
  2. 問題のアクションをクリック
  3. 右側パネル上部の「接続」欄を確認

⚠ 「無効」「修正が必要」と表示される


方法②:接続一覧から確認

  1. 左メニュー → 「データ」
  2. 「接続」
  3. 状態が「エラー」になっているものを探す

🔧 対処方法

  • 「接続を修正」をクリック
  • 新しい接続を作成
  • 本番用アカウントで再認証しても上手く行かなかったので、失敗したブロックを削除して同じものを作り直した。

Hugo で構築されています。
テーマ StackJimmy によって設計されています。