2つのデータテーブルの行を、特定の列から列方向に比較するには

お世話になります。
添付のような受診者データがあり、受診年齢で受信しなくてはならない項目が決まっています。受信年齢で受信が必要な項目は、シート「必要受診項目」のとおりです。
受診者データのうち受診年齢で未受診の項目がある人を抽出し、未受診項目がある人のリストを作成し、別シートに記載するワークフローを作成しています。

1.受診者データ及び必要受診項目のデータテーブルを作成
2.受信者データの「問診」列の列番号及び最終の列番号を変数に代入
3.受信者データを行方向に必要受診項目と比較するため「ForEachRow」アクティビティを作成。
以下は「ForEachRow」内の作業
3.「Swich」アクティビティで受診者年齢で受信者データのどの行と比較するかを決め、行番号を変数に取得。
4.列名「問診」から列方向に2つのデータテーブルの内容を比較する。

4の列方向に比較していくのに
・受診者データの列名「問診」から以降(右方向)のデータの配列変数を作成し、「ForEach」アクティビティでデータを比較する。
・2で取得した列番号を利用してループを考える。
の2つの方法を考えましたが、具体的なワークフローが分かりません。

何か良い方法をご教示頂けると助かります。
よろしくお願いします。

私だったら、受診者側のテーブルに、新たな列を挿入し(アクティビティ失念)、
受診年齢から、必須受診項目側の受信年齢と同じ文言を生成し、その列に格納。
その文言同士でJoinTABLEしてから評価するかな?

山田二子 34歳 → 「34歳以下」
山田七子 37歳 → 「35歳~44歳」

ってな具合にして。。。

1 Like

HANACCHI様、お世話になります。
方法の提案有難うございます。
当方UiPathを使用し始めて日が浅いため、もう少し詳しくご教示ください。

受診者側テーブルに年齢範囲の文言を追記する方法は分かりますが、
「その文言同士でJoinTABLEしてから評価」
の部分がピンときません。
受診者側テーブルの同じ年齢範囲のデータ(例えば「34歳以下」)を抽出し、
必須受診項目側のデータ(「34歳以下」)と結合するということでしょうか?

お手数ですが、結合する内容と評価の方法についてご教示ください。
使用するアクティビティも教えて頂けると助かります。
よろしくお願いいたします。

Hi @Masapapa

Check this

use add data row as Age

for each row in dt

row(“Age”).toString>=30 and row(“Age”)<=30

based on that get rows

Thanks
Ashwin S

1 Like

必須受診項目は、「~歳以上」「~歳以下」の2つの行にわけると、区分が変わったときにワークフローを、修正しやすいです。

サンプルを作ってみたので、ご確認ください。CompareDataTableIssue.zip (23。7 キロバイト)

3 Likes

Ashwin S 様

返信ありがとうございます。
参考にします。

34歳以下を抽出するのではなく、
34歳以下以下だったら、新たに設けた列に「34歳以下」と言う文言を設定する
のです。その結果の列と、必須受診項目側の受診年齢列とをキーとしてJoinするのです。

Joinするアクティビティは、「Join Data Tables」(テーブルをジョインする?日本語失念)です。
Joinする形式は、Full、Left、Innerの3種類ありますので、Leftか、Innerでやってみてください。

DataTable1には、受診者側のテーブル。 DataTable2には必須受診項目側のテーブルを指定します。
出力の DataTableには新しいDataTable型の変数を指定した方が、いいですね。

※Join結果は、範囲を書き込むアクティビティで別のシートに書き込んでみてください。書き込んだ後メッセージボックスダイアログで処理を中断させてから、EXCELを見ると、EXCELファイルを保存しなくても、結果が見られます。
※列名などが増えるので、その状況もわかるので、Join結果をEXCELシートに書き込むのは一度はやった方がいいと思っています。

1 Like

Risa 様

お世話になります。
サンプルまで頂き非常に助かります。
ワークフローの内容もとても分かりやすいので、
私もRisa様の形式を見習いたいと思います。
今後もご教示お願いします。

HANACCHI様、お世話になります。

データテーブルに慣れていないので、慣れる意味も含めて、
ご指示の内容で結合したテーブルを作成してみます。
判定の部分でつまづいたら、またご教示ください。
ありがとうございました。

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