「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番目のデータテーブル」の値以下となっている行を結合します。