Excelの日付・時間計算を逆引きで解説!実務でよく使うシーン別まとめ

「締め切りまで何営業日ある?」「入社日からの勤続年数を一括で出したい」「残業時間の合計が24時間を超えたら表示がおかしくなった…」

この記事では、実務でよく遭遇する日付・時間の計算をやりたいこと別に逆引きできるようまとめました。


はじめに:Excelの日付・時刻の仕組み

Excelは日付を「シリアル値(整数)」、時刻を「0〜1未満の小数」で管理しています。たとえば2025年1月1日は内部では 45658、正午(12:00)は 0.5 です。

この仕組みを知っておくと、日付の足し算ができる理由やエラーの原因が理解しやすくなります。


1. 今日の日付・現在時刻を自動表示する

やりたいこと数式特徴
今日の日付を表示=TODAY()日付のみ。開くたびに自動更新
現在の日時を表示=NOW()日付+時刻。開くたびに自動更新

注意: TODAY()NOW() は再計算のたびに値が変わります。「記録として残したい日付」には使わないでください。固定したい場合は 今日の日付(Ctrl+;) で直接入力します。


2. 経過日数・勤続年数・年齢を求める

単純な経過日数は引き算でOKです。結果のセルの書式を「数値」に変更してください。

=B2 - A2

「勤続〇年〇ヶ月」「満〇歳」など細かく出すには DATEDIF を使います。関数候補に表示されないため、手入力が必要です。

単位取得できる値数式例
"Y"満年数=DATEDIF(A2,TODAY(),"Y")
"YM"年未満の端数月数=DATEDIF(A2,TODAY(),"YM")
"MD"月未満の端数日数=DATEDIF(A2,TODAY(),"MD")

「勤続3年2ヶ月」のような表示にするには、次のように組み合わせます。

=DATEDIF(A2,TODAY(),"Y")&"年"&DATEDIF(A2,TODAY(),"YM")&"ヶ月"

注意: 開始日 > 終了日のとき #NUM! エラーになります。引数は必ず「古い日付 → 新しい日付」の順にしてください。


3. 〇日後・〇ヶ月後・月末の日付を求める

やりたいこと数式例補足
30日後=A2+30数値を足すだけ
3ヶ月後=EDATE(A2,3)月ずれを防ぐにはEDATE
同月末日=EOMONTH(A2,0)月末締め処理に便利
翌月末=EOMONTH(A2,1)翌月末払いの計算に
月初(1日)=EOMONTH(A2,-1)+1前月末+1日で月初を取得

4. 営業日ベースで期日・日数を計算する

やりたいこと関数数式例
〇営業日後の日付WORKDAY=WORKDAY(A2,10,祝日リスト)
2日付間の営業日数NETWORKDAYS=NETWORKDAYS(A2,B2,祝日リスト)

ポイント: 別シートに祝日一覧を縦一列で作り、名前定義しておくと管理が楽です。毎年その一覧を更新するだけで全シートに反映されます。


5. 日付から年・月・曜日を取り出す

取り出したい情報数式例結果例
=YEAR(A2)2025
=MONTH(A2)4
=DAY(A2)15
曜日名=TEXT(A2,"aaaa")火曜日
曜日名(短縮)=TEXT(A2,"aaa")
曜日番号(月=1)=WEEKDAY(A2,2)2

実務活用: 条件付き書式の数式に =WEEKDAY(A2,2)>=6 を使うと、土日のセルを自動でハイライトできます。シフト表や工程表に便利です。


6. 時間の足し算・引き算と「24時間超え」問題

勤務時間は引き算で求めます。

=C2 - B2 (退勤時刻 - 出勤時刻)

問題は合計が24時間を超えたときです。書式設定を変えないと正しく表示されません。

状況書式設定表示
24時間以内h:mm8:30
24時間超の合計[h]:mm(角カッコが必須)30:00(正しく表示)

注意: 月の残業合計が h:mm のままだと、30時間が「6:00」と表示されます。時間集計セルは必ず [h]:mm に変更してください。時間を給与計算など数値として使いたい場合は =A2*24 で時間数(小数)に変換します。


7. 日付・時刻の表示形式を整える(TEXT関数)

TEXT関数を使うと、日付や数値を任意の文字列に変換できます。他の文字列と連結するときに便利です。

やりたい表示数式例結果例
2025年4月15日=TEXT(A2,"yyyy年m月d日")2025年4月15日
4月15日(火)=TEXT(A2,"m月d日(aaa)")4月15日(火)
令和7年4月15日=TEXT(A2,"[$-ja-JP-x-gannen]gge年m月d日")令和7年4月15日
09:30=TEXT(A2,"hh:mm")09:30

注意: TEXT関数の結果は「文字列」です。そのまま計算には使えません。数値に戻す場合は DATEVALUE()VALUE() を使ってください。


8. よくあるエラーと対処法

症状原因対処法
引き算の結果が日付表示になる書式が「日付」のまま書式を「数値」に変更
時間合計がおかしいh:mm 書式のまま[h]:mm に変更
#VALUE! エラー日付が文字列として入力されているDATEVALUE() で変換するか入力し直す
#NUM!(DATEDIFで)開始日 > 終了日になっている引数の順序を確認する

まとめ

日付・時間の計算でつまずく多くの原因は「シリアル値の仕組み」か「セルの書式設定」にあります。エラーが出たときはまずこの2点を確認する習慣をつけると、原因の特定が早くなります。

やりたいこと使う関数・方法
今日の日付・現在時刻TODAY() / NOW()
経過日数・勤続年数・年齢引き算 / DATEDIF()
〇ヶ月後・月末EDATE() / EOMONTH()
営業日計算WORKDAY() / NETWORKDAYS()
年・月・曜日の取り出しYEAR() / MONTH() / TEXT()
時間集計(24時間超対応)引き算 + 書式 [h]:mm
表示形式の整形・文字列連結TEXT()

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