目次を開く
CSVをExcelで開いた瞬間、名前もメールも住所も全部A列に押し込まれている。見た目は派手に壊れていますが、CSVそのものが壊れたとは限りません。
最初に見るべきなのは、CSVで使われている区切り文字と、Excel側の読み方が合っているかです。元ファイルをいじる前に、ここを切り分ける方が早くて安全です。
まずCSVの中身を確認する
CSVは、値と値の境目を「区切り文字」で表します。
代表的なのは次のような形式です。
name,email,city
Sato,[email protected],Sapporo
この例ではカンマ , が区切り文字です。
一方、データの作成元によってはセミコロン ; やタブで区切られていることもあります。拡張子が .csv でも、中身の区切り文字が必ずカンマとは限りません。
テキストエディタでファイルを開き、1行目を見れば多くの場合は判別できます。
Excelで1列になるときの直し方
Microsoftが案内している方法では、CSVをダブルクリックで開くのではなく、Excelの取り込み機能を使います。
- Excelを開く
- データタブを選ぶ
- テキスト/CSVからを選ぶ
- 対象のCSVファイルを指定する
- プレビュー画面で区切り記号を選ぶ
- 列が正しく分かれたことを確認して読み込む
カンマ区切りなら「コンマ」、タブ区切りなら「タブ」を選びます。
Microsoftのサポートでも、テキスト/CSVの取り込み時に区切り記号を変更し、プレビューで結果を確認できると案内されています。
ダブルクリックで開く方法との違い
.csv をそのままExcelで開くと、Excelは現在の既定設定を使ってデータを解釈します。
その解釈と実際のCSVが合わないと、値を区切れず、1行分がそのままA列へ入ることがあります。
そのため、原因を切り分けるときは**「開く」より「取り込む」**方が安全です。区切り文字を自分で指定できるからです。
セミコロン区切りだった場合
次のようなCSVなら、区切り文字はカンマではなくセミコロンです。
name;email;city
Sato;[email protected];Sapporo
Excelの取り込み画面で区切り記号をセミコロンへ変更すれば、通常は列に分かれます。
CSVを別システムから受け取った場合は、勝手にカンマへ置換する前に、そのシステムの出力仕様も確認してください。
「区切り位置」で分ける前に確認する
Excelには既に1列へ入ったデータを分割する機能もありますが、元CSVがあるなら、まず正しい区切り文字で再取り込みする方が安全です。
単純な文字置換や分割を先にすると、引用符で囲まれた値の中にカンマがあるCSVなどで、正しいデータまで崩すことがあります。
それでも直らない場合
区切り文字が合っているのに崩れる場合は、次も確認します。
- ダブルクォートの閉じ忘れ
- 行ごとの列数の不一致
- セル内改行
- 文字コード
- 区切り文字の混在
CSV全体の確認順は、CSVファイルをチェックする方法にもまとめています。
まとめ
CSVがExcelで1列になるときは、まず区切り文字を確認します。
ファイルを直接開いて崩れる場合でも、Excelのデータ → テキスト/CSVからで正しい区切り記号を指定すれば、列構造を確認しながら取り込めます。
いきなり元ファイルを書き換えず、まず「何で区切られているCSVなのか」を確認する。これが一番短い切り分けです。
CSVを別システムへ投入する前に、列数や構造もまとめて確認したい場合は、CSV PreflightをUS$3で使うと、元CSVを変更せずに事前チェックできます。