エクセルの日付の扱い方|シリアル値・入力・表示形式・文字列の変換

エクセルの日付は、見た目こそ「2026/8/13」ですが、中身は連番の数値(シリアル値)です。この仕組みを知っておくと、5桁の数字が出る・計算できない・並べ替えがおかしいといったつまずきの原因がひと目で分かります。日付として認識されているかは、セルの右寄せ・左寄せで判別できます。

この記事でわかること

  • 日付の正体であるシリアル値の仕組み(時刻が小数になる理由も)
  • 入力のしかたとショートカット、連続した日付を一気に入れる方法
  • 表示形式で見た目だけを変える書式コード(和暦も含む)
  • 日付に見えるのに計算できない文字列日付を直す4つの手順
  • 5桁の数字になる・####になる・並べ替えが効かないときの直し方


目次

日付の正体はシリアル値

エクセルは日付を、1900年1月1日を「1」とした連番で管理しています。この数値をシリアル値と呼びます。

日付シリアル値
1900年1月1日1
2000年1月1日36,526
2026年8月13日46,247

日付が数値である以上、足し算も引き算もできます。=A2+7 で1週間後、=B2-A2 で2つの日付の間の日数が出るのは、内部で数値を計算しているからです。

時刻は小数で表される

1日が「1」なので、半日は 0.5、6時間は 0.25 になります。「2026/8/13 12:00」は 46247.5 です。

日付と時刻が同じセルに入っていると、=A2=DATE(2026,8,13) のような比較が一致しません。時刻の小数部分が残っているためです。日付だけを取り出すには =INT(A2) を使います。

⚠️ 1900年前半だけ1日ずれる

エクセルは互換性のため、存在しないはずの1900年2月29日をカレンダー上に持っています。そのため1900年1月〜2月の日付は、他のシステムと1日ずれることがあります。実務で使う年代には影響しません。

エクセルの日付の扱い方|シリアル値・入力・表示形式・文字列の変換の解説図1

日付の入力

区切り文字は / か -

2026/8/13 または 2026-8-13 と入力すると、日付として認識されます。年を省略して 8/13 と入力すると、今年の日付になります。

⚠️ ピリオド区切りの 2026.8.13 は日付になりません。ただの文字列として左に寄ります。

ショートカット

キー入るもの
Ctrl + ;今日の日付(入力した時点で固定される)
Ctrl + :現在の時刻(同じく固定)

ファイルを開くたびに更新したい場合は、ショートカットではなく =TODAY() を使います。TODAY関数は再計算のたびに今日の日付へ変わるため、記録として残したい日付には向きません。

連続した日付を一気に入れる

先頭のセルに日付を入れ、セル右下の四角(フィルハンドル)を下へドラッグすると、1日ずつ増えていきます。

月単位や平日だけにしたいときは、右ボタンでドラッグして離します。メニューが出るので選びます。

  1. 先頭セルに開始日を入力する
  2. フィルハンドルを右ボタンでドラッグして離す
  3. 「連続データ(週日単位)」「(月単位)」「(年単位)」から選ぶ

「週日単位」は土日を飛ばした連番です。祝日は考慮されません。


表示形式で見た目を変える

表示形式は見え方だけを変える設定で、セルに入っている値(シリアル値)は変わりません。入口は次のとおりです。

セルを選択 → Ctrl + 1 → 表示形式 タブ → 日付 または ユーザー定義

よく使う書式コード

書式コード表示例(値は 46247)
yyyy/m/d2026/8/13
yyyy/mm/dd2026/08/13
yyyy"年"m"月"d"日"2026年8月13日
ggge"年"m"月"d"日"令和8年8月13日
m"月"d"日"8月13日

漢字や記号をそのまま出したい部分は、ダブルクォーテーションで囲みます。囲まずに書くと、書式コードとして解釈されて意図しない表示になります。

和暦は ggge で「令和8」となります。e は和暦の年、ggg は元号の正式表記です。

値そのものを文字列にしたいとき

表示形式はあくまで見た目です。「2026年8月13日」という文字として別のセルに取り出したいなら、TEXT関数を使います。

=TEXT(A2, "yyyy年m月d日")

こちらは結果が文字列になるため、日付としての計算はできなくなります。並べ替えや期間の計算に使う列は、表示形式のまま置いておくのが基本です。

エクセルの日付の扱い方|シリアル値・入力・表示形式・文字列の変換の解説図2

日付に見えるのに計算できないとき

外部システムから貼り付けたデータでよく起こります。まず本物の日付かどうかを確かめるところから始めます。

見分け方は3つ

  1. 寄り方を見る:何も書式設定していないセルなら、日付(数値)は右寄せ、文字列は左寄せ
  2. ISNUMBER で確かめる:=ISNUMBER(A2) が TRUE なら日付、FALSE なら文字列
  3. 表示形式を「標準」にしてみる:5桁の数字に変われば日付、見た目が変わらなければ文字列

形ごとの直し方

元の形直し方
2026.8.13(ピリオド区切り)Ctrl+H で . を / に置換する
20260813(8桁の数値)区切り位置、または =DATE(LEFT(A2,4), MID(A2,5,2), RIGHT(A2,2))
2026/8/13(全角)=ASC(A2) で半角に変換してから日付にする
前後に空白がある=TRIM(A2) で除去する
セルの表示形式が「文字列」表示形式を「標準」に戻してから入力し直す

区切り位置でまとめて変換する

列ごと一気に直せる方法です。数式を足さずに済むので、取り込みデータの下処理に向いています。

  1. 対象の列を選択する
  2. 「データ」タブ →「区切り位置」→「次へ」→「次へ」
  3. 「列のデータ形式」で「日付」を選び、右の並びを YMD にする
  4. 「完了」を押す

YMD は「年・月・日の順」という意味です。元データが 13/08/2026 のように日から始まるなら DMY を選びます。

DATEVALUE関数を使う

1件ずつ数式で変換するならDATEVALUE関数です。

=DATEVALUE(A2)

⚠️ 結果はシリアル値の数字で返ります。表示形式を日付に変えて初めて日付らしく見えます。「変換したのに5桁の数字が出た」というときは、失敗ではなく書式の設定漏れです。

エクセルの日付の扱い方|シリアル値・入力・表示形式・文字列の変換の解説図3

うまくいかないときの原因と直し方

症状主な原因直し方
5桁の数字が表示される表示形式が「標準」のまま表示形式を「短い日付形式」にする
#### と表示される列幅が足りない列の境界をダブルクリックして幅を広げる
入力したのに日付にならないセルの表示形式が「文字列」「標準」に戻し、セルを削除して入力し直す
並べ替えの順序がおかしい中身が文字列のまま上章の手順で日付に変換する
引き算の結果が日付で出る結果セルに日付書式が残っている結果セルの表示形式を「標準」にする
貼り付けたら日付が数字になった値だけを貼り付けた「書式設定」も含めて貼り付けるか、後から書式を設定する
すべての日付が約4年ずれるブックが「1904年から計算する」設定ファイル → オプション → 詳細設定 で確認する
空欄なのに1900/1/0 と出る空白セルを日付書式で参照している=IF(A2="", "", A2) で空欄を素通しする

1904年オプションに注意

古いMacで作られたブックには、1904年を起点にする設定が残っていることがあります。この設定のブックと通常のブックの間で日付をコピーすると、1,462日(およそ4年)ずれます。

設定はブック単位です。日付だけが揃って大きくずれているときは、ここを疑ってください。

エクセルの日付の扱い方|シリアル値・入力・表示形式・文字列の変換の解説図4

日付まわりの関数の使い分け

関数できること使う場面
TODAY今日の日付を返す開くたびに更新したい
NOW現在の日時を返す時刻まで必要
DATE年・月・日から日付を作るバラバラの列を1つの日付にまとめる
DATEVALUE文字列の日付をシリアル値に変える取り込みデータの変換
YEAR/MONTH/DAY日付から年・月・日を取り出す月別集計のキーを作る
TEXT日付を指定した形の文字列にする表記を固定した文字として出したい

TODAY関数とNOW関数は、開き直すたびに値が変わる関数です。「登録日」のように後から変わってはいけない値には使わず、Ctrl+; で固定値として入力してください。


よくある質問

Q1:日付を入力すると勝手に「2026/8/13」の形に変わります。元の書き方のままにできますか?

表示形式を変えれば見た目は近づけられます。8-13 と入力しても内部では同じシリアル値なので、表示形式で m"月"d"日" などを指定してください。入力した文字をそのまま残す(表示形式を「文字列」にする)と、その列は日付として計算できなくなります。

Q2:日付から曜日を出すことはできますか?

できます。表示形式のユーザー定義に aaa を足すと「木」、aaaa で「木曜日」と表示されます。値は日付のままなので計算にも使えます。関数で文字として取り出す方法もあります。

Q3:セルに 2026/8/13 と入っているのに、フィルターの日付グループが出ません。

そのセルが文字列だからです。フィルターの「年 → 月 → 日」の階層表示は、本物の日付にだけ現れます。左寄せになっていないかを確認し、区切り位置などで変換してください。

Q4:31日を超える日付を入力するとどうなりますか?

2026/1/32 のような存在しない日付は、日付として認識されず文字列になります。一方で数式のDATE関数は繰り上げを行い、=DATE(2026,1,32) は 2026年2月1日を返します。月に 13 を指定した場合も翌年1月として計算されます。

Q5:日付を数値に戻したい(シリアル値を見たい)のですが。

セルを選んで表示形式を「標準」にすれば、シリアル値が表示されます。別のセルに取り出すなら =A2*1 や =INT(A2) でも数値として得られます。時刻を含むセルは小数が付くため、日付だけが必要なら INT で整数化してください。


まとめ

エクセルの日付の要点
  • 日付の中身は1900/1/1 を1とした連番。時刻は小数(0.5=12:00)
  • 入力は / か -。ピリオド区切りは文字列になる
  • 表示形式は見た目だけを変える。値を文字にするならTEXT関数
  • 計算できない日付は左寄せ・ISNUMBERで見分け、区切り位置で一括変換
  • 5桁の数字は失敗ではなく書式の設定漏れ。####は列幅不足

※メニューの名称や操作手順はExcelのバージョンにより異なる場合があります。本記事はデスクトップ版Excel(Windows)での操作を前提に整理しています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

はじめまして、白石です。製造業の生産管理で15年、毎日の実績集計と帳票づくりをExcelでやってきました。マクロを組もうとして早々に挫折し、そこからは「関数と表の機能だけでどこまでやれるか」でしのいできた口です。部門では「この集計どうやるの」と聞かれる係になり、聞かれた内容を手元にメモし続けました。そのメモがいつのまにか、関数名ではなくやりたいことから引く形になっていて、それがこのサイトのもとになっています。Excelは同じことをやるのに何通りもやり方があって、しかもバージョンによって使える関数が違います。ここでは実際に動かして確かめた式だけを載せ、つまずきやすいところと使えないバージョンを先に書くようにしています。

目次