この記事では、[データテーブルを結合する]アクションを実際に使ってみて、どのように動作するのかを検証してみたいと思います。
以前の方法(VLOOKUPでの結合)
データテーブルの結合については、以前「Power Automate Desktop|データテーブルを結合する方法」という記事を書いています。ただ、その当時はまだ[データテーブルを結合する]アクションがなかったため、かなり複雑なテクニックを使って実現していました。
当時の実装方法
当時はどうしていたかというと、最終的には「Excel の VLOOKUP 関数」を使って結合処理を実装していました。結合専用のフローを作り、それを外部関数として呼び出すという形です。
アクション登場で改善
これからは、こんなややこしい手順を踏まなくても済みそうです。せっかくなので、以前と同じデータを使って試してみます。
使用する2つのデータテーブル
dtDetail(売上明細データ)
1つ目のデータは[dtDetail]です。こちらは[新しいデータテーブルを作成する]アクションで作成していて、売上明細のようなデータが入っています。
dtDetail の中身:

dtMaster(顧客マスタ)
もう一つは[dtMaster]です。こちらは顧客マスタで、顧客ごとに営業担当者が登録されています。
dtMaster:

以下のようなフローになっています。

目標:dtDetail と dtMaster を結合する
今回やりたいのは、[dtDetail]に[dtMaster]を結合した結果を作ることです。外部キーは「顧客CD」になります。すでに下記2つのステップが作成済みなので、次に[データテーブルを結合する]アクションを追加すればよさそうです。
「データテーブルを結合する」アクションの設定
アクションを追加すると、次のような設定ダイアログが表示されます。

設定項目
項目は4つあります。
- 最初のデータテーブル
- 2番目のデータテーブル
- 結合操作
- ルールを結合する
実行すると、[JoinedDataTable]という新しいデータテーブル変数が作られる仕組みになっています。
結合操作の種類
[結合操作]を見ると「内部」「左」「完全」の3種類が選べます。「右」はないので、いわゆる Right Join はできないようです。「内部」は Inner Join、「完全」は完全外部結合のことだと思います。両方のテーブルの全データを使って、結合できるところは結合するという動きですね。ただ、私自身はあまり使う機会はありません。
今回は「内部」でも「左」でも同じ結果になるため、とりあえず「内部結合」で進めてみます。別の機会に「左結合」で一致しない行がどう扱われるかも検証してみたいと思います。
というわけで、以下のように設定します。

結合ルールの設定方法
キー列の設定
[ルールを結合する]の設定は[編集]ボタンから行います。[dtDetail]と[dtMaster]は「顧客CD」をキーに結合するため、下図のように設定すれば問題ありません。設定すると、「INNER JOIN ON [顧客CD]=[顧客CD]」という文が表示されます。SQL が書ける方ならすぐ意味がわかる内容ですね。

実行結果を確認する
では実行してみます。処理が完了すると、データテーブル[JoinedDataTable]には次のようなデータが入ります。

しっかり結合(Join)されていますね!
以前「Power Automate Desktop|データテーブルを結合する方法」で作ったときは本当に手間がかかったのですが、アクション1つで済むのはありがたいです。
今後は実行速度や件数上限など、確認したいこともあります。本番のデータ変換で使う場合、数万〜数十万件というのはよくある話ですからね。もっとも、Power Automate for desktop は大規模なデータ変換向けのツールではないので、数百件単位で動けば業務としては十分ではあります。ただ、実験としては試しておきたいので、そのあたりはまた別の機会に検証してみようと思います。
それでは、またお会いしましょう。
動画も作成したので、こちらもどうぞ!(完全自動化研究所チャンネルより)

コメント ログインすると書き込めます