ホーム > 読みもの > エクセルで日数・年数を計算する方法(DATEDIF関数・引き算・NETWORKDAYS)

エクセルで日数・年数を計算する方法(DATEDIF関数・引き算・NETWORKDAYS)

エクセル(Excel)で「2つの日付のあいだが何日か」「入社から何年何か月か」「締め切りまでの営業日は何日か」を知りたい場面は、事務の仕事や家計管理でよくあります。使う道具は、引き算、DAYS関数、DATEDIF関数、NETWORKDAYS関数など、目的によって変わります。この記事では、それぞれの使い分けと、つまずきやすい点を、実際にExcelで動かして確かめた結果とあわせて説明します。

作成: くらしの道具箱(個人運営) 最終確認日: 2026年11月6日 連絡先: kurashidogubako77@gmail.com

まず知っておきたい:Excelの日付は「連番の数字」

Excelは、日付を「シリアル値」という連番の数字で保存しています。Microsoftの説明では、既定では1900年1月1日がシリアル値の1で、1日進むごとに1増えます。日付が数字だからこそ、日付どうしの引き算で日数が求められます。

計算結果が「1900/1/29」のような日付で表示されることがあります。この場合は、セルの表示形式を「標準」または「数値」に変えると、日数として表示されます(TODAY関数のMicrosoftの説明にも、シリアル値を表示するには書式を「標準」か「数値」にする、とあります)。

以下の例は、A2に開始日、B2に終了日が入っているものとします。

日数を求める:引き算とDAYS関数

日数だけを知りたいなら、いちばん簡単なのは引き算です。

数式意味2026/4/1と2026/4/30の結果
=B2-A2終了日から開始日を引く29
=DAYS(B2,A2)DAYS(終了日, 開始日)。引数の順番に注意29
=B2-A2+1開始日と終了日の両方を数えに入れる30

引き算とDAYS関数は、どちらも開始日を数えに入れません。4月1日から4月30日なら、差は29です。「4月1日も1日目として数えて、30日間」としたい場合は、1を足します。初日を数えるかどうかは、契約書や申請書の書き方で決まることなので、使い方の根拠を確認してから式を選んでください(考え方は営業日と日数の数え方で説明しています)。

開始日と終了日の順序が逆になると、結果は負の数になります(例:2026/4/1を終了日、2026/4/30を開始日にして計算すると-29)。今日から年末までの残り日数なら、=DATE(2026,12,31)-TODAY()のように書きます(2026年11月6日に開いたときの結果は55)。

年数・月数を求める:DATEDIF関数

「○年○か月」のように、年や月の単位で期間を知りたいときは、DATEDIF関数を使います。書き方は =DATEDIF(開始日, 終了日, "単位") です。

単位意味2001/6/1→2002/8/15の結果
"Y"満の年数1
"M"満の月数14
"D"日数440
"YM"年を除いた月数2
"YD"年を除いた日数75
"MD"年・月を除いた日数(使用は非推奨)14

"D"の440と"YD"の75は、Microsoftの公式ページに載っている例と同じ結果になりました。

例:満年齢、「○年○か月」の表示

DATEDIFの注意点

営業日数を求める:NETWORKDAYS・WORKDAY

土日と祝日を除いた「営業日」を数えるには、NETWORKDAYS関数を使います。書き方は =NETWORKDAYS(開始日, 終了日, [祝日の範囲]) です。

2026年4月27日(月)から5月8日(金)の例です。この期間の平日は10日で、そのうち4月29日、5月4日、5月5日、5月6日が祝日・休日なので、祝日を指定すると営業日は6日になります。

数式結果
=NETWORKDAYS(開始日, 終了日)10
=NETWORKDAYS(開始日, 終了日, 祝日の範囲)6
=NETWORKDAYS.INTL(開始日, 終了日, 11, 祝日の範囲)(日曜だけ休み)7

土曜日が営業日の会社など、休みが土日以外のときは、NETWORKDAYS.INTL関数の3つ目の引数で週末の曜日を指定します。1または省略で土日、11で日曜のみ、17で土曜のみです。0と1を7つ並べた文字列(月曜から順に、1が休み)でも指定できます。

「○営業日後の日付」を知りたいときは、WORKDAY関数が使えます。=WORKDAY(開始日, 営業日数, [祝日の範囲])で、開始日の翌日から数え始めます。2026年4月28日から5営業日後は、祝日を考えなければ5月5日、祝日(4/29、5/3〜5/6)を指定すると5月11日でした。

祝日の一覧を用意する

祝日の日付は、内閣府が「国民の祝日」として公表しています。2026年の祝日・休日は次のとおりです。振替休日(5月6日)と、前後が祝日にはさまれた休日(9月22日)も含まれています。

名称日付
元日2026年1月1日(木)
成人の日2026年1月12日(月)
建国記念の日2026年2月11日(水)
天皇誕生日2026年2月23日(月)
春分の日2026年3月20日(金)
昭和の日2026年4月29日(水)
憲法記念日2026年5月3日(日)
みどりの日2026年5月4日(月)
こどもの日2026年5月5日(火)
休日(振替休日)2026年5月6日(水)
海の日2026年7月20日(月)
山の日2026年8月11日(火)
敬老の日2026年9月21日(月)
休日(国民の休日)2026年9月22日(火)
秋分の日2026年9月23日(水)
スポーツの日2026年10月12日(月)
文化の日2026年11月3日(火)
勤労感謝の日2026年11月23日(月)

会社が独自に定めた休日(年末年始、夏季休暇など)は、祝日の範囲に自分で追加してください。

よくあるつまずき

Excelを使わずにすぐ確かめたいときは、日数計算ツールが使えます。また勤続年数や有給休暇の付与日は、勤続年数の数え方の記事で考え方を説明しています。

よくある質問

2つの日付のあいだの日数だけ知りたいときは、どの方法がよいですか?
引き算(=B2-A2)かDAYS関数(=DAYS(B2,A2))がいちばん簡単です。どちらも開始日は数えません。開始日も1日目に数えたいときは、結果に1を足します。
DATEDIFの"MD"は使ってよいですか?
Microsoftが使用をすすめていない単位です。負の数、ゼロ、不正確な結果になることがあります。日にちを求めたいときは、別の式で確認してください。
祝日を自動で除いて営業日を数えられますか?
NETWORKDAYSは土日だけを自動で除きます。祝日は、祝日の一覧をセルに用意して、3つ目の引数に指定する必要があります。内閣府が国民の祝日の一覧(CSV形式)を公開しています。
土曜日も営業日のときは、どうすればよいですか?
NETWORKDAYS.INTL関数を使い、週末の引数に11(日曜のみ休み)を指定します。
DATEDIFで#NUM!エラーが出ます。
開始日が終了日より後になっていないか確認してください。DATEDIFは、開始日が終了日より大きいと#NUM!を返します。

参考にした資料

上記は 2026年11月6日 に内容を確認しました。法令・制度は改正されることがあります。

この記事の数式の結果は、Microsoft 365版のExcelで実際に動かして確認したものです。Excelのバージョンや設定によって、表示が異なる場合があります。契約や申請の期限などの日数は、書類の定義を優先し、必要に応じて専門家にご相談ください。