データテーブルの連結方法

こんにちは

2つのデータテーブルの単純連結をしたいのですが上手くいかないため、お知恵を拝借したく。


テーブル1とテーブル2を単純にテーブル3のように連結したいと思っています。

連結の条件(Column0)を付与してJoinDataTablesアクティビティを試してみましたが、
条件もそのまま連結されてしまうため、想定の動きになりませんでした。


前者のテーブル3の出力結果となる方法をご教示願います。

よろしくお願いいたします。

いろいろやり方があると思いますが、僕も1番スマートなやり方がわかっていません…。

  1. データテーブル1に列を追加して、データテーブル2をforeachで回しながらデータをいれていくやり方

  2. データテーブル1とデータテーブル2にそれぞれID列を追加して、1,2,3,4,5,6…とデータを追加していき、データテーブルを結合アクティビティを使用してくっつける方法

  3. Excelにデータテーブル1を貼り付けて、Excelに列を追加して、その列にWrite Rangeでデータテーブル2を貼り付けて、read rangeで一気にデータテーブルをとる方法

他にもありそうですが、知っている手段はこんな感じです…

1 Like

Hi @jokada

try to use merge datatable and use write range

Check this as well

Thanks
Ashwin S

1 Like

n-shiumiさん AshwinS2さん

ご教示いただきありがとうございました。

列の追加は行の追加のように簡単に追加できなさそうということが分かりました。

Excelへ書き込む前にテーブルにまとめて、一気に範囲で書き込みを考えておりましたが、一筋縄では難しそうですので直接Excelにテーブルをずらしながら張り付ける処理を繰り返すことにします。

「Join Data Tableの手法」を実行後、「不要な列(今回で言えばColumn0, Column0_1)を削除する」というアプローチであればご所望のテーブルが生成されるかと思いますがいかがでしょうか。

1 Like

cheez_RPAさん

連結するテーブルが数十個あるのですが、その手法は有用でしょうか?
是非ともご教示いただけましたら幸いです。
よろしくお願いいたします。

"すべてのテーブルの連結条件として利用する列のパターンが明確で、繰り返しなどを利用して列名を生成できる"のであれば、有用であるように考えます。

ジャストアイデアで検証しておりませんが、下記の要領でいけるのではないでしょうか。

  • 結合されたテーブルのすべての列名を読み込み
    • 列名の中に、"Column0"が含まれる場合、その列名をListなどに格納
  • ListをFor eachでループ
    • 取り出した列名を対象として、結合されたテーブルから列を削除する

(個人的には、上記がビジネスとして開発対象となるのであれば、そもそもUiPathでは実装せずマクロなどで実装し、そのマクロをUiPathで呼び出す形にします。。。)

1 Like

cheez_RPAさん

ご教示ありがとうございます。

用途はビジネス開発なのですが、今回のQ&Aとして投稿したのもマクロが原則禁止のため、UiPathの範囲でなんとか出来ないかとご助力を願い出たのが経緯となります。

列名についてはColumn0_xxで条件のキーをパターン化することは可能です。
教えていただいた列を検索して削除する方法とExcelへの直接書き込みを検討させていただきます。

1 Like