Power AutomateのExcel Online (Business) コネクタで「表内に存在する行を一覧表示」や「表に行を追加」を使おうとして、テーブルの選択欄に何も出てこず先へ進めない、ということがあります。このコネクタの行の操作は、Excelの「テーブル」(Ctrl+Tで作る表)を単位にしています。そのため、シートにデータが入力されているだけでテーブルになっていないファイルは扱えません。

このような場合は、フローの中で「テーブルの作成」アクションを使って範囲をテーブルにし、そのあとで行を読み書きします。

アクションの表示名は、表示言語やサービスの更新によって変わることがあります。この記事では次の名前を使います。

この記事での表記 英語表示での名前
テーブルの作成 Create table
テーブルの取得 Get tables
表内に存在する行を一覧表示 List rows present in a table
表に行を追加 Add a row into a table

先に決めておくこと

決めること 例 注意
対象ファイル /レポート/日次.xlsx xlsx形式で保存したファイルを使う。CSVはこのコネクタでは扱えない
シート名 Sheet1 範囲の指定に使う
テーブル範囲 Sheet1!A1:D1 A1形式で書く。1行目が見出しになる
テーブル名 tblDaily 空白は使えない。英字で始めると扱いやすい
列名 日付、取引先、金額、担当 シートに見出しがない場合に指定する

テーブル名には空白を入れられません。また、A1やR1C1のようにセル番地と同じ形の名前や、ブック内ですでに使っている名前も使えません。

手順1:テスト用のファイルで流れを作る

テーブルの作成は、ファイルの中身を書き換える操作です。本番のファイルではなく、コピーしたファイルで最後まで流れを作り、結果を確かめてから本番のファイルに切り替えます。

ほかの人がファイルを開いて編集していると、ロックがかかって失敗することがあります。テストのときも、対象のファイルは閉じておいてください。

手順2:テーブルがすでにあるか確かめる

テーブルどうしは同じ範囲に重ねて作れないため、同じ範囲に2回作成しようとすると失敗します。毎回実行するフローでは、作成する前に既存のテーブルを調べて、なければ作る形にします。

  1. 「テーブルの取得」を追加し、場所・ドキュメント ライブラリ・ファイルを指定する
  2. 「アレイのフィルター処理」(Filter array)を追加し、元のデータに「テーブルの取得」の出力の一覧(value)を指定する。条件には、テーブル名の項目が tblDaily と等しいことを指定する
  3. 「条件」を追加し、フィルター結果の件数が0と等しいかを判定する。「はい」の側に「テーブルの作成」を置く

条件の式は、たとえば length(body('アレイのフィルター処理')) のように書きます。式の中のアクション名は、フローに付けたアクション名と一致している必要があります。動的なコンテンツから選ぶと正しい名前が自動で入ります。「テーブルの取得」の出力にどの項目名が含まれるかは、一度実行して実行履歴の出力で確かめてください。

手順3:「テーブルの作成」を設定する

項目 入力例 説明
場所 OneDrive for Business SharePointのファイルなら、そのサイトを選ぶ
ドキュメント ライブラリ OneDrive SharePointならドキュメント ライブラリ名
ファイル /レポート/日次.xlsx トリガーで受け取ったファイルなら、動的なコンテンツのファイルIDを指定する
テーブル範囲 Sheet1!A1:D1 シート名+範囲のA1形式
テーブル名 tblDaily 後のアクションで指定するので、必ず名前を付ける
列名 日付;取引先;金額;担当 区切り文字は、入力欄の説明で確認する

列名は次のように扱います。

  • 範囲の1行目にすでに見出しがある場合は、列名を空欄にしてシートの見出しをそのまま使うほうが分かりやすいです。
  • 見出しがある範囲に列名を指定した場合、元の1行目がどう扱われるか(上書きされるのか、残るのか)は、テスト用のファイルで実行してから開いて確かめてください。

テーブル名を空欄にすると自動で名前が付きます。後のアクションで指定しにくくなるので、名前は付けておくことをおすすめします。

手順4:テーブル範囲の決め方

テーブル範囲は自動では広がりません。指定した範囲がそのままテーブルになります。状況に合わせて、次のように決めます。

状況 範囲の指定 注意
見出しだけのシートに、これから行を追加していく Sheet1!A1:D1 最も単純な方法。行は「表に行を追加」で増やす
データの件数が前のアクションから分かる concat('Sheet1!A1:D', add(件数, 1)) 見出しの1行分を足す。件数は、たとえば配列なら length() で求める
件数が分からない既存のデータ 余裕を持たせた大きめの範囲を固定で指定する 空の行もテーブルに含まれるので、読み取ったあとで空の行を除く

行数が毎回変わるデータを、ちょうどの範囲で自動的にテーブルにしたい場合、このアクションだけでは範囲を判定できません。Office Scriptsなど別の仕組みを組み合わせる必要があります。

シート名に空白や記号が入っていると、範囲の指定で失敗することがあります。シート名を変えられるなら、英数字だけの名前に変えておくのが確実です。

手順5:作成したテーブルの行を読む・追加する

行の一覧を取得する

「表内に存在する行を一覧表示」を追加し、ファイルには手順3と同じものを指定します。テーブルのドロップダウンには、フローを編集している時点で存在するテーブルしか表示されません。そのため「カスタム値の入力」を選んで tblDaily と入力します(「テーブルの作成」の出力を動的なコンテンツから指定する方法もあります)。

日付が数値(シリアル値)で返ってくる場合は、アクションの詳細パラメーターに日時の形式の設定があるか確認してください。

行を追加する

「表に行を追加」でもテーブルをカスタム値で指定します。この場合、列ごとの入力欄が表示されず、「行」の欄にJSONで値を渡す形になることがあります。

{
  "日付": "2026-10-06",
  "取引先": "サンプル商事",
  "金額": 12000,
  "担当": "担当A"
}

キーの名前は、テーブルの見出しと完全に同じにします。全角・半角や空白が1文字でも違うと、その列には値が入りません。

うまく動かないときの確認

症状 確認すること
テーブルの作成で失敗する 範囲にすでにテーブルがないか、範囲の書き方とシート名が合っているか、ファイルが編集中になっていないか
テーブル名でエラーになる 空白や記号を含んでいないか、セル番地と同じ形になっていないか、既存の名前と重なっていないか
一覧表示でテーブルが見つからない テーブル名の綴りが合っているか、別のファイルを指定していないか、実行履歴で作成のアクションが成功しているか
取得した行に空の行が多い テーブル範囲を必要以上に広く取っていないか
列が足りない・見出しが意図と違う 範囲の列の幅、列名の指定、元の1行目の内容

最後に結果を確かめる

  • フローの実行履歴で、各アクションの入力と出力を開き、テーブル名・範囲・取得した行数を見る
  • Excelでファイルを開き、「テーブル デザイン」タブでテーブル名を確認する。「テーブルのサイズ変更」で範囲も確認できる
  • 追加した行が、意図した列に入っているかを見る

一度テーブルにしておけば、2回目以降は既存のテーブルを使って行を読み書きできます。範囲と名前を決めてからフローを組むと、「テーブルが選べない」というつまずきを避けられます。

おすすめの記事