CSVの値そのものにカンマが含まれていると、正しく引用されていない行だけ列数が増え、Excelで右へずれて表示されます。カンマをすべて削除するのではなく、CSVの引用符ルールと問題行を確認します。
値の中のカンマが列ずれを起こす例
次の行では、住所内のカンマが区切りとして解釈され、4列に見えます。
1001,山田太郎,東京都千代田区,1-1
住所全体を1つの値にするなら、一般的なCSVではダブルクォートで囲みます。
1001,山田太郎,"東京都千代田区,1-1"
値の中にダブルクォート自体を含める場合は、通常 "" と2つ重ねて表します。RFC 4180では、カンマ、改行、ダブルクォートを含むフィールドをダブルクォートで囲む形式が示されています。
CSV診断で問題行を確認する
CSVの文字コードと区切り文字を確認する方法で原本を選びます。CSV_COLUMN_MISMATCH が表示された場合、基準となる列数と異なる行があります。CSV_PARSE_WARNING は引用符や構造に注意が必要な可能性を示します。
診断結果だけで自動修復は行いません。プレビューに示された行番号の前後を確認し、見出しで想定される列数と比較します。
安全な確認手順
- 元CSVを複製し、編集用コピーを作る
- 文字コードと区切り文字を確認する
- 列数が違う最初の行を探す
- 値の中のカンマ、改行、ダブルクォートを確認する
- 作成元の仕様と照合する
- 可能なら元システムのエクスポート設定を修正して再出力する
- 修正版を再診断し、全行の列数を確認する
Excelで一度開いて保存すると、自動変換された日付や先頭ゼロを元に戻せないことがあります。原本のCSVをテキストとして確認し、上書きしないでください。
手作業で直す場合
少数行だけで、正しい列構成が明確な場合に限り、テキストエディターで値全体をダブルクォートで囲みます。
- 開始と終了のダブルクォートを対にする
- 値内のダブルクォートは2つ重ねる
- 行末へ不要なカンマを追加しない
- 改行を含む値は対応ソフトで正しく扱えるか確認する
- 修正後に行数と列数を再確認する
大量の行を検索置換で直すと、正常な区切りまで変える危険があります。生成元へ修正を依頼できるなら、再出力を優先します。
1列表示とは分けて考える
すべてが1列になる場合は、Excelが区切り文字を認識していない可能性があります。CSVがExcelで1列になる場合の区切り文字確認を参照してください。
一部の行だけずれる場合は、区切り自体より、その行の引用符、カンマ、改行、列欠落を疑います。文字化けもある場合は、文字コードを正しく指定してから構造を確認します。