CSVインポートでエラーが出る原因と対処法まとめ
ECサイトへの商品一括登録、会計ソフトへのデータ取り込み、CRMへの顧客情報インポート——CSVファイルを使った一括取り込みは業務のあちこちで使われています。そして、たいていの人が「なぜかインポートに失敗する」を一度は経験しているはずです。
この記事では、CSVインポートでよくあるエラーをパターン別に整理して、それぞれの原因と対処法を解説します。エラーメッセージごとに心当たりがあるものを探してもらえれば、かなりの確率で解決できるはずです。
パターン1:「列数が違います」「項目数が一致しません」
おそらく最もよく見るエラーメッセージです。CSVの各行が持つ列の数が、ヘッダー行の列数と一致していないときに発生します。
よくある原因
データの中にカンマが含まれているケースが最多です。たとえば住所に「東京都千代田区丸の内1丁目」と入れたつもりが、元データに「東京都千代田区丸の内1丁目, 大手町ビル」のようにカンマが含まれていると、そこで列が分かれてしまいます。
対策はシンプルで、カンマを含むセルをダブルクォートで囲めばOKです。
名前,住所,電話番号
田中太郎,"東京都千代田区丸の内1丁目, 大手町ビル",03-1234-5678
もうひとつ多いのが、Excelで編集中にうっかり末尾に空白列を追加してしまうパターンです。見た目では気づきにくいのですが、保存時にカンマが余分に入って列数が増えてしまいます。
対処法
CSV Rescueのバリデーションツールにドロップすると、ヘッダーと列数が異なる行を行番号つきでリストアップしてくれます。問題のある行がわかれば、修正も楽です。
CSVの列数不一致を自動チェック。問題のある行を行番号つきで報告します。
CSVバリデーションツール →パターン2:文字化け
インポート先のシステムが期待する文字コードと、CSVファイルの文字コードが食い違っている場合に発生します。日本語環境では、UTF-8とShift-JISの不一致がほとんどです。
よくある状況
Excelで「名前をつけて保存 → CSV」とすると、日本語Windows環境ではShift-JISで保存されることがあります。ところが最近のWebサービス(Shopify、freee、kintoneなど)はUTF-8を前提としているため、Shift-JISのCSVをそのままアップロードすると文字化けします。
逆に、Webサービスからダウンロードしたutf-8のCSVをExcelで直接開くと文字化けする、というのも定番トラブルです。
対処法
まず、インポート先が求める文字コードを確認しましょう。最近のサービスは大半がUTF-8です。そのうえで、CSVファイルの文字コードをそれに合わせます。手作業でやるのが面倒なら、文字コード変換ツールを使うのが確実です。
Excel向けのCSVなら「BOM付きUTF-8」にしておくと、ExcelでもWebサービスでも大体うまくいきます。BOMについて詳しくはこちらの記事をご覧ください。
パターン3:先頭の0が消える
電話番号の「090」が「90」に、郵便番号の「001」が「1」になるパターンです。正確にはインポート前にExcelで編集した段階で消えていることが多いです。
Excelは数字だけの列を数値として解釈するため、先頭のゼロを自動的に削除してしまいます。いったん削除されたゼロは、そのCSVを保存した時点で元に戻せません。
対処法
元データが残っているなら、Excelで開く前にCSV Rescueのプレビューアで中身を確認するのが安全です。「開く前に見る」習慣をつけるだけで、0落ちの事故はかなり防げます。
すでに0が消えてしまった場合は、元の桁数がわかっていれば0落ち修正ツールで先頭ゼロを復元できます。
パターン4:日付がおかしくなる
CSVに「1-2-3」と入っていたデータが、Excel経由で「2001/2/3」に変換されてしまうケースです。もともと商品コードや型番だったのに、Excelが勝手に日付として解釈してしまいます。
これもExcelの自動変換が原因です。CSVファイル自体には問題がないのに、Excelが「親切心」でデータを変換してしまうのです。
対処法
Excelの「データ」タブ →「テキストファイルから」で取り込み、列のデータ形式を「文字列」に指定すると、自動変換を防げます。あるいは、Excelの代わりにCSV Rescueのプレビューアでまず中身を確認する方法もあります。プレビューアはデータを一切変換しないため、元のデータがそのまま表示されます。
パターン5:「ファイル形式が違います」
拡張子が.csvになっていても、中身がCSV形式ではないケースです。Excelで.xlsxファイルの拡張子だけを.csvに書き換えても、中身はExcel形式のままなのでインポートできません。
対処法
Excelで「名前をつけて保存」→ファイル形式を「CSV(コンマ区切り)」に指定して保存し直しましょう。拡張子の書き換えだけではCSVにはなりません。
パターン6:空行や余分な改行
CSVの途中に空行が入っていたり、末尾に余分な改行があったりすると、インポート時にエラーになることがあります。Excelで編集中にうっかりEnterを押して空行を挿入してしまうのが典型パターンです。
また、セルの中にデータとして改行が含まれている場合も、インポート先のシステムによっては正しく処理できないことがあります。
インポート前のチェックリスト
インポートに失敗してから原因を探すのは非効率です。事前に以下のポイントを確認しておくと、エラーで詰まる確率を大幅に下げられます。
① 文字コードはインポート先の要件に合っているか(大半はUTF-8)。② ヘッダー行が正しい列名・列数になっているか。③ 各行の列数がヘッダーと一致しているか。④ 電話番号・郵便番号などの先頭0が消えていないか。⑤ 日付・数値がExcelの自動変換で壊れていないか。⑥ セル内にカンマや改行が含まれている場合、ダブルクォートで囲まれているか。⑦ 空行が紛れ込んでいないか。
CSV Rescueのバリデーションツールは、上記チェックの大半を自動で実行します。手作業で1項目ずつ確認するよりも、ツールに任せてしまうのが確実で早いです。
CSVファイルの構造エラーを一括チェック。インポート前の事前確認に。
CSVバリデーションツール →まとめ
CSVインポートエラーの原因はだいたい決まっていて、列数の不一致、文字コードの食い違い、先頭ゼロの消失、Excelの自動変換、ファイル形式の誤り、空行の混入——この6パターンでほぼカバーできます。
重要なのは「インポートする前にチェックする」ことです。エラーが出てから原因を探るより、事前にバリデーションツールで一括チェックしておくほうが、結果的に時間の節約になります。