Excelの日付が数字になる・計算できない原因と直し方

記事
IT・テクノロジー
セルに「2026/8/25」と入力したはずなのに、翌日開いたら「46620」という数字になっている。
逆に、日付が入っているように見えるセルで =B2-A2 をやると #VALUE! が出る。

どちらも原因は同じところにあります。Excelの日付は、内部では数字として管理されているからです。
仕組みを説明してから、症状ごとの直し方を見ていきます。

■ Excelの日付の正体はシリアル値

Excelは日付を「1900年1月1日を1とした、通し番号」として保持しています。
2026年8月25日なら、内部的には46620という数字です。
これに「日付」という表示形式を被せることで、画面上は「2026/8/25」と見えています。

つまり、同じ46620という中身に対して、表示形式が「標準」になれば数字が見え、
「日付」になれば日付として見えます。中身は変わっていません。表示が変わっただけです。

なお、Googleスプレッドシートも仕組みは同じで、基準日が1899年12月30日という違いはあるものの、
実際に入力した日付が指す数字はExcelとほぼ同じになります。
Excelファイルとスプレッドシートを行き来してもズレを心配する必要はほとんどありません。
問題になるのは基準日の違いではなく、これから説明する2つの症状の方です。

これを踏まえると、症状は大きく2パターンに分かれます。

■ 症状1:日付を入れたのに数字になる

これは、中身は正しく日付として認識されているのに、表示形式だけ日付でなくなっている状態です。

・他のセルからコピーしたときに、コピー元の書式(標準)が上書きされた
・CSVを読み込んだときに、Excelが表示形式を「標準」で取り込んだ
・セルの書式設定を「クリア」した

直し方は簡単で、該当セルを選択して Ctrl+1 でセルの書式設定を開き、
分類を「日付」に変更するだけです。数式で表示を整えたい場合は次のようにします。

=TEXT(A2,"yyyy/mm/dd")

これはA2の中身(シリアル値)はそのままに、文字列として書式を適用した結果を返します。
計算には使えなくなる点だけ注意してください。TEXTの結果は文字列です。

なお、そのセルが本当にシリアル値かどうかを確かめたいときは、次の数式で判定できます。

=ISNUMBER(A2)

TRUEが返れば数値(シリアル値)、FALSEが返れば文字列です。
書式設定を触る前にこの数式で確認しておくと、症状1と症状2の切り分けを毎回感覚で
やらずに済みます。

■ 症状2:日付のように見えるのに計算できない

こちらは逆で、セルの中身が日付(シリアル値)ではなく、ただの文字列になっている状態です。
見た目は「2026/8/25」でも、左揃えで表示されていたら文字列です。

日付は数値なので右揃え、文字列は左揃え。ここでも見分け方は同じです。

文字列の日付になる典型的な原因は次の3つです。

1. 他システムから書き出したCSVを、そのまま取り込んだ
会計ソフトや業務システムの出力で日付が文字列として書き出されていることがあります。

2. 先頭にアポストロフィが付いている
「'2026/8/25」のように入力・コピーされると、Excelはそれを文字列として扱います。

3. 区切りが全角のスラッシュ、または「年月日」の全角表記
「2026/8/25」や「2026年8月25日」は、Excelの既定設定では
日付として自動認識されないことがあります。

これに加えて、「令和8年8月25日」のような和暦表記が混ざっているケースもあります。
Excelは和暦の入力に対応していますが、他システムから貼り付けた和暦は文字列として
そのまま入ってくることが多く、見た目が日付らしいだけに気づきにくい原因の1つです。

直すには、次の数式で文字列を日付(シリアル値)に変換します。

=DATEVALUE(A2)

ただし全角文字が混ざっていると DATEVALUE がエラーになることがあります。
その場合は先に半角に変換してから渡してください。

=DATEVALUE(ASC(A2))

もう1つ、8桁の数字(20260825のような形)で日付が入っている場合は、
DATEVALUEでは変換できません。年・月・日を切り出して組み立てます。

=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))

変換した列は表示形式が「標準」になっていることが多いので、
仕上げに書式設定で「日付」に変更するところまでがセットです。

■ 一括で直そうとして起きる事故

範囲を選択して書式設定を「日付」に変えれば直る、とは限りません。

書式設定はあくまで表示の切り替えです。中身が本当にシリアル値なら日付として表示されますが、
中身が文字列のままなら、書式を日付に変えても見た目は変わりません。
「日付にしたのに数字のまま/文字列のまま」というときは、まず右揃えか左揃えかを確認し、
症状1と症状2のどちらなのかを切り分けてから対処してください。

たとえば、A列全体を選択して書式設定を「日付」にまとめて適用したのに、
半分のセルだけ数字のまま残ることがあります。これは、その半分がもともと文字列で
入っていたことを示しています。書式が効かなかったのではなく、そもそも対象が違います。

■ やってはいけないこと

DATEVALUEやVALUEの結果を、そのまま元のセルに手で貼り直すこと。

変換後のシリアル値をコピーして元のセルに「値のみ貼り付け」する場合、
元データの文字列が完全に消えます。変換に失敗していた行があっても後から気づけません。
変換列は別列に残したまま、突き合わせが済むまで元データを消さないでください。

■ それでも解決しないとき

・DATEVALUEをかけても #VALUE! のままで、原因の文字が特定できない
・数百行あり、正しく変換できた行とできていない行が混在している
・和暦や独自の日付表記が混ざっていて、通常の関数では対応できない

このあたりまで来たら、データを見ながら1本ずつ直した方が早いです。

私はExcel・スプレッドシートのデータ整形と数式の修正を承っています。
どの行がどう文字列化していたかを突き合わせた形でお返ししています。

――
この記事の執筆には生成AIを活用しています。内容は実際の挙動を確認して書いています。
サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す