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

**URL:** <https://forum.uipath.com/t/topic/142255>\
**Category:** フォーラム\
**Tags:** studio\
**Created:** [August 15, 2019, 4:03am UTC](https://forum.uipath.com/t/topic/142255 "2019-08-15T04:03:49Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Masapapa](https://avatars.discourse-cdn.com/v4/letter/m/a8b319/32.png) [@Masapapa](https://forum.uipath.com/u/Masapapa)\
**Post date:** [August 15, 2019, 4:03am UTC](https://forum.uipath.com/t/topic/142255/1 "2019-08-15T04:03:49Z")

</div>

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

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

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

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

 ![sampledata](https://global.discourse-cdn.com/uipath/original/3X/0/3/0394aced48a26f6962f940bb701d6f6676fcd89a.jpeg)

---

<div class="post-metadata">

**Author:** ![HANACCHI](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/hanacchi/32/85375_2.png) [@HANACCHI](https://forum.uipath.com/u/HANACCHI)\
**Post date:** [August 15, 2019, 5:28am UTC](https://forum.uipath.com/t/topic/142255/2 "2019-08-15T05:28:44Z")

</div>

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

山田二子 ３４歳 → 「３４歳以下」  
山田七子 ３７歳 → 「３５歳～４４歳」

ってな具合にして。。。

---

<div class="post-metadata">

**Author:** ![Masapapa](https://avatars.discourse-cdn.com/v4/letter/m/a8b319/32.png) [@Masapapa](https://forum.uipath.com/u/Masapapa)\
**Post date:** [August 15, 2019, 6:13am UTC](https://forum.uipath.com/t/topic/142255/3 "2019-08-15T06:13:12Z")

</div>

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

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

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

---

<div class="post-metadata">

**Author:** ![AshwinS2](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/ashwins2/32/176686_2.png) [@AshwinS2](https://forum.uipath.com/u/AshwinS2)\
**Post date:** [August 15, 2019, 6:19am UTC](https://forum.uipath.com/t/topic/142255/4 "2019-08-15T06:19:40Z")

</div>

> [@Masapapa](#):
>
> 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

---

<div class="post-metadata">

**Author:** ![Risa](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/risa/32/84330_2.png) [@Risa](https://forum.uipath.com/u/Risa)\
**Post date:** [August 15, 2019, 6:30am UTC](https://forum.uipath.com/t/topic/142255/5 "2019-08-15T06:30:28Z")

</div>

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

サンプルを作ってみたので、ご確認ください。[CompareDataTableIssue.zip](https://forum.uipath.com/uploads/short-url/uJc0r70mwtTiuRxycLOAqNaMkGz.zip) (23。7 キロバイト)

---

<div class="post-metadata">

**Author:** ![Masapapa](https://avatars.discourse-cdn.com/v4/letter/m/a8b319/32.png) [@Masapapa](https://forum.uipath.com/u/Masapapa)\
**Post date:** [August 15, 2019, 6:54am UTC](https://forum.uipath.com/t/topic/142255/6 "2019-08-15T06:54:29Z")

</div>

Ashwin S 様

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

---

<div class="post-metadata">

**Author:** ![HANACCHI](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/hanacchi/32/85375_2.png) [@HANACCHI](https://forum.uipath.com/u/HANACCHI)\
**Post date:** [August 15, 2019, 6:55am UTC](https://forum.uipath.com/t/topic/142255/7 "2019-08-15T06:55:16Z")

</div>

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

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

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

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

---

<div class="post-metadata">

**Author:** ![Masapapa](https://avatars.discourse-cdn.com/v4/letter/m/a8b319/32.png) [@Masapapa](https://forum.uipath.com/u/Masapapa)\
**Post date:** [August 15, 2019, 6:59am UTC](https://forum.uipath.com/t/topic/142255/8 "2019-08-15T06:59:17Z")

</div>

Risa 様

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

---

<div class="post-metadata">

**Author:** ![Masapapa](https://avatars.discourse-cdn.com/v4/letter/m/a8b319/32.png) [@Masapapa](https://forum.uipath.com/u/Masapapa)\
**Post date:** [August 15, 2019, 7:17am UTC](https://forum.uipath.com/t/topic/142255/9 "2019-08-15T07:17:38Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![system](https://sea2.discourse-cdn.com/uipath/user_avatar/forum.uipath.com/system/32/182466_2.png) [@system](https://forum.uipath.com/u/system)\
**Post date:** [August 18, 2019, 7:17am UTC](https://forum.uipath.com/t/topic/142255/10 "2019-08-18T07:17:49Z")

</div>

Closed on August 18, 2019, 7:17am UTC

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