Excel(データテーブル)のデータ加工について

添付の「元データ.xlsx」のような内容のデータを、「データ加工.xlsx」に記載の内容に加工する作業があります。
※文章でうまく説明できませんでしたので、添付ファイルに加工内容を記載しています。

この加工処理をUipathにてシンプルに実現する方法がありますでしょうか?
ExcelのUI操作は出来るだけせず、可能な限りデータテーブルとアクティビティを利用しての
加工を実現したいと考えております。
(当方でも考えてみていますが、いい方法が思いつかずこちらに投稿させていただいております)

元データの内容はシステムから出力されるデータですが
・システム側を改修して出力されるデータレイアウトを加工後の内容にする
・システム側の改修は実施せず、UiPathにて加工を実現する
のどちらかを検討してますが、後者が容易にできるのであればUiPathで実現したいと考えております。元データ.xlsx (13 KB) データ加工.xlsx (18.0 KB)

私だったら、
1)Dictionary型(String, List)を用意して、
2)キーが無かったらキーと最初に出てきた行をDictionaryに格納する。
3)キーがあったら、その行をDictionary型のValueであるListに追記する。
4)すべてキーを評価し終わったら、全てのDictionary型のValueのListに格納された件数(.Count)を取って、1か1でないかで処理を分岐させる
って感じですねぇ。

システム改修に掛かるコストと、容易に組みにくいとは思いますが、UiPathで実装するのでしたら、圧倒的にUiPathの方がお安いと思います(個人の見解です)。

「材料管理場所=1」の行に、1以外の行の情報を追記するという仕様なら

 「材料管理場所=1」以外の行を退避した後で「材料管理場所=1」以外の行をまず消して、
 退避した情報で「納品場所と商品コードが一致する」行の「発注数量」列に値をセットする

なんて方法もあるかもしれません

UiPathでも、なんならExcelマクロでも出来そうな気も。

こんにちは。
他に良い方法がありそうですが、記載しておきます。
まず、元データを1〜5、材料管理場所ごとに分けます。
データテーブルをフィルタリングで分けました。
最初のテーブル1だけ、列を全て出力しておき、他のテーブルは最低限の列にしておきます。

データテーブルを順番に結合します。
結合型はleft
納品場所コードをイコール
商品名をイコール
これをテーブル分行い、一つのデータテーブルにします。
データの右の方にデータが追加されるイメージです。

繰り返し各行
条件分岐でブランクでない時
代入
発注数量2=上で追加した列

条件分岐は、発注数量2、3、4、5の4回必要になるかと思います。

繰り返しを抜けたところで、不要な右の方の列を削除して範囲に書き込みます。

以上です。使用するアクティビティの種類が少ないので、それ程難しくはないと思います。

皆様

様々な案、ありがとうございます。

poke様の方法が個人的に実現しやすそうだと感じましたので、まずそれから試してみたいと思います。

結果については、あらためてご報告させていただきます。

1 Like