スポンサーリンク
テクノロジー

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には、「ファイル」→「オプション」→「データ」の中に自動データ変換の設定があり、一部の変換を止められます。ただし、バージョンによって項目が違い、職場の他の人のパソコンでは設定が同じとは限りません。データ自体を文字列として扱うほうが確実です。

日付になってしまったあとの扱い

数が少なければ入力し直すのが確実です。たくさんある場合は、次のような方法で文字列に戻せることがあります。

  1. 新しい列に =TEXT(A2,"m-d") と入れて下へコピーします。
  2. 結果を「値」として貼り付けます。

この方法で戻せるのは、元の入力の形が推測できる場合だけです。「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のように見えたら、前の節と同じく表示形式を日付にします。

「区切り位置」で一度に変換する

列全体を変換するなら、関数を使わずに直せる「区切り位置」が便利です。

区切り位置で日付に変換する(1. 列を選ぶ、2. 機能を開く、3. 形式を選ぶ、4. 区切りを外す、5. 列の形式を指定、6. 完了する)
8桁の数字もこの手順で本物の日付になる。

最後の画面で「日付」と年月日の順番を指定すると、8桁の数字も日付に変換されます。元の列が直接書き換えられるので、コピーを取ってから行いましょう。

検証してから次へ進む

変換の後は、件数と範囲を確かめます。=COUNT(A:A) で数値の件数を数え、データの行数と合うかを見ます。合わなければ、変換できなかった文字列が混じっています。また、=MIN(A:A) と =MAX(A:A) で最も古い日付と新しい日付を確かめると、月と日が入れ替わった値などに気づきやすくなります。

スポンサーリンク

長い番号が1.23E+11になる:指数表示と15桁の壁

指数表示は幅と桁の都合

「1.23E+11」は「1.23×10の11乗」という意味の指数表示です。「標準」の表示形式では、12桁以上の数はこの形に切り替わります。列の幅が足りないときにも、短い桁で指数表示になることがあります。

数式バーに元の番号が全部出ていれば、値は残っています。その場合は表示形式の変更で直せます。

  1. 対象のセルを選んで、Ctrl+1を押します。
  2. 「数値」を選び、小数点以下の桁数を0にします。あるいは「ユーザー定義」で 0 と入力します。

16桁目以降は失われる

本当に怖いのは、指数表示そのものではなく、桁の喪失です。Excelの数値は、有効数字が15桁までです。16桁以上の数字を数値として入力すると、16桁目以降はすべて0に置き換えられます。

たとえば「1234567890123456」と入れると、「1234567890123450」として記録されます。カード番号や長い伝票番号、製造番号で問題になります。一度数値になると、表示形式をどう変えても元の桁は戻りません。数式バーで見ても0のままです。

16桁以上の番号が0に変わったファイルを保存すると、その値が正しいデータのように残ります。本人確認や請求に関わる番号では、元のデータから取り込み直してください。推測で番号を埋めてはいけません。

防ぐには、計算に使わない番号は最初から文字列として扱います。郵便番号、電話番号、社員番号、商品コードのように、足したり引いたりしない番号は、数字に見えても「数値」ではなく「名前」のようなものと考えると、判断しやすくなります。

入力や取り込みの段階で、列を文字列に指定します。CSVの場合は、ダブルクリックで開くと、すべての列が推測で変換されてしまいます。「データ」タブの「テキストまたはCSVから」を選び、「データの変換」からPower Queryの画面を開いて、列の型を「テキスト」に変えてから読み込みましょう。

次のページへ先頭のゼロが消える:見かけのゼロと本物のゼロ
スポンサーリンク
  1. 秋の戸口に並ぶかぼちゃの明かりとかぶ、麦束
  2. 資料を手に落ち着いて話し合う二人
  3. ノートパソコンと資料、外付け記憶装置がある机
  4. 冬の木で越冬する卵のうやミノムシ、テントウムシ
  5. 青い折り鶴と三角に折った紙、無地の折り紙