CSVファイルをExcelで開いた際に、桁数の長い数字が自動的に変換され、値が変わってしまうことがあります。
たとえば、CSV上では以下のような値だった場合でも、
100010000839485
Excelで開くと、環境や桁数によっては次のように末尾が 0 に変わって見えることがあります。
1000100008394850
これはCSVファイルのデータが壊れているわけではなく、Excelが値を自動的に「数値」として判定・変換していることが原因です。
原因
Excelでは、CSVを開くときに各列のデータ型を自動判定します。
その際、ID・会員番号・注文番号・商品コードなどの「数字だけで構成された値」は、文字列ではなく数値として扱われることがあります。
Excelの数値には有効桁数の制限があり、桁数の長い数字は正確に保持できず、末尾が 0 に置き換わることがあります。
Microsoft公式サポートでも、Excelでは大きな数値が指数表記に変換されたり、15桁を超える数値が切り捨てられたりする場合があると案内されています。(Microsoft サポート)
対処方法
Excelの設定で、CSVを開いたときの自動変換を無効化します。
設定手順
Excelを開き、以下の手順で設定を変更してください。
- Excelを起動する
- 左上の 「ファイル」 をクリック
- 「オプション」 をクリック
- 左メニューから 「データ」 を選択
- 「自動データ変換」 の設定項目を確認する
- 以下のような項目のチェックを外す

これにより、CSVをExcelで開いた際に、長い数字が勝手に数値変換されることを防ぎやすくなります。
この設定で防げること
この設定を行うことで、以下のようなExcelの自動変換を抑止できます。
| 変換される例 | 内容 |
|---|---|
| 長い数字の末尾が0になる | 15桁を超える数値が丸められる |
| 00123が123になる | 先頭のゼロが削除される |
| 1E10のような値が指数表記になる | Eを含む値が数値扱いされる |
| 202401などが日付扱いされる | 文字列が日付に自動変換される |
注意点
この設定は、以下のExcelで利用できます。
- Excel for Microsoft 365
- Excel for Microsoft 365 for Mac
- Excel 2024
- Excel 2024 for Mac
古いバージョンのExcelでは、同じ設定項目が表示されない場合があります。Microsoft公式サポートでも、この自動データ変換の設定は上記バージョンで利用可能とされています。(Microsoft サポート)
設定が表示されない場合
Excelのバージョンが古く、上記の「自動データ変換」設定が表示されない場合は、CSVをダブルクリックで開く運用では完全に防げない場合があります。
その場合は、以下のいずれかの方法で対応してください。
方法1:CSVをExcelにインポートして開く
- Excelを開く
- データ タブをクリック
- テキストまたはCSVから を選択
- 対象CSVを選択
- 該当列のデータ型を 文字列 に変更して読み込む
方法2:CSV作成側で文字列として出力する
Excel専用のCSVとして出力する場合は、以下のように値を文字列扱いにする方法もあります。
="100010000839485"
ただし、この形式はExcel向けの対策です。
他システムに取り込むCSVでは想定外の値として扱われる可能性があるため、利用には注意してください。
補足
会員番号、注文番号、商品コード、管理番号などは、見た目が数字でも「計算するための数値」ではありません。
このような値は、Excel上では数値ではなく文字列として扱うのが適切です。
Excelの自動変換設定を見直すことで、CSVを開いた際に値が勝手に変わるトラブルを防ぐことができます。
まとめ
CSVをExcelで開いたときに、桁の長い数字の末尾が 0に変わる場合は、Excelの自動データ変換が原因です。
以下の設定を行ってください。
ファイル
→ オプション
→ データ
→ 自動データ変換
→ 長い数値や先頭ゼロに関する自動変換をオフ
この設定により、CSV内のIDや番号がExcelによって勝手に変換されることを防ぎやすくなります。そう見えているだけというケースはよくあります。困ったときは、まず開き方と設定の確認を行いましょう。
