エクセルで日付を引き算したら「1900/1/7」になった。原因と直し方

A君の成長

おはよう、後輩A君。

エクセルで、日にちの差を出そうとしたことはあるかな。「申込日から発送日まで何日かかったか」みたいな計算だよ。

やり方は簡単だよね。引き算するだけだよ。

=A1-A2

ところが、こうなることがあるんだ。

1900/1/7

7日と出てほしいのに、1900年の1月7日だよ。パソコンが壊れたのかと思うよね。

でも大丈夫だよ。計算は合っているんだ。今日はこの話をするね。

1. 答えは合っているんだよ

まず安心してほしいんだ。中身は7なんだよ。

おかしいのは見せ方だけなんだ。「7」という数字を、エクセルが日付として読み上げているだけなんだよね。

実際に私も試してみたよ。同じ引き算を2つのセルに入れて、片方だけ書式を変えたんだ。

書式が「日付」のセル → 1900/1/7
書式が「標準」のセル → 7

数式はどちらもまったく同じだよ。違うのは書式だけなんだ。

だから直し方も、書式を変えるだけなんだよね。

2. 直し方は10秒だよ

結果が出ているセルを選んで、こうするんだ。

① そのセルをクリック
② 上のリボンの「ホーム」タブを開く
③ 真ん中あたりにある「日付」と表示されている欄を探す
④ そこを「標準」に変える

これで7と表示されるよ。数式は触らなくていいんだ。

⚠️ 何個もまとめて直したいときは、その列ごと選んでから「標準」にすると一度で済むよ。

3. なぜ日付になってしまうのか

理由を知っておくと、次から驚かなくて済むと思うんだ。

エクセルは親切な推測をするんだよね。

「日付から日付を引いているな。
じゃあ、答えも日付だろう

こう考えて、勝手に日付の書式を付けてくれるんだ。悪気はないんだよ。

「1-2」が日付になる話と同じで、エクセルは黙って種類を決めるんだよね。今回もその癖が出ただけなんだ。

4. なぜ「1900年」なのか

ここは知らなくても直せるんだけど、知るとすっきりすると思うから書くね。

エクセルは日付を数字で持っているんだ。こういう決まりなんだよ。

1900年1月1日 = 1
1900年1月2日 = 2
(中略)
2026年9月1日 = 46266

つまり日付は、1900年1月1日から数えて何日目かという数字なんだよね。画面には「2026/9/1」と見えていても、中身はただの数字なんだ。

だから引き算ができるんだよ。46266 – 46259 = 7、という具合だね。

そして「7」を日付として読むと、1900年1月1日から7日目=1900年1月7日になるんだ。

――エクセルは何も間違えていないんだよね。ちゃんと計算して、ちゃんと読み上げただけなんだ。

5. もうひとつのパターン:7.375

実はもうひとつ、驚く表示があるんだ。小数だよ。

7.375

これが出たら、原因はひとつだよ。日付に時刻が入っているんだ。

これも試してみたよ。

「2026/9/1 18:00」から「2026/8/25 9:00」を引く

7.375

7日と9時間なんだよね。9時間は1日の0.375にあたるから、この数字になるんだ。

システムから出力したデータだと、見た目は日付だけなのに、裏に時刻が入っていることがあるんだよ。列の幅が狭いと時刻が隠れて見えないんだよね。

直し方

=INT(A1-A2)

INTは小数を切り捨てる命令だよ。これで7になるんだ。

⚠️ 切り捨てなので、7.9でも7になるよ。「ほぼ8日」を8にしたいなら、INTではなくROUND(四捨五入)を使うんだ。どちらが正しいかは、数える目的で決まるんだよね。

6. 意外と平気だったこと

ここで、私が試して意外だったことも書いておくね。

前回の記事で「見た目が同じでも中身が違うことがある」と書いたよね。だから今回も、書き方が違うと引き算できないだろうと思っていたんだ。

ところが、こうだったんだよ。

「2026年9月1日」    → 引き算できた ✅
「2026/9/1」(全角)→ 引き算できた ✅

どちらもエクセルはちゃんと日付として認識していたんだ。日本語の書き方も、全角の数字も大丈夫だったんだよね。

⚠️ ただし油断はしないでほしいんだ。認識されたかどうかは、見れば分かるよ。

セルの中で右寄せ → 日付として認識されている ✅
セルの中で左寄せ → ただの文字。計算できない ❌

何もしていないのに右に寄っていたら、それは日付なんだ。左に寄っていたら文字なんだよね。1秒で見分けられるんだ。

7. ⚠️ 月数の引き算には、落とし穴があるんだよ

最後にひとつだけ、気をつけてほしいことがあるんだ。

日数ではなく「何ヶ月か」を出したいとき、こういう関数があるんだよ。

=DATEDIF(開始日, 終了日, “m”)

これで月数が出るんだけど、実際に試したらこうだったんだ。

2026/1/31 から 2026/3/1 まで

1(1ヶ月)

1月31日から3月1日は、感覚だと「1ヶ月と1日」だよね。それが1と出るんだ。丸ごと切り捨てなんだよ。

似た話でもうひとつ。「1ヶ月後」を出すEDATEという関数もこうなるんだ。

2026年1月31日の1ヶ月後

2026年2月28日

2月に31日はないから、その月の最終日に丸められるんだよね。

⚠️ ここが大事なところだよ。日数の計算はきっちり合うけれど、月数の計算には「解釈」が入るんだ。

だから契約期間や支払日みたいにずれたら困るものは、月数で計算せずに日数で数えるか、目で確かめるほうが安全だと思うよ。

8. このシリーズは、今日で9本目だよ

エクセルの困りごとを並べておくね。

① 指数表示になる
② 先頭の0が消える
③ 「1-2」が日付になる
④ 並べ替えたら行がバラバラ
⑤ 数字なのに計算されない
⑥ エラー表示の意味
⑦ コピーしたらズレる
⑧ 見えない空白
⑨ 日付を引いたら1900年 ← 今日

今日の⑨は、シリーズの中でいちばん被害が小さいものなんだ。

だって答えは合っているんだからね。⑤や⑧みたいに、静かに間違った結果が出るわけじゃないんだ。驚くだけで済むんだよ。

――でもね。驚いて手が止まるのは、けっこうな損なんだよ。「壊れた」と思って作り直したり、人に聞いて回ったり。原因を知っていれば10秒で済む話なんだよね。

知らないと1時間、知っていれば10秒。エクセルの困りごとって、だいたいそういう形をしていると思うんだ。

結論:1900年が出たら、書式を「標準」にしようか

今日の話をまとめるとこうだよ。

① 「1900/1/7」が出ても計算は合っている
② 直すのは書式だけ。ホーム → 「標準」に変える
③ 原因はエクセルの親切な推測(日付ー日付=日付だろう、という)
④ 日付の正体は1900年1月1日から数えた日数
7.375のような小数が出たら、時刻が隠れている。INTで切る
⑥ 日本語表記も全角もちゃんと日付として扱われる
⑦ 見分けるのは右寄せか左寄せか
⑧ ⚠️ 月数の計算には解釈が入る。ずれたら困るものは日数で

今日いちばん伝えたかったのは、①なんだ。

変な表示が出たとき、いちばん怖いのは「全部やり直したほうが早いかも」と思ってしまうことなんだよね。でも今回は、壊れていないんだ。

後輩A君も、見たことのない表示が出たら――まず「中身も壊れているのか?」を確かめてみようか

見た目だけの問題なら、たいてい10秒で直るんだよ。

よくある質問

Q1. 書式を「標準」にしたのに、まだ日付のままです

そのセルに元から日付が入っていた可能性があるよ。書式を変えても表示が変わらないときは、いったんそのセルを削除して、数式を入れ直すと直ることが多いんだ。それでもダメなら、隣の空いているセルに同じ数式を入れてみようか。そこで7と出るなら、元のセルの設定が残っているだけだよ。

Q2. 「営業日」で数えたいのですが

土日を除いて数える関数があるよ。=NETWORKDAYS(開始日, 終了日) だね。祝日も除きたいときは、どこかに祝日の一覧を作って3つ目に指定するんだ。ただし祝日は自分で入力する必要があるよ。エクセルは日本の祝日を知らないんだ。

Q3. 引き算の結果が「-5」とマイナスになりました

引く順番が逆だよ。「新しい日付 - 古い日付」の順にすると、プラスになるんだ。並べ替えたあとの表だと、上下の行が入れ替わっていて逆になることがあるんだよね。マイナスが出たら、まず順番を疑ってみようか。

Q4. 日数に「その日も含める」にしたいです

引き算の結果に+1すればいいよ。9月1日から9月3日までを「3日間」と数えたいときだね。⚠️ ここは数え方の決め事で、正解が1つではないんだ。請求や勤怠なら、先に「どちらの数え方か」を確認してから作ったほうがいいと思うよ。あとから直すと、全部やり直しになるからね。

【本日のミッション:右寄せか左寄せか見てみようか】

  • ☐ 手元の表で、日付が入っている列を見てみようか
  • ☐ 何もしていないのに右に寄っていれば日付、左なら文字だよ
  • ☐ (後輩A君へ)変な表示が出たら、作り直す前に書式を見てみようか壊れていないことのほうが多いんだよ

📚 AI活用シリーズ(おすすめ)

▼ シリーズの全記事一覧を見る

コメント

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