目次を開く
CSVで email と email は、見た目がほとんど同じでも同じ文字列ではありません。RFC 4180では、スペースはフィールドの一部であり、無視すべきではないとされています。
ヘッダー末尾を可視化する
インポーターが列を認識しないときは、ヘッダーをコード表示や文字数で確認します。
"email"
"email "
後者には末尾スペースがあります。コピー&ペーストで作ったCSVでは特に混ざりやすい部分です。
ID列の前後空白も別値になる
A001 と A001 を同じIDだと思って処理すると、重複照合や更新対象の検索で外れることがあります。空白を削るなら、どの列をtrimするかを仕様として決めます。
勝手に全列trimしない
説明文などでは先頭・末尾空白が意味を持つ場合もあります。インポート先の仕様を確認し、IDやヘッダーなど正規化対象だけを処理する方が安全です。
ヘッダー重複や列数不一致、重複値の点検にはCSV Preflightを使えます。
本番投入前の最終チェック
ヘッダーと識別子列の前後空白を可視化し、trim対象を限定します。修正前後のユニーク件数も比べ、空白除去によって別IDが同一化していないかを確認します。
- ヘッダー長を確認した
- ID前後の空白を見た
- trim対象を限定した
- 重複件数を前後比較した
- 原本を残した
空白削除もデータ変換です。何を消したか説明できる状態で処理します。
trim前後の件数差を必ず見る
例えば A001 と A001 が同時に存在していた場合、trim後には同じ値になります。単純に空白を取るだけでも、新しい重複が発生する可能性があります。対象列ごとにtrim前後のユニーク件数と重複件数を比較し、統合してよいデータなのかを確認します。ヘッダー修正と値の正規化も同時にせず、どの変更で結果が変わったか追える単位で処理すると復旧しやすくなります。