Excelテーブルを動的に作成する

目次を開く
  1. はじめに
  2. 設定例
  3. 数式の意味
  4. 注意
  5. まとめ

はじめに

Power Automateの Excelの「テーブルを作成」 アクションは、テーブルが設定されていないExcelからデータを読み取る際に利用します。

一見すると A1:D20 のように固定範囲しか指定できないように見えますが、実は Excel関数を使って動的に範囲指定することも可能です。

これを利用すると、追加データに応じて自動で広がるテーブルを作成できます。

設定例

「テーブルを作成」アクションでは、Table rangeという範囲指定の項目があります。 ここに直接Excel関数を書き込むことができます。 Outputs.png 下記を入力ください。

=OFFSET(Sheet1!A1,0,0,LOOKUP(2,1/(Sheet1!A:A<>""),ROW(Sheet1!A:A)),COUNTA(Sheet1!1:1))

数式の意味

Sheet1 シート名を想定

OFFSET(Sheet1!A1, … ) A1セルを基点に、可変的な範囲を返す

LOOKUP(2,1/(Sheet1!A:A<>“”),ROW(Sheet1!A:A)) A列の最終行番号を取得

COUNTA(Sheet1!1:1) 1行目の列数をカウント → 列数を自動で決定

注意

アクションが実行された後反映まで少し時間がかかります。

まとめ

:::note info ・Excelテーブルを動的に指定する方法はある ・OFFSET + LOOKUP + COUNTA の組み合わせで、追加データにも対応できる! :::

色々調べていて、上記にたどり着いたので共有(更新昨年ぶりですね、ハイ)…