今回は、結合ツールのTipsです。結合ツールは2つのデータストリームを合体するためのツールです。
![](https://analytics-x.tech/wp-content/uploads/2022/08/MolecularJoin2.png)
通常はあるキー列に基づいてデータの結合を行いますが、キー列がないような場合はどうすればよいのでしょうか?
キー列なしで結合する
キー列がないといっても何かしら結合するためのロジックがないと結合できません。例えば、以下のようにリソースを割り当てるような例を考えてみましょう。
まずは仕事のタスクリストがあるとします。
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_1.png)
次に、タスクを割り当てる人のリスト(リソースリスト)があるとします。
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_2.png)
これらは紐づけるIDなどがあるわけではないのでそのまま結合できません。
しかしながら、毎日リソースリストの人たちにタスクリストを上から順に一つずつ割り当てる、というルールを考えます。この場合、両方のリストを行の位置で結合すれば良い、ということになります。
行の位置で結合
行の位置で結合するには、結合ツールに便利なオプションがあり、「レコードポジションで結合」オプションが利用可能です。
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_3.png)
これにより、以下のようにデータを結合できます。
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_4.png)
結合できなかったタスクリストは、L出力に出力されます。
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_5.png)
ワークフローとしては以下のようになります。
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_6.png)
数日分を結合できませんか?
しかしながら、上の方法だと基本的に1日分しか結合できないです。例えばこれを3日分結合したいとします。
この場合は、行生成ツールを用いてリソースリストを3日分作成して結合する、という方法が最も簡単です。ワークフローとしては以下のようになります。
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_9.png)
行生成ツールでは、3日分のリソースを作るためにそれぞれのレコードを3回分繰り返します。
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_7.png)
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_8.png)
基本的には、日ごとにデータを並べたいので、ソートツールで日付ごとにソートします。
![](https://analytics-x.tech/wp-content/uploads/2024/05/weekblog_045_10.png)
なお、もっと割当条件が複雑な場合は反復マクロやバッチマクロなどの利用が必要となります。例えば地区ごとに割当が必要、ということになるとバッチマクロでグルーピングが必要になったりします。
もっと複雑なパターンの場合は、Weekly Challenge「チャレンジ #263: マクロを使用した効率的なリソース配分」をご参照ください。
サンプルワークフローダウンロード
次回
次回は行生成ツールのTipsの予定です。 もう一度結合ツールのTipsです。
コメント