データテーブルの比較一致のロボット作成について

お世話になります。
ステムから抽出したExcelデータとマスタデータの行を比較して、重複したデータをシステムから抽出したExcelデータから削除する方法についてご教授ください。

具体的には、以下の手順を考えています:

  1. システムから抽出したExcelデータを読み込みます。
  2. マスタデータを読み込みます。
  3. 両方のデータテーブルを比較し、重複する行を特定します。
  4. 重複する行をシステムから抽出したExcelデータから削除します。

完成したいのは、システムから抽出したデータに既存のマスタデータが含まれていない状態のファイルを作成することです。

Hi @koyo.osanai

You can do it with the LINQ Expression, Provide the Master data and System data excel files with Expected output. Then we will write the LINQ Expressions as per your requirement.

Hope it helps!!

こんにちは

ダミーでも良いので具体例があったほうが良いかと思います。
システムから抽出したシートとマスタデータのシートは列名等も同じでしょうか?
比較する対象は全列でしょうか?

@Yoichi @mkankatala
ご指摘ありがとうございます。
抽出したシートとマスタデータのシートは列名同じになります。


比較する列はファイル名の列になります

Then you have to delete the rows in System excel file which are in Master data excel file… @koyo.osanai

If yes, then follow the below steps,
→ Use the Read range workbook activity to read the Master data Excel file and store in a datatable called Master_dt.
→ Then use another read range workbook activity to read the System data excel file and store in a datatable called System_dt.
→ Then use the assign activity to write the linq expression, create a variable called Output_dt which is datatable datatype variable,

- Assign -> Output_dt = (From sysRow In System_dt.AsEnumerable()
                         Join masRow In Master_dt.AsEnumerable()
                         On sysRow.Field(Of String)("Column name in System_dt") Equals masRow.Field(Of String)("Column  name in Master_dt")
                         Select sysRow
	                            ).CopyToDataTable()

→ Then use the Remove Duplicates rows activity to remove the duplicate rows after filtration in Output_dt.
→ Then use the Write range workbook activity to write the Output_dt to the System Data excel file.

Hope it helps!!

こんにちは

以下いかがでしょうか?

arrDr = dt.AsEnumerable.Where(Function(r) not dtMaster.AsEnumerable.Any(Function(r2) r2("ファイル名").ToString=r("ファイル名").ToString)).ToArray

Sample
Sample20240723-2.zip (16.6 KB)

いつもありがとうございます。
想定通りの動作になりました。

1 Like

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