元のファイルと更新後のファイルを開き、受注番号や SKU など行を特定する列を選ぶと、すぐに違いが表示されます。更新後のファイルにだけある行は「追加」、元のファイルにだけある行は「削除」、両方にあって値が違う行は「変更」となり、変更前と変更後の値がそれぞれ表示されます。ファイル内で行の位置が移動しても、変更とはみなされません。結果は、変更されたセル 1 つにつき 1 行の CSV レポートとしてダウンロードできます。2 つのファイルはアップロードされず、ブラウザー内で比較されます。
2 つの CSV ファイルを比較する手順
- 1 つ目の欄に元のファイルを、2 つ目の欄に更新後のファイルを開きます。欄ごとに区切り文字、見出し、文字コードの読み込み設定があるため、セミコロン区切りのファイルとコンマ区切りのファイルも比較できます。
- キー列で行を対応づけることにし、両方のファイルに共通する列から 1 つ以上のキー列にチェックを入れます。1 つの列だけでは一意にならない場合は、
order_idとlineのように複数の列を使います。 - 必要に応じて比較のオプションを設定し、概要と違いの一覧を確認します(追加、削除、変更で絞り込むこともできます)。最後に変更点のレポートをダウンロードします。
ID の列がなく、行の順序が同じであることがわかっている場合は、代わりに行の位置で対応づけます。1 行目は 1 行目と、というように比較されます。この場合、1 行挿入されただけでもそれ以降のすべての行が変更されたように見えるため、キーにできる列があれば必ずキー列を使ってください。
比較のオプション
| 大文字と小文字を区別しない | Desk Lamp と desk lamp を同じとみなします。値だけでなくキー列にも適用されます。 |
|---|---|
| 余分な空白を無視する | 比較の前に、前後の空白を削除し、値の中で続く空白・タブ・改行を 1 つの空白として扱います。キーにも適用されます。 |
| 数値の許容差 | 両方の値が数値の場合、差が指定した値(0.01 など)以内であれば同じとみなします。計算は浮動小数点ではなく正確な 10 進数で行い、許容差を 0 にすると 45.0 と 45.00 は同じ数値として扱われます。数値とみなされるのは、小数点にピリオドを使い、桁区切りのない値だけです。1,000 は文字列のままですが、1e3 は 1000 として読み込まれます。許容差を指定すると、どちらも数値として読み込まれるため 007 と 7 も同じになります。文字列として厳密に比較するには、欄を空にしてください。 |
| 比較しない列 | updated_at や毎回変わる書き出し日時など、比較からまったく除外する列です。 |
一方のファイルにしかない列は概要に一覧表示され、比較の対象になりません。名前が変わっただけの同じ列であれば、CSV の列名変更・並べ替え で名前をそろえてください。
重複したキーと空のキー
本来、キーは 1 つの行を特定するものです。そうでない場合でも、何かが隠されることはありません。概要には重複したキーの数と最初のキーが表示され、同じキーを持つ行は出現順に組み合わされます。キーが 1 の元のファイルの 1 行目は、キーが 1 の更新後のファイルの 1 行目と、2 行目は 2 行目と比較され、どちらかの側で余った行は削除または追加として報告されます。
この組み合わせ方では、同じキーを持つ 2 つの行の順序が入れ替わっただけでも、変更として報告されることがあります。概要に重複したキーがあると表示された場合は、組み合わせが一意になるまでキー列を追加してください。キー列がすべて空の行は、通常は空行や壊れた書き出しファイルに由来するため、別に数えられます。
結果とレポートの見方
概要には、追加、削除、変更、変更なしの各行数と、変更されたセルの合計数が表示されます。一覧には、元のファイルの順序で違いが並び、その後に更新後のファイルにだけある行が続きます。各項目にはキーと、それぞれのファイルでの行番号(見出しを除いたデータ行を 1 から数えた番号)が表示されます。ページに表示されるのは最初の 500 件の違いですが、レポートにはすべて含まれます。
change | added(追加)、removed(削除)、changed(変更)のいずれかです。 |
|---|---|
| キー列 | キーの値です。大文字と小文字を区別しない設定や、余分な空白を無視する設定がオンの場合、キーは比較したときの形(小文字や空白を削除した形)で表示されます。行の位置で対応づけた場合は、1 つの row 列に行番号が入ります。 |
original_row、updated_row | それぞれのファイルでのデータ行の番号です。その行が存在しない側は空になります。 |
column、original_value、updated_value | 変更されたセル 1 つにつき 1 行です。追加された行と削除された行ではこれらは空になり、それぞれ 1 行で表されます。 |
レポートは、更新後のファイルにちなんだ名前(例:feb-changes.csv)の UTF-8 の CSV です。CSV ビューアー で開くと、変更点を並べ替えたり検索したりできます。
行が追加・削除・変更として表示される理由
- すべての行が追加と削除として表示される。2 つのファイルでキーの値の書き方が違います。たとえば
00123と123、または末尾の空白の有無です。余分な空白を無視する設定をオンにするか、CSV データのクリーニング でその列を修正してください。キーは文字列として比較するため、先頭のゼロは常に区別されます。 - 等しいはずの数値が変更として表示される。
45.00と45.0は文字列としては異なります。数値として比較するには、0や0.005などの許容差を入力してください。小数点にコンマを使った数値や桁区切りのある数値は、常に文字列として比較されます。 - キー列の一覧に目的の列がない。キーにできるのは両方のファイルにある列だけで、名前が完全に一致する必要があります。見出し全体が 1 つの列として読み込まれている場合は、読み込み設定を確認してください。
- ある行から後がすべて変更になっている。行の位置で対応づけていて、行が挿入または削除されています。キー列での対応づけに切り替えてください。
比較の制限とプライバシー
各ファイルは 25 MB、10万行、250 列、200万セルまでです。比較はストリーミングでは行わず、両方のファイルをメモリに保持するため、オプションを変更すると違いがすぐに更新されます。
ファイルはブラウザー内で比較され、サーバーに送信されることはありません。2 つのバージョンを比較するのではなく 1 つにまとめるには CSV ファイルの連結・結合 を、1 つのファイルをルールに沿ってチェックするには CSV のチェック を使ってください。
例:SKU をキーにした 2 つの商品リストの比較
sku をキーにして 2 つの商品リストを、既定の厳密な設定で比較した例です。行の順序は違いますが、結果には影響しません。大文字と小文字・空白を区別しない設定をオンにし、許容差を 0.001 にすると、残る違いは 00456 の stock の変更だけになります。
jan.csv (original) sku,name,price,stock 00123,Desk lamp,19.90,4 00456,Shelf,45.00,2 00789,Stool,12.00,9 feb.csv (updated) sku,name,price,stock 00456,Shelf,45.0,0 00123,Desk Lamp ,19.90,4 01010,Bench,80.00,1
change,sku,original_row,updated_row,column,original_value,updated_value changed,00123,1,2,name,Desk lamp,"Desk Lamp " changed,00456,2,1,price,45.00,45.0 changed,00456,2,1,stock,2,0 removed,00789,3,,,, added,01010,,3,,,
よくある質問
行の順序は結果に影響しますか?
キー列で対応づける場合は影響しません。行は各ファイルのどこにあってもキーで見つけられます。順序が影響するのは、行の位置で対応づける場合だけです。
どちらのファイルを元のファイルにすればよいですか?
古いほうのファイルです。2 つ目のファイルにだけある行は追加、1 つ目のファイルにだけある行は削除として報告されるため、ファイルを入れ替えると、この 2 つの一覧と変更前・変更後の値も入れ替わります。
名前の違う列どうしを比較できますか?
比較されるのは、両方のファイルで見出しが同じ列だけです。キー列も、両方のファイルで同じ名前である必要があります。先に CSV の列名変更・並べ替え で一方のファイルの列名を変更してください。