mnrsrpa01
(Mnrsrpa01)
1
お世話になっております。
繰り返しと条件分岐とフィルターが必要かと思われる工程をご教授頂きたく、お願いいたします。
日付、取引先、店舗名、商品の入ったExcelシートを使い、売上伝票の入力を行うロボットを作成したく思っています。
内容はExcelを読み込み、納品日・取引先・店舗・商品を入力→登録します。
1行ずつ読み込んで入力→登録は作成できるのですが
複数行の場合。
納品日・取引先名・店舗名が同一であれば違う商品が複数ある場合でも入力可能なので
まとめて入力できるように作成したです。
ExcelではB社 北海道支店 みかんとりんご
C社 東京支店 みかんとりんご が該当します。
ご回答宜しくお願い致します。
Excelデータ.xlsx (9.7 KB)
Yoichi
(Yoichi)
2
こんにちは
以下で動作すると思います。
dict = dt.AsEnumerable.GroupBy(Function(r) Tuple.Create(r("納品日").ToString,r("取引先名").ToString,r("店舗").ToString)).ToDictionary(Function(g) g.Key, Function(g) g.CopyToDataTable)
サンプル
Sample20240424-1.zip (11.1 KB)
mnrsrpa01
(Mnrsrpa01)
3
Yoichi 様
いつもありがとうございます。
代入で作られているこちらの変数はどのようなロジックで作成に至ったのでしょうか。
ご教授頂いてもよろしいでしょうか?
UiPath1年目でまだまだ勉強不足で申し訳ありません。
dt.AsEnumerable.GroupBy(Function(r) Tuple.Create(r(“納品日”).ToString,r(“取引先名”).ToString,r(“店舗”).ToString)).ToDictionary(Function(g) g.Key, Function(g) g.CopyToDataTable)
Yoichi
(Yoichi)
4
こんにちは
これはLINQと呼ばれる式になります。(VB.net(やC#)で使われるSyntaxです)
やっていることは各行を納品日と取引先名の組をキーとしてグルーピングして(GroupByの部分)、そのグルーピングのキーをDictionaryのキーに、グルーピングしたDataRowから生成されたDataTableをDictionaryの値としたDictionaryを生成しています。(ToDictionaryの部分)
繰り返し等でも同様のことはできると思いますが、それなりに複雑なロジックになるので、今回は上記で記載しました。
mnrsrpa01
(Mnrsrpa01)
5
Yoichi様
承知いたしました、ご説明ありがとうございました。
こちらで作成してみます。
1 Like
system
(system)
Closed
6
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.