項目と行がバラバラな2つのファイルの一致確認

お世話になります。

ExcelとCSVファイルの中に表が1つずつあり、
それぞれの項目数、項目の順番や行の順番がバラバラだが、
共通項目が十数個あり、
共通項目だけ全行全項目の値が一致するか確認したいです。
行の順番が違っても、一致する行があれば良いという感じです。
共通項目は把握しています。

このような場合、どのように確認したらよいでしょうか。
確認結果はTrueかFalseの結果のみで良いです。

新しいアカウントということでファイルをアップロードができず、
分かりづらい内容になってしまい、大変申し訳ございません。
ファイル中身のイメージは以下の通りで、
「項目1,項目3,項目4,項目8,項目10」だけ確認したいです。

■Excel
項目1,項目3,項目4,項目8,項目10,項目11
A-1,A-3,A-4,A-8,A-10,A-11
B-1,B-3,B-4,B-8,B-10,B-11
C-1,C-3,C-4,C-8,C-10,C-11
D-1,D-3,D-4,D-8,D-10,D-11
E-1,E-3,E-4,E-8,E-10,E-11

■CSV
項目1,項目4,項目3,項目2,項目5,項目8,項目9,項目6,項目7,項目10
A-1,A-4,A-3,A-2,A-5,A-8,A-9,A-6,A-7,A-10
C-1,C-4,C-3,C-2,C-5,C-8,C-9,C-6,C-7,C-10
B-1,B-4,B-3,B-2,B-5,B-8,B-9,B-6,B-7,B-10
E-1,E-4,E-3,E-2,E-5,E-8,E-9,E-6,E-7,E-10
D-1,D-4,D-3,D-2,D-5,D-8,D-9,D-6,D-7,D-10

よろしくお願いいたします。

自分だったら、
CSVとEXCELとをそれぞれDataTable型で読み込んでから、それぞれの行ごとに、列方向のLOOPで評価。

評価は、
Try~Catchを使って、
Try側:代入アクティビティで、
左辺 Boolean型項目
右辺 Boolean型項目 And CSV.Item(列名).ToString.Equals(EXL.Item(列名).ToString)
Catch側
左辺 Boolean型項目
右辺 Boolean型項目 And True
で全列を評価し、全行評価した時にBoolean型項目がTrueだったら一致したものがある

とするかも。。。

CSV側の行方向のLOOPと、EXCEL側の行方向のLOOPと、EXCEL側ある岩CSV側の列方向のLOOPの、三重LOOPですなぁ。。。

項目がなくても、評価OK!として処理を進めるのがポイントだと思います。

1 Like

HANACCHI 様

ご返信頂きまして、有難うございます。
ややこしい内容ですみません。
ご教授いただいた方法を試してみます!
有難うございました!

大分込み入った処理になると思いますのでsampleを作ってみました。
sample.zip (12.6 KB)

ご参考まで

3 Likes

kyd_has 様

サンプルを作成いただき、有難うございました!!
大変参考になりました!!
込み入った内容で、大変お手数おかけしました。
有難うございました。

いい問題を思って、サンプルを作りました。
image
GitHubに公開しましたので、
よろしければ、ご参考まで。

1 Like

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