活用事例 Power Automate for desktop

【活用事例】データテーブルから特定行のみを抽出する【Power Automate for desktop】

この記事では、データテーブルから特定行のみを抽出する方法を紹介します。

 

データテーブルとは

変数の中に複数の値が格納されているデータ型で、プログラミング用語では 2次元配列 と呼ばれます。
似たようなデータ型として リスト型 がありますが、データテーブルは以下の様に列が2つ以上ある点が特徴です。

 

データテーブル型 は主に以下のアクションで変数に取得されます。

 

テーブル内の値を指定する場合は、 変数名[行番号][列番号]  の形式で指定します。
行番号、列番号は 0 から始まる点に注意しましょう。
上記、%ExcelData%を例とした場合、「山田次郎」の値を使用する際は、「 %ExcelData[1][1]% 」と入力して使用します。

 

データテーブルから特定行のみを抽出する

データテーブルから特定の行のみ抽出したい、特定の条件を満たす行のみを残したデータテーブルをしたい、といった操作は、アクション単体では行えません。
例えば、以下のデータテーブルから Name が「田中太郎」かつ、同姓同名を考慮し Code が「10001」の行のみを取得したい、といった状況です。

 

 

その場合、以下のような操作を行うことで処理可能です。

  • 一度Excelに特定行のみを出力し、読み込み直す
  • 条件を満たさない行のみを削除する

順番に紹介していきます。

 

Excelに出力し読み込み直す

対象としたい行のデータのみを、一度空のExcelに出力し読み直すことで、特定行のみを抽出することができます。
手順としては以下となります。

 

①データの取得

共通の処理ですが、まずは元となるデータを取得する必要があります。
Webページやアプリケーション、Excelファイル等から、対象となるデータテーブルを取得しましょう。

 

②空のExcelを起動

特定のデータのみを取得するため、新たに空のExcelを起動します。

 

③For each アクションと If アクションでデータテーブルのデータを識別

For each アクションはループアクションの一つで、データテーブルから1行ずつデータを取得するアクションです。
If アクションは条件分岐のアクションで、特定の条件を満たす場合のみ処理を行うことができます。
これらを組み合わせることで、データテーブルの特定の条件を満たすデータのみを取得できます。

 

④空のExcelに取得したデータを書き込む

③で取得した特定のデータを、Excelワークシートに書き込む アクションで空のExcelに書き込みます。
なお、データが複数行存在する場合は、Excel ワークシートから列における最初の空の行を取得 アクションを使用することで、次の行に書き込むことが可能です。

 

⑤作成したデータを取得する

④で書き込んだExcelから、Excel ワークシートから読み取る アクションを使用し、データを取得します。

これで特定行のみを抽出したデータテーブルを取得できます。

 

 

 

これでフローは完成です。
実行すると、以下の様に対象のデータテーブルから特定の行のみを抽出できます。

 

条件を満たさない行のみを削除する

対象としたい行のみをデータテーブルから削除することで、Excelに一度吐き出す手間なく特定行のみを抽出することができます。
手順としては以下となります。

 

①データの取得

共通の処理ですが、まずは元となるデータを取得する必要があります。
Webページやアプリケーション、Excelファイル等から、対象となるデータテーブルを取得しましょう。

 

②ループカウント用の変数を作成

後々、データテーブルの行を指定するために現在のループ回数を取得する必要があるため、カウント用の変数を作成します。

 

③For each アクションと If アクションでデータテーブルのデータを識別

For each アクションはループアクションの一つで、データテーブルから1行ずつデータを取得するアクションです。
If アクションは条件分岐のアクションで、特定の条件を満たす場合のみ処理を行うことができます。
これらを組み合わせることで、データテーブルの特定の条件を満たす行のみを指定できます。

なお、ループごとに次の行を指定できるようにするため、変数を大きくする アクションで毎回カウント用の変数を 1 大きくします。

 

④データテーブルから行を削除する

対象とするデータテーブルから、③で取得した特定の行を データ テーブルから行を削除する アクションで削除します。
指定するインデックス(行)はカウント用の変数で指定します。
行を削除後は、データテーブルの行数が減るため、変数を小さくする アクションでカウント用の変数を 1 小さくします。

 

 

これでフローは完成です。
実行すると、以下の様に対象のデータテーブルから特定の行のみ列名を残して抽出できます。

 

-活用事例, Power Automate for desktop
-, , , , , , , , , , ,