Csvファイルの比較について

2つのcsvファイルの各行を比較して相違している件数の
算出方法をお教えいただけないでしょうか?

1 Like

ある列に対して、「繰り返し(各行)」アクティビティで値をキーとして、出現数をカウントしていきます…

dictionary型で、キー側をstring、値側をint 32とします。

その辞書に、キーが無ければキーと1を格納。あればそのキーから引ける値に1を加算します。

結果の評価は、一つの辞書のキーがもう一つの辞書にあるか評価し、あったら評価済として、双方の辞書中のキーから引ける値
(出現数)をマイナス1を設定します。

一連の評価が終了したら、それぞれの辞書の一つ一つの情報をみ、マイナス1でなかったら、対する辞書にキーが存在しない事として、表示出来ますね。

こんにちは

各行を比較して相違している件数の算出方法

比較相違の定義をもう少し明確化(具体化)した方が良いように思えます。

2つのCSVの行数が同じで、各行単位で(同じ行番号で)同じかどうかを判定するのであれば
それぞれのCSVからDataTableとして読み込んだ変数を dt, dt2とすると

dt.AsEnumerable.Select(Function(r,i)  DataRowComparer.Default.Equals(r,dt2.Rows(i))).Count(Function(x) not x)

で件数は算出できます。

そうではなく、両ファイル間での互いに片側にしか存在しない行をすべて数えるのであれば
各ファイル内で各行のユニークさが担保されている状況(重複がない状況)なら

dt.AsEnumerable.Except(dt2.AsEnumerable,DataRowComparer.Default).Count + dt2.AsEnumerable.Except(dt.AsEnumerable,DataRowComparer.Default).Count

で算定できると思います。

片側を正とするなら、上記は2つの加算のいずれかだけで良いと思います。

ご回答ありがとうございます。

ご回答ありがとうございます。
初心者で大変申し訳ございません。
該当するのは前者になるのですが、この式をどのように
組み込めば宜しいでしょうか?

こんにちは

該当するのは前者になるのですが、この式をどのように
組み込めば宜しいでしょうか?

サンプル添付します。

Sample20201130-2.zip (2.6 KB)

ご回答ありがとうございます。
ロジックを組み込みましたが、下記のエラーが表示されます。
「'AsEnumerable’は’System,Data.Data Table’のメンバーではありません。」
解消方法をご教示いただけますでしょうか?

こんにちは

「'AsEnumerable’は’System,Data.Data Table’のメンバーではありません。」
解消方法をご教示いただけますでしょうか?

UiPathのxamlファイルの問題なので、以下参照ください。
別のアプローチとして、新たにファイルを追加して、そこに丸ごとコピーしても解消するケースがあります。

ご回答ありがとうございました。
フローチャートを作成しなおしたら、解消いたしました。

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