Problem solving guide

CSVを開いたら全部1列になったときの直し方

CSVを開いたら「氏名,部署,金額」のような内容がA列だけに入り、列に分かれないことがあります。多くの場合は、ファイルが壊れたのではなく、実際の区切り文字と開く側の認識が合っていません。

1列になるとき、ファイルの中では何が起きている?

カンマ区切り

社員番号,氏名,部署

カンマを列の境目として認識すれば3列になります。

タブ区切り

社員番号→氏名→部署

実際には矢印ではなくタブ文字が入っています。これをカンマ区切りのファイルとして読むと、列を分けるカンマが見つからないため、1行全体が1列として扱われてしまいます。

「CSV」という名前でも、実際のデータ連携ではカンマ以外にタブ、セミコロン、パイプが使われることがあります。拡張子だけで区切り文字を決めつけないのがポイントです。

この順番で確認する

  1. 1

    元のCSVを上書きせず残す

    まず元ファイルをそのまま残します。Excelなどで開いて保存し直すと、区切り文字以外に文字コード、日付、先頭ゼロなどが変わる場合があるため、確認用にはコピーを使います。

  2. 2

    テキストとして見て、列の境目を確認する

    ファイルの先頭数行をテキストとして見ると、値の間にカンマがあるのか、タブで区切られているのかを確認できます。セミコロンやパイプが使われていることもあります。

    , カンマ⇥ タブ; セミコロン| パイプ
  3. 3

    読み込み時に、その区切り文字を指定してみる

    直接ダブルクリックして開くのではなく、表計算ソフトの「テキストまたはCSVから読み込み」のような機能で、実際の区切り文字を指定します。それで正しく列に分かれるなら、元ファイルを変更する必要はありません。

  4. 4

    渡し先が別の区切り文字を要求する場合だけ変換する

    たとえば元ファイルがタブ区切りで、取り込み先がカンマ区切りを要求しているなら、区切り文字を変換します。セル内のカンマや改行まで壊さないよう、単純な検索置換ではなくCSVとして解析して変換します。

Which fix?

開き方を変えるだけでよい場合と、変換が必要な場合

ファイルはそのままでよい

読み込み時に区切り文字を選べば列に分かれる

自分が確認するだけなら、ファイルを変換する必要はありません。読み込み方法を変える方が、元データを変えずに済みます。

変換した方がよい

別システムが特定の区切り文字を要求している

取込仕様が「カンマ区切り」「タブ区切り」などを指定している場合は、その仕様に合わせて出力します。

Change delimiter

カンマ・タブ・セミコロン・パイプを変換する

CSV区切り文字変換では、入力の区切り文字を自動判定または指定し、CSVとして解析してから別の区切り文字へ変換します。ダブルクォートで囲まれたセル内のカンマや改行は区別して扱います。

ファイル読み込みはUTF-8が対象です。Shift_JIS / Windows-31JのCSVは、先に文字コードを確認するか、基準CSVがある場合はCSVお手本変換で形式差を確認してください。

CSV区切り文字変換を使う

カンマをタブへ「すべて置換」は避ける

CSVでは、セルの値そのものにカンマを含めることができます。たとえば "東京都渋谷区, 1-2-3" のカンマは列の区切りではありません。文字列としてすべて置換すると、セルの中身まで変わってしまいます。

区切り文字を変える場合は、引用符を含むCSVの構造を解釈してから再出力する方法を使ってください。

別のCSVと同じ形式にしたい場合

区切り文字以外もまとめて比べられます

基準にしたいCSVがあるなら、区切り文字だけでなく文字コード・BOM・改行・列の並びも違う可能性があります。CSVお手本変換では、2つのCSVの形式を比べ、安全に判断できる項目だけを揃えます。

CSVお手本変換を使う →

区切り文字を合わせても列が崩れる場合

一部の行だけ列数が増減する場合は、値の中にあるカンマや改行を囲むダブルクォートが不足している可能性があります。また、文字コードの問題で読み込み自体が崩れている場合もあります。

日本語が文字化けしている場合は CSVが文字化けしたときの直し方、文字コードは合っているのに取込エラーになる場合は CSVの文字コードは合っているのに取り込めないときの確認方法 も確認してください。

よくある疑問

CSVを開いて1列になったら、ファイルが壊れていますか?

必ずしも壊れていません。ファイル内に区切り文字があっても、開くソフトがその区切りを認識しなければ1列に見えることがあります。まず読み込み方法と区切り文字を確認してください。

拡張子が.csvなら、必ずカンマ区切りですか?

必ずしもそうとは限りません。実務ではタブ、セミコロン、パイプなどが使われるファイルもあるため、実際の内容を確認する方が確実です。

カンマをタブへ一括置換してもよいですか?

おすすめしません。セル値に含まれるカンマまで変わる可能性があります。CSVとして解析して、列の境目だけを変換してください。