Excelで日付が数字(シリアル値)になる原因と直し方|貼り付け・CSVインポート後に5桁の数字に化けたときの対処

スポンサーリンク

「Excelに貼り付けたら、日付が『45000』みたいな5桁の数字になってる…」「取引先からもらったCSVを開いたら、日付の列が全部数字に化けた」。そんな状況で、このページを開いていませんか?

結論からお伝えします。ファイルは壊れていませんし、データも消えていません。Excelが日付を数字として表示しているだけなので、原因を切り分ければ数十秒で元に戻せます。

この記事では、Excelで日付が数字(シリアル値)になる原因を「数式バー」と「書式設定」の2軸で4パターンに整理します。それぞれの直し方を順に解説するので、状況に合わせた最短ルートで解決できます。CSVインポート後・貼り付け後・値貼り付け後の対処を網羅しました。後半では、時刻が小数になる仕組みや、日付が4年ずれる現象、和暦・曜日での表示方法も取り上げます。

01 data before after
  1. シリアル値とは?Excelで日付が数字に見える仕組み
    1. Excelは日付を「1900/1/1からの通算日数」で管理している
    2. 数字に見えるのは「表示形式が数値になっているだけ」のことが多い
  2. 原因切り分け早見表|数式バー × 書式設定で4パターン
  3. パターンA|書式設定が数値・標準になっているだけ(最頻出)
    1. 見分け方
    2. 直し方(セルの書式設定で日付に変更)
    3. 列全体を一気に直すコツ
  4. パターンB|CSVインポート後に文字列として読み込まれた
    1. 見分け方
    2. 直し方1: 区切り位置で日付列を一気に再変換
    3. 直し方2: DATEVALUE関数で別セルに変換
    4. 直し方3: Power Queryで型を明示してインポート(推奨)
  5. パターンC|値貼り付けでシリアル値だけが残った
    1. 見分け方
    2. 直し方
  6. パターンD|文字列として打ち込まれた日付(”2026/5/10″形式)
    1. 見分け方
    2. 直し方: DATEVALUE関数または区切り位置で変換
  7. 時刻が小数(0.5など)になるのはなぜ?日付+時刻の仕組み
    1. 時刻は1日を「1」とした小数で管理される
    2. 直し方は書式を「時刻」または「日付」に変える
  8. 逆に「日付をわざと数字(シリアル値)で見たい」ときの方法
    1. 方法1: 書式を「標準」または「数値」に変える
    2. 方法2: N関数や四則演算で数値として取り出す
    3. 経過日数の計算はシリアル値だからこそ簡単
  9. 日付が「4年ずれる」ときは1904年日付システムを疑う
    1. Excelには2つの起点(日付システム)がある
    2. 確認と直し方
  10. 和暦・曜日・任意表記で見せる書式設定
    1. ユーザー定義書式でカスタマイズする
    2. TEXT関数なら別セルに文字列で出せる
  11. CSVインポート3手段の挙動比較|どれを使うべき?
  12. DATEVALUE / VALUE / TEXT 使い分け早見表
  13. シリアル値 → 日付の対応表(よくある5桁数字)
  14. よくあるトラブルQ&A
    1. Q1. SUMIFSの日付条件が効かない
    2. Q2. フィルタの昇順ソートが日付順にならない
    3. Q3. 計算は正しく動くのに、表示だけ数字のまま直らない
    4. Q4. ピボットテーブルで日付がグループ化できない
    5. Q5. 日付を貼り付けたら別の日付に変わった
    6. Q6. Mac版・Web版Excelでも同じ手順?
    7. Q7. Googleスプレッドシートでも同じ仕組み?
    8. Q8. 日付が数字になるのを未然に防ぎたい
    9. Q9. 似たような「数字の見え方」トラブルが他にもある?
  15. まとめ

シリアル値とは?Excelで日付が数字に見える仕組み

まず、根っこの仕組みを1分だけ確認しましょう。ここを押さえると、後のパターン分けがぐっと理解しやすくなります。

Excelは日付を「1900/1/1からの通算日数」で管理している

Excelは内部的に、日付をシリアル値として記録しています。シリアル値とは、1900年1月1日を「1」とする通算日数の連番です。たとえば 2023/1/1449272023/3/1545000 に対応します。時刻は小数部で表現され、12:00 は 0.5、6:00 は 0.25 です。

なお、Excelには「1900年2月29日を有効な日付として扱う」という独特の仕様があります。古い表計算ソフトとの互換性のために意図的に維持されているものです。1900年3月以降の日付を扱う分には影響しないので、気にしなくて大丈夫です。

数字に見えるのは「表示形式が数値になっているだけ」のことが多い

セルに 45000 と表示されていても、Excel内部では「2023/3/15」として認識されているケースがほとんどです。表示形式(書式設定)が「数値」や「標準」になっていると、シリアル値が数字のまま表示されます。

逆に、見た目が 2026/05/10 のように日付らしく見えても、内部では「ただの文字列」として扱われていることがあります。この違いを最初に切り分けないと、間違った直し方をしてしまいがちです。

原因切り分け早見表|数式バー × 書式設定で4パターン

直し方に進む前に、いま自分のExcelがどのパターンに当てはまるかを確認しましょう。該当セルを1つクリックして、数式バーの表示と書式設定をチェックするだけです。

パターン数式バーの表示セルの書式設定セルの寄せ状態
A45000 などの数値数値・標準右寄せシリアル値が数値表示されている(最頻出)
B2026/5/10 など日付風の文字列標準・文字列左寄せCSVや手入力で文字列扱いされている
C45000 などの数値標準右寄せ値貼り付けでシリアル値だけ残った
D'2026/5/10(先頭にアポストロフィ)文字列左寄せアポストロフィ付きの文字列日付

見分ける一番のコツは、右寄せか左寄せかです。Excelは既定で、数値(シリアル値)は右寄せ、文字列は左寄せで表示します。これだけで、パターンA/CかパターンB/Dかをほぼ判別できます。

02 data pattern comparison

パターンA|書式設定が数値・標準になっているだけ(最頻出)

実務で出会う「日付が数字になる」現象の8割以上は、このパターンです。中身は正しいシリアル値なので、表示形式を変えるだけで解決します。

見分け方

  • セルをクリックすると、数式バーに 45000 などの数字が表示される
  • セルは右寄せになっている
  • =A1+1 のような計算が正しく動く(足し算で次の日が出る)

直し方(セルの書式設定で日付に変更)

  1. 該当セル(または列全体)を選択する
  2. Ctrl + 1 を押して「セルの書式設定」を開く
  3. 「表示形式」タブ → 「日付」を選び、好みの形式(例: 2012/3/14)をクリック
  4. OK を押すと、シリアル値が日付として表示される

ホームタブの「数値の書式」プルダウンから「短い日付形式」を選ぶ方法でも同じ結果になります。

03 format format cells panel

列全体を一気に直すコツ

列番号(A、Bなど)をクリックして列全体を選択してから書式変更すると、後から追加されるデータにも書式が適用されます。ヘッダーごと選択しても問題ありません。ヘッダーの文字列は書式変更の影響を受けないためです。

パターンB|CSVインポート後に文字列として読み込まれた

取引先から受け取ったCSVファイルをダブルクリックで開いたとき、日付列が左寄せになっていたら、このパターンです。表示は 2026/5/10 のように日付っぽくても、Excelの中身は単なる文字列です。SUMIFSやフィルタの日付条件が効かない場合、このパターンを疑いましょう。

見分け方

  • セルは左寄せ
  • 数式バーに 2026/5/10 のような文字が表示される
  • =A1+1 を入れると #VALUE! エラーになる
  • =ISTEXT(A1) の結果が TRUE になる

直し方1: 区切り位置で日付列を一気に再変換

短い手順で確実に直せる方法です。

  1. 該当列を選択する
  2. データタブ → 「区切り位置」
  3. 「カンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選び「次へ」
  4. 区切り文字はチェックを外したまま「次へ」
  5. 「列のデータ形式」で 日付 を選び、形式を「YMD」など実際のCSVに合わせて指定
  6. 「完了」をクリック

これで列全体が一気にシリアル値に変換されます。

直し方2: DATEVALUE関数で別セルに変換

別の列に変換結果を出したい場合は、DATEVALUE関数が便利です。DATEVALUE関数とは、文字列の日付をシリアル値に変換するExcel関数です。

=DATEVALUE(A2)

A2"2026/5/10" という文字列が入っていれば、結果は 46152(シリアル値)になります。結果セルの書式を「日付」にすれば、見た目も日付に整います。

DATEVALUEの詳しい使い方は、ExcelのDATEVALUE関数の使い方で解説しています。

直し方3: Power Queryで型を明示してインポート(推奨)

繰り返し同じ形式のCSVを扱うなら、Power Queryが最もおすすめです。Power Queryとは、Excelのデータ取得・変換機能のことです。一度設定すれば、次回以降は更新ボタン1つで型を保ったまま読み込めます。

  1. データタブ → 「データの取得」→「ファイルから」→「テキストまたはCSVから」
  2. CSVファイルを選択
  3. プレビュー画面で「データの変換」をクリック
  4. 日付列のヘッダー左にあるデータ型アイコンをクリック → 日付 を選択
  5. 「閉じて読み込む」

パターンC|値貼り付けでシリアル値だけが残った

別ブックから「値のみ貼り付け」したときに起きやすいパターンです。元ブックでは日付として表示されていたのに、貼り付け先では 45000 のような数字に変わった——というケースです。

見分け方

  • 数式バーには 45000 などの数値(パターンAと同じ)
  • セルは右寄せ
  • 元ブックの書式設定が引き継がれていない

直し方

中身は正しいシリアル値なので、パターンAと同じく書式設定を「日付」に変更すれば直ります

次回から書式ごとコピーしたい場合は、コピー後の貼り付けで Ctrl + Alt + V を押します。「値と数値の書式」を選ぶと、シリアル値と日付書式の両方が貼り付けられます。または「値」貼り付けの後で、書式だけを別途コピーする方法でもOKです。

パターンD|文字列として打ち込まれた日付(”2026/5/10″形式)

セルに直接入力したとき、書式設定がたまたま「文字列」になっていることがあります。または先頭にアポストロフィ(')を付けて入力した場合、Excelは日付として認識しません。

見分け方

  • セルは左寄せ
  • 数式バーで先頭に ' が表示されることがある
  • =ISTEXT(A1)TRUE=ISNUMBER(A1)FALSE
  • SUMIFSの日付条件で集計が効かない、>= 比較がうまくいかない

直し方: DATEVALUE関数または区切り位置で変換

数件なら再入力が一番早いです。複数件ある場合は以下の方法で一括変換しましょう。

DATEVALUE関数を使う場合:

=DATEVALUE(A2)

結果が出たら、コピー → 元の列に「値貼り付け」→ 書式を「日付」に変更します。

区切り位置で一発変換する場合:

パターンBの「直し方1」と同じ手順で、列のデータ形式を「日付」に指定すると、文字列日付がシリアル値に変換されます。関数を使わずに直したいときに便利な方法です。

なお、"123" のように数字に見える文字列を数値化したいときは、ExcelのVALUE関数の使い方が活躍します。日付には DATEVALUE、数値には VALUE と覚えておきましょう。

時刻が小数(0.5など)になるのはなぜ?日付+時刻の仕組み

「日付ではなく時刻のセルが 0.50.75 のような小数になった」という相談もよくあります。これもシリアル値の仕組みで説明できます。

時刻は1日を「1」とした小数で管理される

Excelは1日を 1 として扱い、時刻はその小数部で表現します。24時間が 1.0 なので、計算はとてもシンプルです。

時刻シリアル値(小数部)
0:000
6:000.25
12:000.5
18:000.75

つまり、時刻のセルが 0.5 と表示されていたら、中身は「12:00」です。日付と時刻が一緒に入っている場合は、整数部が日付・小数部が時刻になります。たとえば 2023/3/15 12:00 のシリアル値は 45000.5 です。

直し方は書式を「時刻」または「日付」に変える

中身は正しい時刻なので、表示形式を変えるだけで直ります。

  1. 該当セルを選択する
  2. Ctrl + 1 で「セルの書式設定」を開く
  3. 「表示形式」タブ → 「時刻」を選び、13:30 など好みの形式をクリック
  4. OK を押すと、小数が時刻として表示される

文字列として時刻を表示したいときは、TEXT関数も使えます。=TEXT(0.5,"h:mm") の結果は "12:00" です。日付と時刻を両方見せたいときは、=TEXT(45000.5,"yyyy/mm/dd h:mm") のように書式コードを組み合わせましょう。

逆に「日付をわざと数字(シリアル値)で見たい」ときの方法

ここまでは「数字を日付に戻す」話でした。一方で、「日付の中身であるシリアル値そのものを確認したい」「経過日数を数値で扱いたい」という逆方向のニーズもあります。

方法1: 書式を「標準」または「数値」に変える

一時的にシリアル値を確認したいだけなら、書式変更が一番手軽です。

  1. 該当セルを選択する
  2. Ctrl + 1 で「セルの書式設定」を開く
  3. 「表示形式」タブ → 「標準」または「数値」を選ぶ
  4. OK を押すと、日付がシリアル値の数字で表示される

確認が終わったら、同じ手順で「日付」に戻せば元通りです。中身のシリアル値は変わりません。

方法2: N関数や四則演算で数値として取り出す

別のセルにシリアル値を取り出したいときは、N関数が便利です。N関数は、日付や数値をそのまま数値として返します。

=N(A1)

A12023/3/15 が入っていれば、結果は 45000 です。=A1*1=A1+0 のように演算しても、表示形式が外れて数値が得られます。

経過日数の計算はシリアル値だからこそ簡単

日付が連番のシリアル値で管理されているおかげで、日付同士の引き算で日数がそのまま求まります。=B1-A1 と入れれば、2つの日付の間の日数が出ます。営業日や年齢など、より実務的な日付計算はExcelの日付計算を完全攻略で詳しく解説しています。

日付が「4年ずれる」ときは1904年日付システムを疑う

「貼り付けたら日付が約4年もずれた」という珍しいトラブルがあります。これは多くの場合、1904年日付システムが原因です。

Excelには2つの起点(日付システム)がある

Excelの日付システムには2種類あります。起点が1900/1/1の「1900年日付システム」と、起点が1904/1/1の「1904年日付システム」です。Windows版の既定は1900年、古いMac版の既定は1904年でした。

1904系で作られたブックを1900系で開くと、同じシリアル値でも指す日付がずれます。ずれ幅は約4年(1462日)です。Mac由来のファイルを統合したときに起きやすいトラブルです。

確認と直し方

まずは設定を確認します。

  1. [ファイル] → [オプション] → [詳細設定]
  2. 「計算時の設定」内の「1904年から計算する」チェックボックスを確認

このチェックを切り替えると、すでに入っているデータの日付がすべて4年ずれます。データが入った後の安易な変更は避けましょう。複数ブックを統合してずれが出た場合は、ずれている側の日付に +1462 または -1462 で調整して合わせます。

和暦・曜日・任意表記で見せる書式設定

日付として正しく認識できたら、見せ方も自由に整えられます。和暦や曜日を表示したいときは、ユーザー定義書式かTEXT関数を使います。

ユーザー定義書式でカスタマイズする

  1. 該当セルを選択し Ctrl + 1 を開く
  2. 「表示形式」タブ → 「ユーザー定義」を選ぶ
  3. 「種類」欄に書式コードを入力する

主な書式コードは次のとおりです。

書式コード表示例(2026/5/10 日曜の場合)内容
yyyy/mm/dd2026/05/10西暦・ゼロ埋め
ggge"年"m"月"d"日"令和8年5月10日和暦(元号フル)
aaaa日曜日曜日(フル)
aaa曜日(略)
dddSun英語曜日(略)

TEXT関数なら別セルに文字列で出せる

同じ書式コードはTEXT関数でも使えます。たとえば =TEXT(46152,"ggge年m月d日(aaa)") の結果は 令和8年5月10日(日) です。注意点として、和暦や曜日の表示は「シリアル値として正しく認識された日付」が前提です。文字列日付のままでは効かないので、まずパターンB・Dの直し方で日付に変換しておきましょう。

CSVインポート3手段の挙動比較|どれを使うべき?

「そもそもCSVを開く時点で日付が壊れないようにしたい」という方のために、3つのインポート方法の挙動を比較します。

インポート方法日付の扱いおすすめ度用途
ダブルクリックで開く地域設定と一致すれば日付認識、ズレると文字列扱い中身を一瞥したいとき
データ → テキストまたはCSVから(Power Query)列ごとに型を明示できる。再読み込みも可能業務で繰り返し使うCSV
データ → 区切り位置(既存データの再変換)列単位で型を後付けで指定できる既に読み込み済みのデータを直す

CSVを業務で繰り返し扱うなら、Power Queryが圧倒的におすすめです。一度型を明示しておけば、別の月のCSVに差し替えても更新ボタン1つで日付が崩れない状態で取り込めます。

ダブルクリックで開く方法は、ロケール(地域設定)と日付フォーマットが一致していれば問題なく動きます。ただし海外発のCSV(05/10/2026 のような MDY 形式など)では文字列として読み込まれることが多いです。「とりあえず確認するだけ」の用途に限り、業務処理にはPower Queryを使うことをおすすめします。

DATEVALUE / VALUE / TEXT 使い分け早見表

日付・数値・文字列の変換まわりで登場する3つの関数を、目的別に整理しました。

目的使う関数結果
文字列の日付 → シリアル値DATEVALUE=DATEVALUE("2026/5/10")46152
文字列の数字 → 数値VALUE=VALUE("123")123
シリアル値・数値 → 任意の文字列TEXT=TEXT(45000,"yyyy/mm/dd")"2023/03/15"

ざっくり覚えるなら、

  • 数字に化けた日付を直したい → DATEVALUE
  • 数字に見える文字列を計算に使いたい → VALUE
  • シリアル値を任意の表記で見せたい → TEXT

で、ほぼ困りません。詳しい引数や応用例は、それぞれDATEVALUE関数VALUE関数TEXT関数で深掘りしています。日付の組み立てにはDATE関数も便利です。

シリアル値 → 日付の対応表(よくある5桁数字)

「45000って何月何日?」という検索で来た方のための早見表です。手元のExcelで =TEXT(数値, "yyyy/mm/dd") を入れれば自分でも確認できます。

シリアル値対応する日付
416392014/01/01
419142014/10/03
449272023/01/01
450002023/03/15
452922024/01/01
456572024/12/31
456582025/01/01
460232026/01/01
461522026/05/10

「年が違うけれど5桁の数字を見つけた」という場合も、=TEXT(その数値, "yyyy/mm/dd") を空きセルに入力すれば、対応する日付がすぐに分かります。

よくあるトラブルQ&A

Q1. SUMIFSの日付条件が効かない

文字列日付(パターンB・D)が混ざっていると、>=2026/5/1 のような条件が効きません。DATEVALUE関数か区切り位置でシリアル値に統一してから集計しましょう。

Q2. フィルタの昇順ソートが日付順にならない

文字列ソートと数値ソートが混在しているサインです。1月、10月、11月、2月…のように文字列順で並ぶ場合は、列全体を日付型に統一することで解決します。

Q3. 計算は正しく動くのに、表示だけ数字のまま直らない

これは典型的なパターンAです。中身はシリアル値として正しく動いているので、書式設定を「日付」に変更するだけで直ります。Ctrl + 1 から1分で解決できます。

Q4. ピボットテーブルで日付がグループ化できない

「選択範囲をグループ化できません」と出る場合は、対象列に文字列日付や空白が混ざっているのが主因です。列を日付型に統一してから、ピボットを更新してみてください。日付として正しく認識されれば、年・月・日でのグループ化が使えるようになります。

Q5. 日付を貼り付けたら別の日付に変わった

約4年ずれているなら、1904年日付システムが原因の可能性が高いです。本記事の「日付が『4年ずれる』ときは1904年日付システムを疑う」を確認してください。数日程度のずれなら、貼り付け方法(値貼り付けなど)や時刻の小数部が影響していることもあります。

Q6. Mac版・Web版Excelでも同じ手順?

基本的な仕組みは同じですが、メニュー名や配置が一部異なります。本記事はWindows版を基準に解説しています。お使いの環境で似たメニューを探してみてください。Power Queryの一部機能はWeb版で制限されることもあるので、業務処理はデスクトップ版がおすすめです。

Q7. Googleスプレッドシートでも同じ仕組み?

スプレッドシートも日付をシリアル値で管理しますが、起点が1899/12/30とExcelよりわずかに異なります。そのため生のシリアル値を両者でコピーすると日付がずれることがあります。アプリ間でやり取りするときは、生の数値ではなく日付値のままコピーするのが安全です。スプレッドシート側の日付計算はスプレッドシートで日付計算をする方法を参考にどうぞ。

Q8. 日付が数字になるのを未然に防ぎたい

次の3つを習慣にすると、ほとんどの事故を防げます。①CSVを扱うときはPower Queryで型を明示する、②貼り付け時は「すべて貼り付け」を使う、③入力前に列の書式を「日付」にしておく。日付として認識された後の計算についてはExcelの日付計算を完全攻略も参考にどうぞ。

Q9. 似たような「数字の見え方」トラブルが他にもある?

日付以外でも表示まわりのトラブルはよく起きます。電話番号や郵便番号の先頭の0が消える現象はExcelで先頭の0が消える原因と解決法で解説しています。セルに「####」が出る現象はExcelのセルに「####」が表示される原因と直し方が参考になります。あわせて押さえておくと、表示まわりで慌てずに済みます。

まとめ

Excelで日付が数字(シリアル値)に化けたときの対処をおさらいします。

  • まずは「数式バー × 書式設定」で4パターンに切り分ける:右寄せの数値ならパターンA/C、左寄せの文字列ならパターンB/D
  • パターンA・C(右寄せ・数値):書式設定を「日付」に変えるだけで解決
  • パターンB(CSVインポート起因の左寄せ文字列):区切り位置・DATEVALUE・Power Queryのいずれかで変換
  • パターンD(手入力の文字列日付):DATEVALUE関数または区切り位置で一括変換
  • 時刻が小数になる場合:1日を1とした小数部なので、書式を「時刻」に変えれば直る
  • 4年ずれる場合:1904年日付システムを確認
  • 未然防止:CSVはPower Queryで型を明示、貼り付けは「すべて」を使う

日付の扱いを一度きちんと整えておくと、SUMIFSや並べ替え、ピボットテーブルがスムーズに動くようになります。今回の切り分け表を手元に置きつつ、状況に合わせた直し方を試してみてください。

関連記事:

タイトルとURLをコピーしました