ツールへ移動
ViewCSV
ファイルはアップロードされません

CSV を Excel で開いても先頭の 0 と桁数の多い数字を残す方法

起きていることは 2 つあります。長い数字が 4.02177E+19 と表示されるのは表示形式の問題であることもあり、列幅を広げるか表示形式を「数値」にすれば変わります。しかし Excel は CSV を開くときに値そのものも変換します。数値セルが保持できるのは有効桁数 15 桁までで、先頭の 0 は数値の一部とみなされません。すでに置き換わった桁は、書式を変えても戻りません。値を残すには、Excel が変換する前に文字列セルにしておく必要があります。該当する列を「文字列」として取り込むか、CSV を Excel に変換するツールが既定で作るような、最初から文字列セルになっている XLSX を開いてください。

ID やコードが並ぶファイルを Excel はどう変えるか

CSV ファイルはセルの型を持たないただのテキストです。そのためダブルクリックで開くと、Excel は値ごとに数値・日付・文字列のどれかを推測します。下の架空のファイルには、この推測で誤って扱われやすい値を集めました。

値の種類CSV の中身Excel で CSV を開いた場合ViewCSV の XLSX のセル
先頭が 0 のコード0041241200412
20 桁の受注番号402177300911524000164.02177E+1940217730091152400016
その次の受注番号402177300911524000174.02177E+1940217730091152400017
+ 付きの電話番号+1555010023415550100234+15550100234
日付に見える品番3-1212-Mar3-12
E を含むロット番号12E31.20E+0412E3
数式に見える備考=SUM(F2:F3)17=SUM(F2:F3)
英語(米国)の地域設定の Excel で、ダブルクリックして開いたときの典型的な結果です。日本語の地域設定では日付らしい値の表示が「3月12日」のように変わるなど、バージョンや地域設定によって結果が少し異なることがあります。

2 つの受注番号はどちらも 4.02177E+19 と表示されますが、これは表示上の話にすぎません。内部では先頭 15 桁しか残っていないため、2 つのセルはどちらも同じ値 40217730091152400000 を持っています。列幅を広げても見えるのは元の数字ではなくこの 0 で、VLOOKUP や重複チェックでは 2 件の注文が 1 件として扱われます。

この行は変換ツールのサンプルと同じです。CSV をダウンロードし、お使いの Excel で開いて見比べてみてください。

指数表示は見た目だけ、失われた桁は本当に消えている

4.02177E+19 は、表示形式が「標準」で列幅が足りないときに大きな数値をこう表示しているだけで、列幅を広げるか表示形式を「数値」にすればもっと多くの桁が見えます。本当の損失はその前に起きています。Excel は数値を有効桁数 15 桁の精度で保存するため、変換の時点で 16 桁目以降はすべて 0 になります。16 桁のカード番号や口座番号なら、最後の 1 桁がすでに失われています。

  • 先頭の 0 が消えるのは、00412 と 412 が数値としては同じだからです。00000 のようなユーザー定義の表示形式で 5 桁に見せることはできますが、セルの値は 412 のままで、桁数がまちまちのコードはこの方法では戻せません。
  • 桁数の多い ID は 16 桁目以降がすべて失われます。変換後に保存されたファイルからは、書式でも関数でもツールでも取り戻せません。
  • 3-12 や 12E3 のようなコード は日付や指数表記の数値になり、元の文字列はセルに残りません。
  • = で始まる値 は数式として扱われ、計算結果に置き換わります。
注意 シートを CSV として保存し直すと、変換後の値がファイルに書き込まれます。誰かが Excel で CSV を開いて上書き保存した場合は、元のエクスポートと比べてください。CSV の中で桁が 0 になってしまったら、もう戻りません。

代わりに文字列セルの XLSX を作る

CSV と違い、.xlsx ブックはセルごとに型を保存しており、文字列セルは書かれたとおりに Excel に表示されます。CSV を Excel に変換するツールは、既定ですべての値を文字列セルとして書き込みます。処理はブラウザー内で行われ、ファイルはアップロードされません。

  1. CSV を Excel に変換するツールで CSV を開きます。上の行で試すなら サンプルで試す を選びます。
  2. 入力 の表を確認します。ID、先頭の 0、コードがファイルのとおりに表示されています。
  3. 値の型 は すべての値を文字列のまま扱う のままにします。
  4. XLSX をダウンロード を選び、ブックを Excel で開きます。

ブックでは 00412、2 つの受注番号の 20 桁すべて、+15550100234、3-12、12E3、=SUM(F2:F3) がいずれも文字列セルです。数式のような値もただの文字列として保存されるので、ファイルを開いても計算されません。数字に見える文字列には Excel が小さな緑の三角(「文字列として保存されている数値」)を付けることがありますが、値は変わりません。

注意 文字列セルは合計できません。quantity や unit_price で計算したい場合は、Excel で列ごと変換するのではなく次の節を読んでください。Excel でまとめて変換すると、うっかり選んだ ID 列まで変換されてしまいます。

数値として計算もしたい場合

数値と true/false を判定する は、列のすべての値が Excel でそのまま保存できる単純な数値である場合にだけ、その列を数値にします。サンプルでは quantity と unit_price が数値になり、customer_id(先頭の 0)、order_ref(15 桁超)、part_code、note は文字列のまま残ります。

判定は値の意味ではなく書き方を見て、列単位で行われます。+15550100234 のような値だけの列は符号付きの整数、12E3 のような値だけの列は指数表記と読めるため、サンプルでも phone と lot_code は数値になってしまいます。こうしたファイルでは既定のままにして、数量のセルだけを Excel で変換してください。セルを選び、エラー アイコンから 数値に変換する を選びます。

Excel で CSV から始めるしかない場合

変換したブックが使えないときは、CSV をダブルクリックせずにインポートし、読み込む前に危ない列を「テキスト」に設定します。現在の Microsoft 365 版 Excel なら、データ > テキストまたは CSV から > データの変換 と進み、自動で追加される 変更された型 ステップを削除して、ID の列をテキストにしてから読み込みます。この手順と従来のテキスト ファイル ウィザードは、CSV ファイルを Excel にインポートする方法で説明しています。

最近の Microsoft 365 版 Excel と Excel 2024 には、データのオプションに「自動データ変換」の設定があり、先頭の 0、桁数の多い数字、E を含む表記、日付に見える文字列の変換を止められます。どの項目があり、どう呼ばれるかはバージョンとプラットフォームによって異なります。また、変わるのは自分の Excel の設定だけで、同僚の Excel には影響しません。

値を守ってくれない方法

  • 値を囲む二重引用符("00412")は、CSV を読むプログラムに値の始まりと終わりを伝えるだけです。引用符で囲まれた数字も Excel は同じように変換します。
  • UTF-8 の BOM は、Excel が日本語などの文字を正しく読むのに役立ちますが、セルの型には関係しません。
  • 開いたあとで列を「文字列」にする のでは遅すぎます。変換はすでに終わっています。
  • ="00412" のような数式で囲む方法 は、数式を計算する表計算ソフトでしか効きません。ほかの CSV リーダー、データベース、スクリプトには ="00412" という文字列がそのまま渡るため、ファイルのデータはもう ID ではなくなります。
  • 先頭のアポストロフィ('00412)は数式ではありません。Excel で入力すると文字列の目印になり、表示はされません。ところが CSV ファイルの中ではただの文字で、ほかのプログラムには '00412 という値が渡ります。
  • XLSX の本物の文字列セル なら、余計な文字なしで 00412 という値をそのまま保持できます。変換ツールが書き込むのはこの形式で、ViewCSV は数式の囲みもアポストロフィも付けません。

制限

変換ツールが扱えるのは最大 25 MB、100,000 行、250 列、200 万セルまでで、1 ブックに 1 シートです。丸められた ID や消えた 0 のまま保存されたファイルは、変換しても直りません。元のシステムからもう一度エクスポートしてください。ViewCSV のテストでは、生成した XLSX のセルの型を独立した読み取りツールで確認しています。各バージョンの Excel が画面上でどう表示するかは異なる場合があります。

出典

Microsoft のドキュメントを独自の言葉で要約しています。メニュー名はお使いの Excel のバージョンによって異なる場合があります。

ほかのガイド

CSV と Excel のガイド