キーで一致する値を取得したい

いつもお世話になっております。

標題の件についてご相談させてください。
図は下記の通りで2つのデータがあり、それぞれデータテーブルにしています。
image
※実際はデータ①1000件ぐらい。データ②は15件ほど。
エクセルだとWorkday関数で=WORKDAY(C6,F6)で加算していました。

■やりたいこと
データ①のroboIDとデータ②のroboIDが同じだった場合
データ②のdeliveryDaysをcreateDateに加算させて
加算させた情報をデータ①createDateに書き込みたいです。


BB-102のcreateDateは2021/7/1なので
データ②のdeliveryDaysの5日を加算
2021/7/6にしてC6のセルに書き込みたい。

■途中までの作成
繰り返し (データ テーブルの各行)

条件分岐
データ②.AsEnumerable.Any(function(r) r(“roboID”).ToString=CurrentRow.Item(“roboID”).ToString)
参照:条件分岐の使い方について

この後の処理がわからないです。
データ①とデータ②のroboIDが同じだったら、
データ②のそれぞれのdeliveryDaysを取得する
それぞれ。。。変数に毎回取得する?

Dictionary型でConfig読み込みと同じようにやってみたり、、でも違う。
どなたかアドバイいただけると嬉しいです><
よろしくお願いします!!!

こんにちは

やり方はいくつかあると思いますが、

方法1:データテーブルを結合アクティビティを使う
方法2:データ2がマスタっぽいので、こちらの内容をあらかじめDictionaryに格納して、データ1の各行を更新する

あたりが候補になるのではと思います。

1 Like

さっそくの回答ありがとうございます!
いま方法2のDictionary型で進めているのですが、
条件分岐でroboID=roboIDでイコールになっているので
それ以降の処理はdeliveryDaysを取得するでいいということでしょうか?
(条件分岐のあとroboIDが同じかどうかは気にしなくていい)

例えばBB-102のdeliveryDaysを取得はDictionary型だと
どのように取得すればいいかわからないです><

こんにちは

エラー対応を除けば条件分岐は不要と思います。
イメージとしては以下の様になると思います。

データ1のRobotIDの中に、データ2のRobotIDが無いものがあれば、それの対応が必要になるかと思います。

1 Like

やってみました。

すごい、、、、一瞬でできました。
こんなスマートなやり方があるなんて。。
鳥肌がたっています。

ずっとおなじroboIDをイコールだったら~と考えていましたが、、、

考え方が違っていました、、、
createDateにdict{roboID,deliveryDays}を当てて
繰り返し処理していくのですね!

このfunctionを使ったやり方、まだまだ勉強不足で。。
本当にありがとうございますm(_ _)m

1 Like

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.