Excelで日付を入力したのに「44927」「45190」のような5桁の数字が表示されて困った経験はないでしょうか。あるいは、正常に表示されていた日付が突然数字に変わってしまった、というトラブルも実務ではよく起こります。この数字は「シリアル値」と呼ばれるもので、Excelが内部的に日付を管理するための数値です。原因を正しく理解すれば必ず日付表示に戻すことができます。本記事では、日付がシリアル値(数字)になる原因を場面別に整理し、正しい日付表示に戻す方法を具体的な手順とコード例で徹底解説します。

そもそもシリアル値とは何か

Excelはすべての日付を内部的に「シリアル値」という数値で管理しています。シリアル値とは「1900年1月1日」を「1」として、日付を数値で管理しているExcelの機能のひとつです。日付が増えるごとに1が足され、1900年1月2日は「2」、2023年1月1日は「44927」となります。

つまり、セルに「2025/3/1」と表示されているとき、Excelの内部では「45716」という数値として保持しています。画面上で日付として見えているのは、この数値に「日付」という表示形式が適用されているだけです。何らかの理由でこの表示形式が外れると、内部の数値がそのまま画面に出てくるため「44927」のような5桁の数字が表示されます。

// シリアル値と日付の対応例
1       → 1900年1月1日
25569   → 1970年1月1日(UNIXタイムの起点)
44927   → 2023年1月1日
45190   → 2023年9月21日
45716   → 2025年3月1日

// 時刻はシリアル値の小数部分で管理される
45716.0    → 2025/3/1 0:00(00時00分)
45716.25   → 2025/3/1 6:00(6時間 = 1日の1/4)
45716.5    → 2025/3/1 12:00(12時間 = 1日の1/2)
45716.75   → 2025/3/1 18:00(18時間 = 1日の3/4)

日付がシリアル値(数字)になる原因と修正方法

原因1:セルの表示形式が「数値」または「標準」になっている

日付がシリアル値で表示される最もよくある原因が、セルの表示形式の設定ミスです。セルの表示書式が「数値」に設定されていると、日付が数値(シリアル値)で表示されてしまいます。

日付を入力する前にセルの表示形式を「数値」や「標準」に設定していたり、他のセルから書式をコピーしてしまったときに起こります。

修正方法1:ショートカットキーで素早く直す(最も手軽)

// Ctrl + Shift + 3 で「短い日付形式」に即変換
// ① シリアル値が表示されているセルを選択する
// ② Ctrl + Shift + 3 を押す
// → 例:44927 が 2023/1/1 に変換される

// Ctrl + 1 でセルの書式設定ダイアログを開いて細かく設定する場合
// ① シリアル値が表示されているセルを選択する
// ② Ctrl + 1 を押す
// ③「表示形式」タブの分類から「日付」を選択する
// ④「種類」から表示したい日付形式を選ぶ
// ⑤ OK をクリックする

修正方法2:リボンメニューから表示形式を変更する

  • シリアル値が表示されているセルを選択する
  • 「ホーム」タブの「数値の書式」のドロップダウン(▼)をクリックする
  • 「短い日付形式」または「長い日付形式」を選択する
// 表示形式の種類と表示例(A1に44927が入っている場合)
短い日付形式  → 2023/1/1
長い日付形式  → 2023年1月1日

// 「数値」や「標準」を選んでしまうとシリアル値のままになるため注意

原因2:「計算結果の代わりに数式をセルに表示する」設定がオンになっている

セルの書式設定は「日付」になっているのに、なぜかシリアル値で表示される、というケースがあります。この場合は「計算結果の代わりに数式をセルに表示する」という設定がオンになっていることが原因です。この設定がオンになっていると、日付がシリアル値で表示されてしまいます。

数式の確認作業中に誤ってCtrl + `(バッククォート)を押してしまうとこの設定がオンになります。

修正手順:

  • 「ファイル」タブ →「オプション」を開く
  • 左ペインの「詳細設定」をクリックする
  • 「次のシートで作業するときの表示設定」にある「計算結果の代わりに数式をセルに表示する」のチェックを外す
  • 「OK」をクリックして保存する
// ショートカットで切り替えることも可能
Ctrl + `(バッククォート)
// ← このキーを押すたびに「数式表示モード」と「通常表示モード」が切り替わる
// 誤って押してしまったときは、もう一度押すだけで元に戻る

// 数式バーの表示で確認する方法
// セルに「44927」と表示されている場合
// 数式バーにも「44927」→ シリアル値がそのまま入力されている(表示形式の問題)
// 数式バーに「2023/1/1」→ 日付データは正しいが表示形式の問題(原因1)
// → 数式バーが日付表示なら表示形式の変更だけで解決できる

原因3:CSVファイルをExcelで開いたときに日付が数字になる

CSVファイルをExcelで直接開くと、日付データがシリアル値や文字列として表示されることがあります。CSVはテキストファイルのため書式情報を持っておらず、Excelが日付として認識できない形式で保存されているとそのまま数字になってしまいます。

// CSVの日付データの例(テキストとして保存されている)
2023-01-01  // ← ハイフン区切りはExcelが日付として認識しにくい
20230101    // ← 8桁の数値形式はそのまま数値になる
2023/01/01  // ← スラッシュ区切りは比較的認識されやすいが環境による

// 修正方法1:DATEVALUE関数で文字列の日付をシリアル値に変換する
// A1に「2023-01-01」という文字列がある場合
=DATEVALUE(A1)   // → 44927(シリアル値)が返る
// その後、表示形式を「日付」に変更すれば「2023/1/1」と表示される

// 修正方法2:8桁の数値(20230101)を日付に変換する
// A1に「20230101」という数値がある場合
=DATE(LEFT(A1,4), MID(A1,5,2), RIGHT(A1,2))
// LEFT(A1,4)  → "2023"(年)
// MID(A1,5,2) → "01"(月)
// RIGHT(A1,2) → "01"(日)
// → DATE関数で 2023/1/1 の日付シリアル値が生成される

// 修正方法3:TEXT関数で文字列の日付形式を統一してからDATEVALUEで変換
// A1に「2023年1月1日」という文字列がある場合
=DATEVALUE(TEXT(A1, "yyyy/m/d"))  // → シリアル値に変換

CSVを正しく取り込む方法(テキストファイルウィザードを使う):

  • ExcelでCSVをダブルクリックで直接開かず、「データ」タブの「テキストまたはCSVから」を選択してインポートする
  • テキストファイルウィザードの「列のデータ形式」で日付列を「日付:YMD」などに指定してから取り込む
  • これにより、日付データがシリアル値ではなく日付として正しく取り込まれる

原因4:コピー&ペーストで書式が崩れた

別のシートや別のブックから日付データをコピーして貼り付けたときに、貼り付け先のセルの表示形式が「数値」や「標準」になっていると日付がシリアル値で表示されます。また、Webページや他のアプリケーションからコピーしてきた日付データが文字列として貼り付けられ、Excelが日付と認識しないこともあります。

// 貼り付け後にシリアル値になった場合の対処法

// 方法1:貼り付け後に書式だけ変更する(最もシンプル)
// ① シリアル値が表示されているセルを選択
// ② Ctrl + Shift + 3 で日付形式に変換

// 方法2:「形式を選択して貼り付け」で値のみ貼り付けてから書式を設定する
// ① コピー元の日付セルをCtrl+Cでコピー
// ② 貼り付け先を選択してCtrl+Alt+Vを押す
// ③「値」を選択してOK
// ④ Ctrl+Shift+3 で日付形式に変換

// 方法3:貼り付け先のセルの書式を先に「日付」に設定してから貼り付ける
// ① 貼り付け先のセルを選択する
// ② Ctrl+1でセルの書式設定を開く
// ③ 分類「日付」を選択してOK
// ④ その後に日付データを貼り付ける

原因5:数値データが日付として誤変換される(逆パターン)

逆のケースとして、数字として入力したいのにExcelが自動的に日付に変換してしまうことがあります。たとえば「1/2」と入力すると「1月2日」に、「3-5」と入力すると「3月5日」に変換されてしまいます。郵便番号・商品コード・分数など、スラッシュやハイフンを含む数値を入力する際によく起こります。

// 数値が日付に誤変換されるケース
入力:1/2   → 表示:1月2日(日付として認識)
入力:3-5   → 表示:3月5日(日付として認識)
入力:0.5   → 表示:0.5(これは正常・小数として認識)

// 修正方法1:セルの書式を先に「文字列」に設定してから入力する
// ① 入力したいセルを選択する
// ② Ctrl+1でセルの書式設定を開き「文字列」を選択してOK
// ③ その後「1/2」と入力する → 文字列の「1/2」として表示される

// 修正方法2:先頭にアポストロフィ(')を付けて入力する
'1/2   // → 「1/2」が文字列として表示される
'3-5   // → 「3-5」が文字列として表示される
// ※ アポストロフィはセルに表示されず、数式バー上でのみ確認できる

// 修正方法3:「="1/2"」として入力する(文字列として確定)
="1/2"  // → 「1/2」が文字列として表示される

日付の表示形式を自在にカスタマイズする方法

日付を正しく表示できるようになったら、表示形式を業務に合わせてカスタマイズしてみましょう。セルの書式設定(Ctrl+1)から「ユーザー定義」を使うと、西暦・和暦・曜日入りなどさまざまな形式に変更することができます。

// よく使う日付の表示形式一覧(Ctrl+1 → 「ユーザー定義」で入力)
yyyy/m/d        → 2025/3/1
yyyy年m月d日    → 2025年3月1日
yyyy/mm/dd      → 2025/03/01(ゼロ埋めあり)
m月d日          → 3月1日(年なし)
d                → 1(日だけ)
aaa             → 土(曜日の省略形)
aaaa            → 土曜日(曜日の完全形)
yyyy/m/d(aaa)   → 2025/3/1(土)(日付+曜日)
ggge年m月d日   → 令和7年3月1日(和暦)
ge.m.d          → R7.3.1(和暦省略形)

// TEXT関数で数式内に日付を文字列として埋め込む例
=TEXT(A1, "yyyy年m月d日")      // → 「2025年3月1日」という文字列
=TEXT(A1, "yyyy/mm/dd(aaa)")   // → 「2025/03/01(土)」という文字列
=TEXT(TODAY(), "ggge年m月d日") // → 「令和7年3月1日」という文字列(今日の和暦)

シリアル値から日付を計算・操作する主要関数

シリアル値の仕組みを理解すると、日付の計算や操作が自在にできるようになります。以下に実務でよく使う日付関数をまとめます。

// 日付データを扱う主要関数

// 今日の日付を取得する
=TODAY()              // → 今日の日付(動的・毎日更新)

// 今日の日時を取得する
=NOW()                // → 今日の日時(動的・更新あり)

// 年・月・日を個別に取り出す
=YEAR(A1)             // → 2025(年)
=MONTH(A1)            // → 3(月)
=DAY(A1)              // → 1(日)

// 年・月・日から日付を組み立てる
=DATE(2025, 3, 1)     // → 2025/3/1のシリアル値

// 文字列の日付をシリアル値に変換する
=DATEVALUE("2025/3/1")  // → シリアル値に変換

// 2つの日付の差(日数)を計算する
=A2 - A1              // → 日付の差(シリアル値同士の引き算で日数が出る)
=DATEDIF(A1, A2, "D") // → 日数差
=DATEDIF(A1, A2, "M") // → 月数差
=DATEDIF(A1, A2, "Y") // → 年数差

// 営業日を計算する(土日・祝日除く)
=WORKDAY(A1, 5)       // → A1から5営業日後の日付
=NETWORKDAYS(A1, A2)  // → A1からA2の間の営業日数

シリアル値に関連するよくあるトラブルと対処法

日付を入力すると「####」と表示される

日付は正しく入力されているがセル幅が狭くて表示しきれない場合に「####」と表示されます。列幅を広げることで解決します。

// #### が表示される場合の対処法
// 方法1:列の境界線をダブルクリックして自動調整する
// ① 列番号(A・B・Cなど)の右端の境界線をダブルクリックする
// → 内容に合わせて列幅が自動調整される

// 方法2:列幅を手動で広げる
// ① 列番号の右端の境界線をドラッグして広げる

// 方法3:書式設定で「縮小して全体を表示」にする
// ① Ctrl+1 でセルの書式設定を開く
// ②「配置」タブ →「縮小して全体を表示する」にチェックを入れる

日付の計算結果がシリアル値で表示される

日付の足し算・引き算の結果セルが自動的に日付形式にならず、シリアル値のまま表示されることがあります。計算結果のセルの表示形式を手動で「日付」に変更することで解決します。

// 日付の計算結果がシリアル値になる例
// A1:2025/3/1、B1に以下の数式を入力
=A1 + 30   // → 45776(シリアル値で表示される場合あり)

// 修正:B1を選択してCtrl+Shift+3で日付形式に変換
// → 2025/3/31 と表示される

// または TEXT関数で直接文字列として表示する
=TEXT(A1+30, "yyyy/m/d")  // → 「2025/3/31」という文字列として表示

まとめ:日付がシリアル値になる原因は表示形式の問題がほとんど

Excelで日付が「44927」「45190」のようなシリアル値(数字)で表示される主な原因は以下の5つです。

  • セルの表示形式が「数値」または「標準」になっている → Ctrl+Shift+3または「セルの書式設定」で「日付」に変更する
  • 「計算結果の代わりに数式をセルに表示する」設定がオンになっている → 「ファイル」→「オプション」→「詳細設定」でチェックを外す
  • CSVファイルを直接開いたため日付が文字列または数値として取り込まれた → DATEVALUE関数またはDATE関数で変換するかテキストウィザードを使って取り込む
  • コピー&ペーストで書式が崩れた → 貼り付け後にCtrl+Shift+3で日付形式に変換する
  • 数値が日付に誤変換される(逆パターン) → 先頭にアポストロフィ(’)を付けるか、セルを先に「文字列」形式に設定してから入力する

シリアル値とは日付や時間をExcelが正しく認識し処理するために使用されている数値です。この仕組みを理解すれば、日付がシリアル値になっても慌てることなく正しい日付形式に戻すことができます。最もシンプルな解決策はCtrl+Shift+3のショートカットキーで日付形式に変換することです。CSVの取り込みやコピペ後の書式崩れには、DATEVALUE関数やDATE関数を活用して根本から対処することをおすすめします。