Power Automate Desktopのリストについての記事では、リストにおける基礎知識や操作方法などをご説明させていただきましたが、本記事では、リストよりも更にたくさんのデータ数を扱えるデータテーブルについてご説明させていただきます。
リストとデータテーブルは、複数のデータを取り扱える点という一緒ですので基本的な考え方は同じですが、Power Automate Desktopでは操作方法が微妙に異なるので、本記事をしっかりと読み込んでデータテーブルを使いこなせるようになっていただけたらと思います。
データテーブルとは
Power Automate Desktopのリストについての記事でもご説明させていただきましたが、リストはプログラミングの「配列」において一次元配列というもので、横並び一列のデータなのに対し、データテーブルは二次元配列というもので、リストの横並び一列のデータに縦一列のデータが一つ加わったイメージです。
データテーブルではより多くの情報が扱えるようになり、また特定の条件に従って複数の情報から自由に情報を取り出すことが可能です。
データテーブルの作成方法
Power Automate Desktopでのデータテーブル作成方法ですが、変数アクション内にある「変数の設定」を使用します。
全体を、数式を意味する%で囲み、その中に、データテーブルを意味する{}で囲みます。
更にその中に区切りで行を[]で囲み、値を指定します。
少し分かりづらいかと思うので、以下図をご覧いただけたらと思います。

作成されたデータテーブルは以下のようになります。

また列名を指定する場合は、「^」を使って指定します。
先ほど作成したデータテーブルに列名を指定するには、以下図のように記載します。

出来上がったデータテーブルは以下になります。

値の取得
既に作成したデータテーブルから値を取り出すには、%変数名[行番号][列番号]%と指定します。
番号は必ず0から始まりますので、最初の行、列の値を取り出すには%変数名[0][0]%となります。
先ほど作成したデータテーブルを使用すると、以下図のような記載、結果になります。


また列名がある場合は、列名で指定することも可能です。


要素の追加
既に作成済みのデータテーブルに要素を追加するには、「変数の設定」アクション内でデータテーブル変数+[]に追加したい要素を記載、その周りを%で囲むことで可能となります。


行数の取得
%データテーブル変数.RowsCount%と指定することで、データテーブルの行数を取得することが可能です。


列名の取得
%データテーブル変数.Columns %と指定すると、リストの形式で列名を取得することが可能です。


%データテーブル変数. ColumnHeadersRow %と指定すると、データ行の形式で列名を取得することが可能です。


ColumnsとColumnHeadersRowは取得する形式が違うものの、基本的にはどちらも同じで、例えば「For each」でループするときはどちらも列の数分ループし、別のデータテーブルにデータ行として追加することができます。
しかし唯一異なるのが「Excelワークシートに書き込み」に利用する場合で、Columnsでは縦方向に記載されるのに対し、ColumnHeadersRowでは横方向に記載されます。


列名は基本的に横並びで記載するのが一般的かと思いますので、ColumnHeadersRowを使用するのをお勧めします。
列数の取得
%データテーブル変数. Columns.Count %と指定すると、列数を取得することが可能です。


空かどうかの確認
%データテーブル変数. IsEmpty%と指定すると、データテーブルが空かどうか確認することができます。
空であれば「True」、そうでなければ「False」が返ってきます。


データテーブル列をリストに取得
変数アクション内にある「データテーブル列をリストに取得」を使用することによって、指定したデータテーブル変数の特定の列情報を取得することが可能です。
設定方法は、選択画面の「データテーブル」にデータテーブル変数を、「列名またはインデックス」に列名、あるいはインデックス番号を入力します。
(インデックス番号は0から始まります)
取得列は、自動的に生成された変数「ColmunAsList」に格納されます。

ループ処理(For each)
データテーブルの反復処理を行うには、「For each」を使います。
For each内のパラメータ選択画面において、「反復処理を行う値」に反復処理を行いたいデータテーブル変数を指定するだけで、データテーブル内の反復処理を行うことが可能です。

反復処理についてより詳しく知りたい方は、PowerAutomateDesktopの使い方~繰り返し処理~の記事をご覧いただけたらと思います。
まとめ
PowerAutomateDesktopのリストについての記事に続いて、今回は同じ配列の仲間であるデータテーブルについて記載させていただきました。
Power Automate Desktopのリスト・データテーブルに限らず、プログラミング全般において、1つの変数の中にたくさんの情報が入れられる配列という考え方はとても大事な要素であり、使うことでよりシンプルにかつたくさんの情報が扱えることが可能です。
慣れていないうちは少々難しく感じると思いますが、配列は扱うデータが膨大になればなるほど便利さを実感できるものですので、まずは慣れるまで根気強くお使いいただけたらと思います。