この記事では[データテーブルを結合する]アクションを使ってみて、どういうものかを検証してみたい。前記事「[データテーブル]アクショングループ内のアクション一覧を眺める【Power Automate for desktop】」で[データテーブル]アクショングループを見てみたので、その深掘り記事の1回目というわけだ。
データテーブルの結合に関しては、「Power Automate Desktop|データテーブルを結合する方法」という記事を書いている。この時はまだ[データテーブルを結合する]アクションはなかったから、すごくややこしいテクニックを駆使して実現している。
この時はどうしていたかというと、結局のところ「ExcelのVlookup関数」を使って実装していたんだね。結合専用のフローを作って、それを外部関数として呼び出している形だ。
これからは、こんなややこしいことをしなくて済みそうだ。せっかくなので同じデータを使って作ってみよう。
1つ目のデータは[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|データテーブルを結合する方法」でフローを作ったときは、めちゃくちゃ面倒だったけど、アクション一発でできるのは有難いよ。まだ、実行速度とか件数の上限とか確認したいことはある。実際のデータ変換に使うなら数万件、数十万件というのはザラにあるからね。まぁPower Automate for desktopはそういう本格的なデータ変換に使うようなツールじゃないから、数百件単位で動けば、問題ないんだけどさ。実験としてやっときたいから、別の機会にやろうと思います。それではまた。
コメント ログインすると書き込めます