Excelで日付を扱うとき、
「日付の差を計算したい」と思って引き算をすると、うまく計算できないことがあります。
例えば次のようなケースです。
- 日付を引き算したのに #VALUE! エラーが出る
- 計算結果が 数字にならない
- 日数ではなく 変な表示になる
Excelでは日付は「数値」として管理されているため、本来は単純な引き算で日数を計算できます。しかし、日付の入力形式やセルの設定によっては、正しく計算されないことがあります。
この記事では、Excelで日付の引き算ができない原因と対処方法を分かりやすく解説します。実務でよくあるミスや確認ポイントも紹介しますので、トラブル解決の参考にしてください。
目次
✅ Excelで日付の引き算ができない主な原因
Excelで日付の引き算ができない場合、多くは日付データが正しく認識されていないことが原因です。
Excelは日付を内部的に数値として管理しており、例えば
- 2024/1/1 → 45292
のような数値として保存されています。
そのため、本来は
開始日 - 終了日
のような引き算をするだけで日数を求めることができます。
しかし、次のようなケースでは日付として認識されないため、計算できなくなります。
- 日付が文字列になっている
- セルの書式が日付になっていない
- 空白やスペースが含まれている
まずは原因を順番に確認していきましょう。
・日付が文字列になっている
最も多い原因が、日付が文字列として入力されているケースです。
例えば次のような場合です。
'2024/04/012024-04-01(設定による)2024年4月1日
この場合、Excelは日付として認識できないため、引き算をすると
#VALUE!
エラーになります。
確認方法
- 日付セルをクリック
- 数式バーを確認
もし日付の前に '(シングルクォーテーション) が付いている場合、文字列です。
・セルの表示形式が文字列
セルの書式が文字列になっている場合も、日付として扱われません。
確認方法
- セルを選択
- 「ホーム」タブ
- 表示形式を確認
もし「文字列」になっている場合は
日付
または
標準
に変更します。
✅ Excelで日付の引き算をする基本方法
日付が正しく入力されていれば、Excelでは単純な引き算で日数を求めることができます。
例えば
| 開始日 | 終了日 |
|---|---|
| 2024/4/1 | 2024/4/10 |
この場合、次のように入力します。
"=B2-A2"
すると結果は
9
になります。
これは
2024/4/10 − 2024/4/1
の日数差です。
・日付の差を日数で表示する
Excelでは日付の引き算結果は日数として表示されます。
例
| 開始日 | 終了日 | 差 |
|---|---|---|
| 2024/4/1 | 2024/4/10 | 9 |
この仕組みを理解しておくと、スケジュール管理などで便利です。
✅ DATEDIF関数を使う方法
日数だけでなく
- 年数
- 月数
などを求めたい場合は DATEDIF関数 を使います。
例えば日数を求める場合
"=DATEDIF(A2,B2,"d")"
この関数は
- d → 日数
- m → 月数
- y → 年数
を求めることができます。
実務では
- 勤続年数
- 年齢
- 契約期間
などの計算でよく使われます。
DATEDIF関数は、日数だけでなく「年数」「月数」などの期間を計算することもできます。
年齢を「何歳何ヶ月」まで表示する方法については、次の記事で詳しく解説しています。
【Excel】「何歳何ヶ月」まで表示する年齢計算の方法【DATEDIF関数で簡単!】
✅ #VALUE!エラーが出る場合のチェックポイント
日付計算で #VALUE! エラーが出る場合、次のポイントを確認してください。
・セルに空白がある
見た目では日付でも、セル内にスペースが含まれている場合があります。
例えば
2024/4/1
のようなケースです。
この場合は
- TRIM関数
- 再入力
で解決できます。
・日付の形式が統一されていない
例えば
- 2024/04/01
- 2024-04-01
- 2024年4月1日
のように形式が混在すると、正しく認識されないことがあります。
実務では
日付形式を統一する
ことが重要です。
日付の引き算で #VALUE! エラーが出る場合は、日付データだけでなく、数式全体の構造や参照方法に原因があることもあります。
Excelで #VALUE! エラーが出る代表的な原因と対処法をまとめて確認したい場合は、次の記事も参考にしてください。
【Excel】数式で出る「#VALUE!」エラーの原因と対処法を徹底解説
✅ 実務でよくある日付計算のミス
日付計算では、次のようなミスがよくあります。
・日付が文字列としてコピーされている
CSVデータやシステムデータをExcelに貼り付けると、日付が文字列になることがあります。
この場合は
- 表示形式を変更
- DATEVALUE関数
などで修正できます。
・日付ではなくテキスト形式
例えば
2024年4月1日
のような形式は、Excelによっては日付として認識されません。
この場合は
日付形式に変換する
必要があります。
Excelの日付計算では、引き算だけでなく「日数」「月数」「年数」などさまざまな求め方があります。
日付計算の基本から応用まで体系的に理解したい場合は、次の記事も参考にしてください。
【Excel】日付計算の完全ガイド|日数・月数・年数の求め方まとめ
✅ 日付計算はVBAで自動化することもできる
実務では、日付差を計算する処理を自動化するケースもあります。
例えば
- 納期管理
- 契約期限管理
- プロジェクト管理
などでは、日付計算が頻繁に発生します。
VBAを使えば
- 日付差の自動計算
- 期限チェック
- 期限アラート
などを自動化できます。
Excel関数だけでなく、VBAと組み合わせることで業務効率をさらに高めることが可能です。
VBAで日付計算を行う場合は、日付を安全に生成できる DateSerial関数 を理解しておくと便利です。
実務でよく使われる日付計算の考え方については、次の記事で詳しく解説しています。
【VBA】DateSerial関数の完全ガイド|日付計算を安全に行う実務設計
✅ まとめ:日付の引き算ができない原因は「日付認識」
Excelで日付の引き算ができない場合、多くは日付が正しく認識されていないことが原因です。
今回のポイントをまとめます。
- Excelでは日付は数値として扱われる
- 日付が文字列だと引き算できない
- セルの表示形式を確認する
- 基本は「終了日 − 開始日」で日数が出る
- 年数や月数はDATEDIF関数を使う
日付計算はExcel業務で非常によく使われる機能です。
日付の仕組みを理解しておくことで、スケジュール管理や期限管理を効率よく行えるようになります。
ぜひ今回の内容を参考に、日付計算のトラブルを解決してみてください。