表・データを整える

商品コードが同じに見えるのに一致しない|先頭の0・空白・文字と数値の確認方法

CSVのコード「001」と「1」、末尾に空白がある値、数量「100」と「100.0」。見た目だけで同じと決めず、元値と比較列を確認する手順を架空データで試します。

「商品コードは同じはずなのに、CSVを比べると片方だけにあると出る」。このとき、すぐに値を一括置換するのは危険です。画面上の見た目ではなく、元CSVに保存されている文字と、比較に使った列を確かめるところから始めます。

ここでは架空の1行ずつを使い、先頭のゼロ、空白、数値に見える文字の違いを分けて確認します。行順が違う表の突合から試したい場合は、先に2つのCSVを商品コードで比較する手順をご覧ください。

「001」と「1」は、同じ商品コードと決めない

商品コード 001 と 1 は数字として読むと同じ値かもしれませんが、コードは数量ではなく、行を特定する名前です。システムが別の商品を示すことも、片方のCSVを書き出した時点でゼロが落ちたことも考えられます。元の台帳や取込先の仕様を確認するまで、同じものと断定できません。

商品コード001と1を異なる値として並べ、元データの確認へ進む図
数字として近く見えても、コードの先頭ゼロを勝手に消さず、原本の意味を確認します。
商品コード001と1を異なる値として並べ、元データの確認へ進む図

CSV突合・差異確認ツールで、次の2つの架空CSVをそれぞれ左右に入れて試せます。コード枠の「コピーする」を押し、左の例を「1. 左の表」、右の例を「2. 右の表」の貼り付け欄へ入れてください。区切りは左右とも「カンマ(CSV)」に変更します。

キー列は左右とも 1(ID)、比較列は左右とも 2(数量)にして「差異を確認する」を押します。この後の空白・数値表記の例も同じ設定で、左右の入力を貼り替えて再実行できます。

ID,数量
001,10
ID,数量
1,10

両方の「キー列」に1列目、比較列に2列目を指定すると、一致0・左のみ1・右のみ1でした。数量が同じでも、キーが一致しなければ対応する行として比較されません。001 と 1 を自動で同一視しない結果です。

まずは元CSVを文字として確認し、001 が本当に 001 のままなのか、変化したファイルはどちらなのかを追います。ExcelでのCSVの開き方や設定によって、コードが数値として解釈される可能性があります。この記事ではExcelの特定のバージョンでの設定手順は実測していません。 Excelの画面上だけで判断せず、元CSVを残して、コード列を文字列として読み込めているか確認してください。Excelでの環境別の操作は、Microsoftの先頭ゼロを保持する説明も参照できます。

末尾の空白は、セルを見ただけでは気づきにくい

次は左の 001 (末尾に半角スペースあり)と、右の 001 を比べました。

ID,数量
001 ,10
ID,数量
001,10

この場合も、公開ツールでは左のみ1・右のみ1。CSVをテキストとして見ると、カンマの直前に空白があるか分かります。表計算ソフトの表示だけでは見落としがちな違いです。空白の意味が明らかでないまま一括で削ると、元の登録値と合わなくなるおそれがあります。修正してよいルールが確認できた場合だけ、原本を別名で保存してからコピーで試してください。

空白だけでなく、全角・半角や大文字・小文字も、比較前に勝手にそろえられません。何を同一として扱うかは、その項目の管理ルールに依存します。

キーが同じでも、「100」と「100.0」は差異になる

商品コードが両方 001 なら行同士は結び付きます。しかし比較列が左 100、右 100.0 の場合、一致0・差異1になりました。

ID,数量
001,100
ID,数量
001,100.0

ツールは数量を計算しているのではなく、文字として比べています。同じ数値に見えるから「問題なし」としてよいかは、数量の単位、取込先の形式、元システムの出力仕様を見て決めます。このツールは数値の丸め、日付の変換、行の合算をしません。

見えた結果先に確認する場所やってはいけない早合点
001 対 1 で左右のみ元CSV、元台帳、コードの桁の仕様ゼロを消せば必ず同じ商品になる
001 対 001 で左右のみカンマ直前の空白、元システムの入力ルール空白を全行から一括削除してよい
同じキーで 100 対 100.0 が差異比較列の元値、取込先の数値表現数学的に等しいから確認不要

CSV突合・差異確認で架空CSVの判定を試す(ツールは別サイトで開きます)。

自分のデータを見る前に、比較条件をメモする

業務データに置き換える際は、(1) 左右のファイルの取得元と出力日時、(2) キーと比較列、(3) 先頭ゼロや空白を保持するルール、の順に書き出すと、何を直すべきか見失いにくくなります。

ツールの結果CSVやJSONを保存する前に、勤務先の外部ツール利用ルールを確認してください。原本や個人情報を含む値を、記事・スクリーンショット・問い合わせに貼らないでください。具体的な設定や重複・空キーの扱いはツールの使い方ガイドで確かめられます。

差異は「修正命令」ではなく「確認する行の候補」です。 まずは元値を記録し、変更してよい根拠があるときだけ、原本とは別のコピーで試しましょう。

参考資料

あわせて読みたい

同じテーマの記事を見る