CSV・文字コード

CSVがExcelで1列になる場合の区切り文字確認

CSVをExcelで開いたときに全データが1列へ入る場合は、文字コードより先に区切り文字を確認し、ダブルクリックではなくExcelの読み込み画面で同じ区切りを指定します。

1列になる主な理由

CSVは値の間を記号で区切ったテキストです。一般的にはカンマを使いますが、作成元によってタブ、セミコロン、パイプ | が使われます。

Excelが想定する区切りとファイルの区切りが違うと、1行全体が1つのセルへ入ります。日本語が正常なら、文字コードを変換する前に区切り文字を確認してください。

CSV診断で区切りを確認する

CSVの文字コードと区切り文字を確認する方法でファイルを選びます。結果の「区切り文字」に、カンマ、タブ、セミコロン、パイプのいずれかが表示されます。

CSV_DELIMITER_UNDETECTED が表示された場合、次の可能性があります。

  • 1列しかないデータで区切りが存在しない
  • 対応外の記号で区切られている
  • 行ごとに区切りが違う
  • 引用符や改行の構造が崩れている
  • 実際にはCSVではない

自動判定は推定なので、テキストエディターで先頭数行を確認するか、作成元の出力仕様と照合します。

Excelで正しく分割して読み込む

  1. Excelで空のブックを開く
  2. 「データ」から「テキストまたはCSVから」を選ぶ
  3. 対象ファイルを指定する
  4. 文字コードを診断結果に合わせる
  5. 区切り文字をカンマ、タブ、セミコロンなどから選ぶ
  6. プレビューで見出しと各列が正しく分かれたことを確認する
  7. 必要な列型を指定して読み込む

診断が「タブ」と表示したファイルは、拡張子が .csv でも実質はタブ区切りです。拡張子だけを .txt へ変える必要はなく、読み込み時にタブを指定すれば確認できます。

区切りを合わせても列がずれる場合

CSV_COLUMN_MISMATCHCSV_PARSE_WARNING が表示されたら、単純な区切り指定だけでは直らない可能性があります。問題が出る行の周辺で、次を確認します。

  • 値の途中にカンマがあり、ダブルクォートで囲まれていない
  • 値の中の改行が正しく引用されていない
  • ダブルクォートの開始と終了が揃っていない
  • 行末に余分な区切りがある
  • 一部の行だけ列が不足している

たとえば住所 東京都千代田区, 1-1 を1つの値として扱うなら、CSV上では通常ダブルクォートで囲む必要があります。手作業で全行を直す前に、作成元のエクスポート設定を修正できないか確認してください。

「区切り位置」で直す場合の注意

すでに1列へ読み込んだデータは、Excelの「区切り位置」で分割できます。ただし、文字コードの誤認識、先頭ゼロ、日付変換、引用符内の区切りを完全に戻せない場合があります。

元CSVが残っているなら、空のブックから読み込み直す方が安全です。元ファイルを上書きせず、読み込み後に行数と列数を比較します。

文字化けも同時に起きる場合

1列表示と文字化けは別々に直します。先に文字コードを正しく指定し、次に区切り文字を合わせます。UTF-8とBOMの扱いはUTF-8のCSVがExcelで文字化けする場合を確認してください。

参考情報

CSV・文字コード

テーマを見る