【Power Automate Desktop】変数|データテーブルの結合

PAD

「Power Automate Desktop」のアクション「データテーブルを結合する」について、具体例をつかって解説をします。

スポンサーリンク

概要

指定された結合ルールに基づいて2つのデータテーブルを結合します。

結合操作

2つのテーブルの結合に使用される結合操作です。

選択項目によって、2つのデータを結合する際の「結合範囲」を指定します。下図の赤枠で囲われているところがデータの結合範囲です。

Inner

2つのデータテーブルに共通する行を結合します。

Left

左側のデータテーブル(項目「最初のデータテーブル」)のすべての行と、結合条件にあう右側のデータテーブルの行を結合します。

Full

2つのデータテーブルに含まれるすべての行を結合します。

ルールを結合する

2つのデータテーブルの結合に使用する列と操作を定義します。
「最初のデータテーブル」と「2番目のデータテーブル」を、「条件付き」の項目にもとづいて比較して結合します。

「条件付き」の項目は以下のとおりです。

項目内容
と等しい(=)「最初のデータテーブル」と「2番目のデータテーブル」で指定した列名またはインデックスを比較して、2つのデータテーブルでおなじ値の行を結合します。
等しくない(<>)「最初のデータテーブル」と「2番目のデータテーブル」で指定した列名またはインデックスを比較して、2つのデータテーブルで異なる値の行を結合します。
より大きい(>)「最初のデータテーブル」と「2番目のデータテーブル」で指定した列名またはインデックスを比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値よりも大きい行を結合します。
以上である(>=)「最初のデータテーブル」と「2番目のデータテーブル」で指定した列名またはインデックスを比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値以上の行を結合します。
より小さい(<)「最初のデータテーブル」と「2番目のデータテーブル」で指定した列名またはインデックスを比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値よりも小さい行を結合します。
以下である(<=)「最初のデータテーブル」と「2番目のデータテーブル」で指定した列名またはインデックスを比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値以下の行を結合します。

「結合操作」ごとのデータテーブルの結合例

つぎの2つのデータテーブル「DataTable1」と「DataTable2」をつかって、それぞれの出力結果を確認していきましょう。

なお、以下ご紹介するすべての出力結果については、項目「ルールを結合する」における条件は「と等しい(=)」にて実施しています。

Inner

こちらがアクションの画面です。結合操作「Inner」を選択しています。

こちらが実行結果です。
「DataTable1」と「DataTable2」に共通する項目のみが結合されていることが確認できます。

Left

こちらがアクションの画面です。結合操作「Left」を選択しています。

こちらが実行結果です。
「DataTable1」のすべての行と、それに対応する「DataTable2」の行が結合されていることが確認できます。

Full

こちらがアクションの画面です。結合操作「Full」を選択しています。

こちらが実行結果です。
「DataTable1」と「DataTable2」のすべての行が結合されていることが確認できます。

「ルールを結合する」ごとのデータテーブルの結合例

2つのデータテーブルの結合に使用する列と操作を定義します。
「最初のデータテーブル」と「2番目のデータテーブル」を、「条件付き」の項目にもとづいて比較して結合します。

つぎの2つのデータテーブル「DataTable1」と「DataTable2」をつかって、それぞれの出力結果を確認していきましょう。

いずれのデータテーブルにも列名「Column_No」が共通事項として含まれています。こちらの列名をもとに2つのデータテーブルが結合をした後に、それぞれの条件に適合する値が返されます。

と等しい(=)

「最初のデータテーブル」の列名「Column_No」の値と、「2番目のデータテーブル」の列名「Column_No」の値を比較して、等しい値を返します。

  • Inner:両方のデータテーブルに共通する値のみを返します。
  • Left:「最初のデータテーブル」に含まれている値をすべて返したうえで、「2番目のデータテーブル」の値に共通する行を結合します。
  • Full:両方のデータテーブルの保持するすべての値を返したうえで、共通する行のみを結合します。

等しくない(<>)

「最初のデータテーブル」の列名「Column_No」の値と、「2番目のデータテーブル」の列名「Column_No」の値を、各条件にもとづいて比較したうえで値を返します。

  • Inner:両方のデータテーブルの「Column_No」の値を比較して、値が等しくない行のみを結合します。
  • Left:両方のデータテーブルの「Column_No」の値を比較して、値が等しくない行のみを結合します。
  • Full:両方のデータテーブルの「Column_No」の値を比較して、値が等しくない行のみを結合します。

今回の事例の場合「Inner・Left・Full」いずれの結合操作であってもおなじ出力結果となりました。

より大きい(>)

「最初のデータテーブル」の列名「Column_No」の値と、「2番目のデータテーブル」の列名「Column_No」の値を比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値より大きい行を結合します。

  • Inner:両方のデータテーブルを比較して、「2番目のデータテーブル」より「最初のデータテーブル」で値の大きい行のみを結合します。
  • Left:左側の「最初のデータテーブル」に含まれている値をすべて返したうえで、「2番目のデータテーブル」より「最初のデータテーブル」の大きい値の行を結合します。
  • Full:両方のデータテーブルの保持するすべての値を返したうえで、「2番目のデータテーブル」より「最初のデータテーブル」の大きい値の行を結合します。

以上である(>=)

「最初のデータテーブル」の列名「Column_No」の値と、「2番目のデータテーブル」の列名「Column_No」の値を比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値以上となっている行を結合します。

  • Inner:両方のデータテーブルを比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値以上となっている行のみを結合します。
  • Left:左側の「最初のデータテーブル」に含まれている値をすべて返したうえで、「最初のデータテーブル」の値が「2番目のデータテーブル」値以上となっている行を結合します。
  • Full:両方のデータテーブルの保持するすべての値を返したうえで、「最初のデータテーブル」の値が「2番目のデータテーブル」の値以上となっている行を結合します。

より小さい(<)

「最初のデータテーブル」の列名「Column_No」の値と、「2番目のデータテーブル」の列名「Column_No」の値を比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値より小さい行を結合します。

  • Inner:両方のデータテーブルを比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値より小さい行のみを結合します。
  • Left:左側の「最初のデータテーブル」に含まれている値をすべて返したうえで、「最初のデータテーブル」の値が「2番目のデータテーブル」の値より小さい行を結合します。
  • Full:両方のデータテーブルの保持するすべての値を返したうえで、「最初のデータテーブル」の値が「2番目のデータテーブル」の値より小さい行を結合します。

以下である(<=)

「最初のデータテーブル」の列名「Column_No」の値と、「2番目のデータテーブル」の列名「Column_No」の値を比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値以下となっている行を結合します。

  • Inner:両方のデータテーブルを比較して、「最初のデータテーブル」の値が「2番目のデータテーブル」の値以下となっている行のみを結合します。
  • Left:左側の「最初のデータテーブル」に含まれている値をすべて返したうえで、「最初のデータテーブル」の値が「2番目のデータテーブル」値以下となっている行を結合します。
  • Full:両方のデータテーブルの保持するすべての値を返したうえで、「最初のデータテーブル」の値が「2番目のデータテーブル」の値以下となっている行を結合します。