Excelで日付や数字の表示がおかしいとき|####・シリアル値・指数表示・先頭のゼロの原因と直し方
数字や記号が勝手に日付になるとき
なぜ変換されるのか
Excelは入力された内容を見て、「これは日付だろう」と推測して変換します。「1-2」「1/2」「3月4日」などは、すべて日付として受け取られます。「1-2」と入れると「1月2日」と表示され、セルの中身は今年の1月2日のシリアル値に変わります。
便利な機能ですが、住所の番地(「1-2-3」)、型番、部品番号、資料番号のようなものを入れるときは困ります。「12-1」を入れて「12月1日」になっても、列の中に普通の番号と混じっていると気づきにくいのです。番号によっては変換されずに文字列のまま残るものもあり、同じ列に日付と文字列が混在する、ということも起こります。
入力の前に防ぐ
一度日付になった値を元の文字に戻すのは、手間がかかります。そのため、入力の前に防ぐのが基本です。
- 文字列の表示形式にしておく:列を選んで、「ホーム」タブの表示形式の欄から「文字列」を選びます。あとから入れる値はすべてそのまま文字になります。
- アポストロフィを付ける:先頭に半角の
'を付けて'1-2と入力します。セルには「1-2」と表示されます。 - 文字を含む形にする:番号の形を決められるなら、「No.1-2」のように文字を含めておく方法もあります。
Microsoft 365の新しいExcelには、「ファイル」→「オプション」→「データ」の中に自動データ変換の設定があり、一部の変換を止められます。ただし、バージョンによって項目が違い、職場の他の人のパソコンでは設定が同じとは限りません。データ自体を文字列として扱うほうが確実です。
日付になってしまったあとの扱い
数が少なければ入力し直すのが確実です。たくさんある場合は、次のような方法で文字列に戻せることがあります。
- 新しい列に
=TEXT(A2,"m-d")と入れて下へコピーします。 - 結果を「値」として貼り付けます。
この方法で戻せるのは、元の入力の形が推測できる場合だけです。「1-2」と「1/2」のどちらだったかは、日付に変わった時点で区別できません。「01-02」と「1-2」の区別もつきません。元のデータがあるなら、そこから取り込み直すほうが安全です。
また、年を省いて「11/4」と入力すると、入力した時点の年の日付になります。年末に翌年の予定を「1/5」と入れると、今年の1月5日として記録されます。見た目が同じなので気づきにくく、並べ替えや日数の計算で初めてわかることがあります。翌年の日付は年まで入れましょう。
日付に見えて日付でないデータを直す
他のシステムから受け取ったデータでは、反対の問題が起こります。見た目は日付なのに、中身がただの文字や数字で、並べ替えや計算ができないケースです。
見分け方
ISNUMBER関数でFALSEになる、左寄せになっている、といった特徴があれば、文字列です。「20261104」のような8桁の数字は、ISNUMBERでTRUEになりますが、シリアル値ではないので、日付としては使えません。2026万という大きな数として扱われているだけです。
よくある形と直し方をまとめます。
| 元のデータ | 問題 | 直し方の例 |
|---|---|---|
| 20261104 | 8桁の数値 | 区切り位置、または =DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2)) |
| 2026.11.04 | ドット区切りの文字列 | =DATEVALUE(SUBSTITUTE(A2,".","/")) |
| 2026/11/4 (左寄せ) | 文字列 | =DATEVALUE(A2) か区切り位置 |
| 2026年11月4日(左寄せ) | 文字列 | =DATEVALUE(A2) |
計算結果が46330のように見えたら、前の節と同じく表示形式を日付にします。
「区切り位置」で一度に変換する
列全体を変換するなら、関数を使わずに直せる「区切り位置」が便利です。

最後の画面で「日付」と年月日の順番を指定すると、8桁の数字も日付に変換されます。元の列が直接書き換えられるので、コピーを取ってから行いましょう。
検証してから次へ進む
変換の後は、件数と範囲を確かめます。=COUNT(A:A) で数値の件数を数え、データの行数と合うかを見ます。合わなければ、変換できなかった文字列が混じっています。また、=MIN(A:A) と =MAX(A:A) で最も古い日付と新しい日付を確かめると、月と日が入れ替わった値などに気づきやすくなります。
長い番号が1.23E+11になる:指数表示と15桁の壁
指数表示は幅と桁の都合
「1.23E+11」は「1.23×10の11乗」という意味の指数表示です。「標準」の表示形式では、12桁以上の数はこの形に切り替わります。列の幅が足りないときにも、短い桁で指数表示になることがあります。
数式バーに元の番号が全部出ていれば、値は残っています。その場合は表示形式の変更で直せます。
- 対象のセルを選んで、Ctrl+1を押します。
- 「数値」を選び、小数点以下の桁数を0にします。あるいは「ユーザー定義」で
0と入力します。
16桁目以降は失われる
本当に怖いのは、指数表示そのものではなく、桁の喪失です。Excelの数値は、有効数字が15桁までです。16桁以上の数字を数値として入力すると、16桁目以降はすべて0に置き換えられます。
たとえば「1234567890123456」と入れると、「1234567890123450」として記録されます。カード番号や長い伝票番号、製造番号で問題になります。一度数値になると、表示形式をどう変えても元の桁は戻りません。数式バーで見ても0のままです。
16桁以上の番号が0に変わったファイルを保存すると、その値が正しいデータのように残ります。本人確認や請求に関わる番号では、元のデータから取り込み直してください。推測で番号を埋めてはいけません。
防ぐには、計算に使わない番号は最初から文字列として扱います。郵便番号、電話番号、社員番号、商品コードのように、足したり引いたりしない番号は、数字に見えても「数値」ではなく「名前」のようなものと考えると、判断しやすくなります。
入力や取り込みの段階で、列を文字列に指定します。CSVの場合は、ダブルクリックで開くと、すべての列が推測で変換されてしまいます。「データ」タブの「テキストまたはCSVから」を選び、「データの変換」からPower Queryの画面を開いて、列の型を「テキスト」に変えてから読み込みましょう。









