CSVインポートの事故は、派手なエラーより「通ったように見えて一部だけ壊れる」ほうが厄介だ。
文字化け、必須値の空欄、重複登録、列ずれ。インポート後に気づくと、修正よりも「どこまで壊れたか」の調査に時間を取られる。
そこで、CSVをアップロードする前に確認したい項目を8つに絞る。
1. 元ファイルを残す
修正作業を始める前に、受け取ったCSVをそのまま保存する。
「直した後のCSV」しか残っていないと、どの変更が原因だったか追えない。ファイル名に日時や版番号を付け、元データは触らないのが安全だ。
2. 文字コードを確認する
日本語を含むCSVでは、UTF-8とShift_JISの違いで文字化けが起きることがある。
インポート先が受け付ける文字コードを確認し、変換が必要ならコピー側で行う。元ファイルは保存したままにする。
3. ヘッダーを見る
1行目の列名に次がないか確認する。
- 空のヘッダー
- 同じ名前のヘッダーが2つある
- 余計な空白が付いている
- インポート先の項目名と対応できない列がある
とくに重複ヘッダーは危険だ。同じ列名が2つあると、ツールによっては片方だけを採用したり、意図しない上書きが起こる。
4. 必須値の空欄を探す
顧客ID、メールアドレス、SKUなど、インポート先で必須になる列を決める。
その列に空欄があれば、インポートを始める前に止める。「必須列が存在する」だけでなく、各行に値が入っているかを見る。
5. 一意であるべき値の重複を探す
メールアドレス、商品コード、外部IDなど、一意であるべき列は重複チェックする。
重複が見つかったときは、すぐ削除せず「本当に同一レコードか」を確認する。同じメールアドレスでも別担当者として扱う業務はある。技術的な重複と、業務上の重複は別物だ。
6. 行ごとの列数を確認する
CSV内のカンマ、改行、ダブルクォートが正しく囲まれていないと、1行だけ列数が増減することがある。
たとえば備考欄に「札幌, 北海道」のようなカンマが入り、引用符が壊れているケースだ。
正常なCSVパーサーで読み込み、すべてのデータ行がヘッダーと同じ列数になるか確認する。
7. 日付・数値は「見た目」ではなく値を見る
2026/09/21、2026-09-21、09/21/2026 のように日付形式が混在すると、インポート先で解釈が分かれる。
電話番号や郵便番号も、表計算ソフトが数値として扱うと先頭の0が消えることがある。
インポート仕様で必要な形式を決め、それに合わせる。
8. いきなり全件投入しない
最後に、少量のテストデータでインポートする。
5〜10件程度で項目マッピング、文字化け、重複処理、日時、0埋めが正しいか確認する。問題がなければ本番データへ進む。
30秒版チェックリスト
- 元CSVを保存した
- 文字コードを確認した
- 空・重複ヘッダーがない
- 必須列に空欄がない
- 一意列に意図しない重複がない
- 全行の列数が揃っている
- 日付・数値形式を確認した
- 少量テストを行う
手元で壊れ方を試したい場合は、ZEROHANDの無料CSVサンプル4種を使える。正常、必須値欠損、重複、重複ヘッダーを入れてある。
CSVチェックで大事なのは「全部自動で直す」ことではない。インポート前に止まれることだ。