shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

【Power Automate】Excelの表から値抽出(2次元配列のDataTableから取得)

Power Automate Desktopの「Excel ワークシートから読み取る」のステップで、値をDateTable(データテーブル)で取得した場合など、データテーブルから値抽出の基本。

基本

例えば、次のようにExcelDataという変数に、データテーブル型で5行5列の2次元配列が格納されているとする。

5行5列のデータテーブル

Datatable(データテーブル)のイメージ

このとき2行3列目(縦方向の番号1、列はColumn3)に該当する値を抽出する場合は、

%ExcelData[1][2]%

と変数に角括弧を追加して行列に相当する数値を指定する。

数値は、行列の開始番号が0であることに注意する。

その他データ型の詳細は以下参照。

learn.microsoft.com

活用例

PowerAutomateで、自分で2次元配列のデータテーブル型の変数を作成しないとしても、ExcelやWEBデータの抽出時などにデータテーブル型となる。

例えば、次のように、指定したExcelのアクティブなワークシートにおいて「ワークシートに含まれる使用可能なすべての値」を取得した場合など。

shikumika.org

このデータテーブル型について、上記の行列を指定した抽出方法を知らないと、データテーブル内をループ処理して取り出すことになり設定の手間と処理時間も増大する。

 

実例としては、複数ブックから単票のExcelデータを抽出する事例を「ワークシートに含まれる使用可能なすべての値」の取得に修正し、次のように値抽出できる。

データテーブルから値抽出したサンプル

「ワークシートに含まれる使用可能なすべての値」を取得のフロー例

なお、上記の「Excelワークシートに書き込む」の設定イメージは次のとおり(角括弧内の数字は必要な値に修正)。

書き込む値に角括弧で行列指定した変数を設定

Excelワークシートに書き込むの設定イメージ

ついでながら、「ワークシートに含まれる使用可能なすべての値」は、Excelのシートにセル結合がある場合は注意が必要です

shikumika.org

 

以上、Power Automateで、2次元配列のDataTableから値を取得する方法でした。