なやみ箱 暮らしと日常の悩みを、手順で解決するサイト

CSVをExcelで開くと文字化けする・先頭の0が消える

2026年9月時点
■ 先に結論

「データ」タブの「テキストまたはCSVから」で取り込みます。取り込む前のプレビュー画面で文字コードの番号を選び直し、日本語が読める番号にします(UTF-8のCSVなら65001)。
同じ画面で列を文字として読み込む設定にすると、電話番号や商品コードの先頭の0が残ります。
化けた状態・0が消えた状態のまま、元のCSVに上書き保存しないでください。

  1. 開いてしまったCSVは保存せずに閉じる
  2. 空白のブックでデータタブテキストまたはCSVから
  3. プレビュー画面で文字コードを選び直す
  4. 同じ画面で列を文字として読み込む設定にする
  5. 読み込みを押す
  6. 画面が正しくないうちは元のCSVに上書き保存しない
  7. 日本語も先頭の0も見えていれば完了

受け取ったCSVを開いたら、日本語の列が意味のない記号の並びになり、電話番号や商品コードの先頭の0も落ちている。ファイルが壊れたのではなく、Excelが中身をどう読むかの解釈で起きています。

090123456789012345678
1-21月2日

Excelは文字の並びを数値や日付とみなして書き換えることがある

※画面の項目名は2026年8月時点のMicrosoft公式ヘルプの表記で、画面はWindowsのパソコン版Excelです。Mac版・ブラウザ版や古い版では、文字コードや列の型を選ぶ欄そのものが見当たらないこともあります。

机の上の2つのトレイ。片方は無地の紙がきれいに揃い、もう片方は同じ紙が乱れて重なっている

保存を押す前に手を止める

公式ヘルプには、先頭のゼロについて「書式設定する前に削除された先頭のゼロは復元されません。」と書かれています。表示形式を後から「文字列」に変えても、消えた0は戻ってきません。

画面が正しくないうちは Ctrl+S を押さず、閉じるときは「保存しない」を選びます。

1文字コードを指定して取り込む

  1. 空白のブックを開き、データタブを選ぶ
  2. テキストまたはCSVから を押し、CSVを選んでインポート
  3. 元のファイル を 65001: Unicode (UTF-8) に変える
  4. 読み込み を押す

CSVの日本語は、UTF-8やシフトJISといった複数の書き方のどれかで保存されています。公式ドキュメントには、文字セットは推測されず、UTF-8は先頭にBOMという印がある場合にのみ判別されるとあります(テキスト/CSV コネクタ)。

プレビューの日本語が読めれば、その番号が正解です。読めないままなら「932: 日本語 (シフト JIS)」など別の番号に変え、プレビューを見比べます。※この欄は版によって「ファイルの配信元」と表示されることもあります。

2先頭の0と長い番号を残す

同じプレビュー画面の「データ型検出」を、自動検出をオフにする選択肢(「データ型を検出しない」)に変えます。すべての列が文字として読み込まれ、0012 や電話番号の先頭0がそのまま残ります。

一部の列だけ数値として使いたいときは、「読み込み」ではなく「データの変換」を押します。開いた編集画面で列を選び、「変換」タブの「データ型」から「テキスト」を選ぶと、その列だけ文字になります。確認の画面では「現在のものを置換」を選びます。

Excelが数値として保持できるのは15桁までで、超えた下の桁は0になります(前掲の公式ヘルプ)。長い管理番号やカード番号は文字として取り込みます。

毎回の書き換えをExcel側で止める

このファイルだけ直したい
  • 手順1と手順2の取り込みを使う
  • 設定を変えられない会社のPCでも使える
これから開くCSVの0落ちを止めたい
  • ファイル → オプション → データ
  • 自動データ変換の中の「先頭のゼロを削除」のチェックを外す
  • Microsoft 365 と Excel 2024 のみ

「自動データ変換」には「数値テキストから先頭のゼロを削除して数値に変換する。」「連続した文字と数字の文字列を日付に変換します。」といった項目が並び、個別に外せます(自動データ変換の設定)。対象はMicrosoft 365とExcel 2024です。

これはCSVをそのまま開いたときに効く設定で、手順1・2で取り込んだデータには影響せず、文字化けにも効きません。

それでも化けるときに見るところ

表が途中で終わっているなら、行数の上限で切れている可能性もあります → 大きいCSVがExcelで開けない。取り込んだ後に日付が 45000 のような数字で出るなら、日付が45000みたいな数字になるが近い話です。

文字コードと列の型さえ先に指定しておけば、同じCSVを何度受け取っても同じ形で開けます。