CSVをExcelで開くと文字化けする・先頭の0が消える
「データ」タブの「テキストまたはCSVから」で取り込みます。取り込む前のプレビュー画面で文字コードの番号を選び直し、日本語が読める番号にします(UTF-8のCSVなら65001)。
同じ画面で列を文字として読み込む設定にすると、電話番号や商品コードの先頭の0が残ります。
化けた状態・0が消えた状態のまま、元のCSVに上書き保存しないでください。
- 開いてしまったCSVは保存せずに閉じる
- 空白のブックでデータタブ → テキストまたはCSVから
- プレビュー画面で文字コードを選び直す
- 同じ画面で列を文字として読み込む設定にする
- 読み込みを押す
- 画面が正しくないうちは元のCSVに上書き保存しない
- 日本語も先頭の0も見えていれば完了
受け取ったCSVを開いたら、日本語の列が意味のない記号の並びになり、電話番号や商品コードの先頭の0も落ちている。ファイルが壊れたのではなく、Excelが中身をどう読むかの解釈で起きています。
Excelは文字の並びを数値や日付とみなして書き換えることがある
※画面の項目名は2026年8月時点のMicrosoft公式ヘルプの表記で、画面はWindowsのパソコン版Excelです。Mac版・ブラウザ版や古い版では、文字コードや列の型を選ぶ欄そのものが見当たらないこともあります。

保存を押す前に手を止める
公式ヘルプには、先頭のゼロについて「書式設定する前に削除された先頭のゼロは復元されません。」と書かれています。表示形式を後から「文字列」に変えても、消えた0は戻ってきません。
画面が正しくないうちは Ctrl+S を押さず、閉じるときは「保存しない」を選びます。
1文字コードを指定して取り込む
- 空白のブックを開き、データタブを選ぶ
- テキストまたはCSVから を押し、CSVを選んでインポート
- 元のファイル を 65001: Unicode (UTF-8) に変える
- 読み込み を押す
CSVの日本語は、UTF-8やシフトJISといった複数の書き方のどれかで保存されています。公式ドキュメントには、文字セットは推測されず、UTF-8は先頭にBOMという印がある場合にのみ判別されるとあります(テキスト/CSV コネクタ)。
プレビューの日本語が読めれば、その番号が正解です。読めないままなら「932: 日本語 (シフト JIS)」など別の番号に変え、プレビューを見比べます。※この欄は版によって「ファイルの配信元」と表示されることもあります。
2先頭の0と長い番号を残す
同じプレビュー画面の「データ型検出」を、自動検出をオフにする選択肢(「データ型を検出しない」)に変えます。すべての列が文字として読み込まれ、0012 や電話番号の先頭0がそのまま残ります。
一部の列だけ数値として使いたいときは、「読み込み」ではなく「データの変換」を押します。開いた編集画面で列を選び、「変換」タブの「データ型」から「テキスト」を選ぶと、その列だけ文字になります。確認の画面では「現在のものを置換」を選びます。
Excelが数値として保持できるのは15桁までで、超えた下の桁は0になります(前掲の公式ヘルプ)。長い管理番号やカード番号は文字として取り込みます。
毎回の書き換えをExcel側で止める
- 手順1と手順2の取り込みを使う
- 設定を変えられない会社のPCでも使える
- ファイル → オプション → データ
- 自動データ変換の中の「先頭のゼロを削除」のチェックを外す
- Microsoft 365 と Excel 2024 のみ
「自動データ変換」には「数値テキストから先頭のゼロを削除して数値に変換する。」「連続した文字と数字の文字列を日付に変換します。」といった項目が並び、個別に外せます(自動データ変換の設定)。対象はMicrosoft 365とExcel 2024です。
これはCSVをそのまま開いたときに効く設定で、手順1・2で取り込んだデータには影響せず、文字化けにも効きません。
それでも化けるときに見るところ
表が途中で終わっているなら、行数の上限で切れている可能性もあります → 大きいCSVがExcelで開けない。取り込んだ後に日付が 45000 のような数字で出るなら、日付が45000みたいな数字になるが近い話です。
文字コードと列の型さえ先に指定しておけば、同じCSVを何度受け取っても同じ形で開けます。