生活・日常の計算など

期間の計算をExcelでする方法は?日付から日数を求める手順を解説!

Excelで日付から日数を求める基本計算
この記事内に広告を含む場合がございます

期間の計算をExcelでする方法は?日付から日数を求める手順を解説!

Excelでは、開始日と終了日を引き算するだけで、基本的な期間の日数を求められます。

ただし、開始日と終了日のどちらを日数に含めるかによって、式の結果が1日変わるため注意が必要です。

また、土日や祝日を除いた営業日、月単位の期間、年齢や勤続年数など、目的に応じて関数を使い分ける場面もあります。

この記事では、日付の引き算による基本式から、DATEDIF関数やNETWORKDAYS関数を使う方法まで解説します。

入力した日付が正しく計算されない原因と、実務で迷いやすいポイントも確認していきましょう。

Excelで日付から日数を求める基本計算

Excelで日付から日数を求める基本計算

それではまずExcelで日付から日数を求める基本計算について解説していきます。

終了日から開始日を引く計算式

Excelで開始日から終了日までの日数を求める基本式は、終了日セルから開始日セルを引く方法です。

Excelの日付は画面上では年月日の形式で表示されますが、内部では連続した数値として管理されています。

そのため、日付が入力されたセル同士を引き算すると、2つの日付の間にある日数を数値として取得できます。

たとえばA2セルに開始日、B2セルに終了日を入れた場合、C2セルには「=B2-A2」と入力します。

開始日 A2セル 2026年4月1日

終了日 B2セル 2026年4月10日

計算式 =B2-A2

計算結果 9

B2は終了日、A2は開始日を表し、結果の単位は日です。

4月1日から4月10日までの間隔は9日なので、この結果は正しい計算になります。

ここでの9日は、4月1日を起点として翌日を1日目と数える考え方です。宿泊数、納期までの残日数、イベントまでの経過日数などでは、この数え方がよく使われます。

開始日と終了日の順番を逆にして「=A2-B2」と入力すると、結果はマイナス9になります。

マイナスの値が表示されたときは、日付の入力順が意図と合っているかを確認するとよいでしょう。

日付が文字列として扱われている場合は引き算できないため、セルの表示形式だけでなく、実際に日付として認識されているかも大切です。

日付の差を求めるときは、終了日から開始日を引くことが基本です。

結果は開始日を含まず、終了日までに経過した日数として表示されます。

開始日と終了日を含める日数計算

開始日と終了日の両方を数える場合は、通常の引き算の結果に1を加えます。

旅行の日程、休暇の取得日数、設備を使用する日数などは、両端の日付を含めて数えることが少なくありません。

A2セルが2026年4月1日、B2セルが2026年4月10日なら、「=B2-A2+1」という式を使います。

開始日 A2セル 2026年4月1日

終了日 B2セル 2026年4月10日

計算式 =B2-A2+1

計算結果 10

最後の+1は開始日を1日として数えるための補正で、結果の単位は日です。

この式では4月1日から4月10日までが10日間と表示されます。

「4月1日から4月10日まで利用する」という予約表では、一般にこちらの数え方が自然でしょう。反対に「4月10日まであと何日」という残日数では、+1を付けない式が適しています。

日数の計算では、開始日を含めるかどうかを先に決めることが重要です。

同じ期間でも、契約日数と経過日数では求める答えが異なるためです。

たとえば4月1日に申請し、4月10日が期限である場合、4月1日を含める運用なら10日間、翌日からの猶予を表すなら9日間になります。

式をコピーして多くの行に使う前に、実際のカレンダーで1件だけ数えて確認すると入力ミスを防げます。

日付入力と表示形式の確認

日数計算を正しく行うには、開始日と終了日がExcelで日付として認識されている必要があります。

見た目が「2026年4月1日」でも、文字列として入力されていると、引き算の結果がエラーになったり、意図しない値になったりします。

セルを選択し、数式バーに日付がそのまま表示されるかを確かめると、入力内容を確認しやすくなります。

また、セルの表示形式を日付に設定しても、元の値が文字列なら自動で直るとは限りません。

確認項目 望ましい状態 確認方法
セルの配置 右寄せ表示 初期設定で右寄せなら数値や日付の可能性が高い
数式バー 日付として扱われる値 セルを選択して内容を確認する
引き算の結果 日数の数値 =B2-A2で計算する
表示形式 日付または標準 セルの書式設定から選ぶ

日付が左寄せで表示され、引き算で「#VALUE!」と出る場合は、文字列として保存されていることが考えられます。

その場合は、データの区切り位置機能で日付形式を指定したり、DATEVALUE関数で日付の値に変換したりする方法があります。

日付を手入力する際は、「2026/4/1」や「2026-4-1」のように、Excelが認識しやすい形式を使うと安心です。

月日だけを入力すると年が補われることがあります。過去や将来の予定を管理する表では、年も含めて入力する習慣を付けましょう。

DATEDIF関数による期間の単位別計算

続いてはDATEDIF関数による期間の単位別計算を確認していきます。

DATEDIF関数の基本構文

DATEDIF関数は、2つの日付の差を日、月、年などの単位で求められる関数です。

単純な日数差だけでなく、勤続年数や年齢、契約の経過月数を出したい場合に便利です。

基本構文は「=DATEDIF(開始日,終了日,単位)」となります。

基本式 =DATEDIF(A2,B2,”d”)

A2 開始日

B2 終了日

“d” 日数を指定する単位

計算結果の単位 日

A2セルが2026年1月15日、B2セルが2026年4月15日なら、「=DATEDIF(A2,B2,”d”)」で90日と求められます。

DATEDIF関数では、開始日が終了日より後になると「#NUM!」エラーになる点に注意が必要です。

開始日と終了日が同じ日であれば、日数の結果は0になります。

DATEDIF関数は、経過した期間を日、月、年に分けて取得したいときに役立ちます。

関数名が入力候補に表示されないExcelの環境もありますが、式として直接入力すれば利用できる場合があります。

ただし、開始日と終了日の両方を含める日数を出したいときは、DATEDIF関数の結果に+1を加える必要があります。

単位の指定は半角の英字を引用符で囲むため、全角文字や引用符の付け忘れにも気を付けましょう。

日数と月数と年数の指定

DATEDIF関数では、3つ目の引数に指定する文字によって、返される期間の単位が変わります。

日数を知りたい場合は「d」、満了した月数なら「m」、満了した年数なら「y」を使います。

年齢や勤続年数では「y」、毎月の契約管理では「m」、発送から到着までの経過日数では「d」が使いやすいでしょう。

単位の指定 求められる内容 利用場面
“d” 開始日から終了日までの総日数 納期、滞在日数、経過日数
“m” 満了した総月数 契約月数、在籍月数
“y” 満了した総年数 年齢、勤続年数
“ym” 年数を除いた残りの月数 年齢の月数部分
“md” 年月を除いた残りの日数 期間の内訳表示

たとえば入社日から基準日までの勤続期間を「3年4か月」のように表示したい場合は、「y」と「ym」を組み合わせます。

「=DATEDIF(A2,B2,”y”)&”年”&DATEDIF(A2,B2,”ym”)&”か月”」という式にすると、年と月をつないで表示できます。

ただし、「md」は月末をまたぐ期間で直感と異なる結果に見えることがあるため、厳密な日数管理では総日数の「d」も併せて確認すると安全です。

月数は単純に日数を30で割った値ではありません。暦上の満了月数として計算される点が特徴です。

月単位の請求や契約更新では、社内規程や契約書上の数え方も確認してから式を決めましょう。

年齢と勤続期間の表示

年齢や勤続期間は、年だけではなく、年と月、必要なら日まで分けて表示すると状況を把握しやすくなります。

たとえばA2セルに生年月日、B2セルに基準日を入れて、DATEDIF関数で満年齢を計算できます。

満年齢の式 =DATEDIF(A2,B2,”y”)

A2 生年月日

B2 年齢を判定する基準日

結果の単位 年

年齢は誕生日を迎えた時点で1年増える満年齢として計算されます。

基準日を今日の日付にしたい場合は、B2セルの代わりにTODAY関数を使い、「=DATEDIF(A2,TODAY(),”y”)」と入力します。

TODAY関数はブックを開いた日の日付を返すため、毎日更新される名簿や期限管理表に向いています。

一方で、過去の時点における年齢を固定したい資料では、TODAY関数ではなく、基準日をセルに明示して入力する方法が適しています。

基準日が変わる表では、年齢や勤続期間の計算結果も自動で変わります。

採用時点の年齢、年度末の勤続年数、退職日時点の在籍期間などは、それぞれ別の基準日を設定しましょう。

年齢を「○歳○か月」と示す必要があるなら、「y」と「ym」を組み合わせると、誕生日の前後も自然に処理できます。

表示だけを整えるために日数を365で割る方法は、うるう年をまたぐと誤差が出るため、年齢計算には向きません。

営業日と休日を除く日数の計算

続いては営業日と休日を除く日数の計算を確認していきます。

NETWORKDAYS関数による営業日数

土日を除いた営業日数を求めたい場合は、NETWORKDAYS関数を使います。

この関数は開始日と終了日の両方を含めて、平日が何日あるかを計算する仕組みです。

基本構文は「=NETWORKDAYS(開始日,終了日,祝日範囲)」です。

祝日範囲は省略できますが、会社の休業日や国民の祝日を除きたい場合は、別のセル範囲に日付を登録して指定します。

開始日 A2セル 2026年4月1日

終了日 B2セル 2026年4月10日

祝日一覧 F2からF10

計算式 =NETWORKDAYS(A2,B2,F2:F10)

結果の単位 営業日

この関数では、土曜日と日曜日が自動で休日として除外されます。

開始日と終了日が平日なら、その両方は営業日数に含まれます。

NETWORKDAYS関数は、土日と指定した祝日を除いた営業日数を計算する関数です。

見積もりの回答期限、発注から納品までの標準日数、プロジェクトの作業日数などを管理する際に役立ちます。

祝日一覧には、日付として認識される値を入力してください。祝日名だけを書いても、関数は休日として判定できません。

取引先の休業日が異なる場合は、その会社独自の休業日も同じ一覧に追加しておくと、実態に近い日数を算出できます。

週末設定を変更するNETWORKDAYS.INTL関数

休日が土日とは限らない勤務形態では、NETWORKDAYS.INTL関数を使うと週末の設定を変更できます。

たとえば、金曜日と土曜日が休みの職場や、日曜日だけが定休日の店舗では、通常のNETWORKDAYS関数では実際の稼働日と合わないことがあります。

NETWORKDAYS.INTL関数では、3つ目の引数に週末パターンを示す番号、4つ目に祝日範囲を指定します。

週末番号 休日となる曜日 想定される勤務形態
1 土曜日、日曜日 一般的な週休2日制
2 日曜日、月曜日 変則的な連休設定
7 金曜日、土曜日 金土休みの勤務体系
11 日曜日のみ 日曜定休の店舗
17 土曜日のみ 土曜定休の業務

金曜日と土曜日を休日として、祝日一覧をF2からF10に置く場合は、「=NETWORKDAYS.INTL(A2,B2,7,F2:F10)」と入力します。

週末番号の選択を誤ると、営業日数が一貫してずれてしまいます。

勤務カレンダーがある会社では、計算式を作る前に、どの曜日が原則休業日なのかを確認しましょう。

休日が曜日ごとに固定されず、シフトによって変わる場合は、勤務日一覧を別途作って数える方法が適しています。

週末設定は、実際の勤務日や営業日に合わせて選ぶ必要があります。

顧客向けの納期表示と社内の作業予定で休日ルールが違う場合は、表や数式を分けて管理すると混乱を減らせます。

祝日一覧と会社休日の管理

営業日計算の精度は、祝日や休業日の一覧をどのように管理するかで決まります。

祝日を式の中に直接書き込むのではなく、専用のシートや列に日付をまとめておくと、翌年以降も更新しやすくなります。

たとえば「休日一覧」というシートのA列に休業日を入力し、「休日一覧!A2:A30」のように範囲を指定します。

会社の創立記念日、夏季休業、年末年始の休業日なども、実際に休業する日だけを登録します。

休日一覧には、国民の祝日だけでなく、会社独自の休業日も日付で登録します。

営業日を計算する式では、その一覧を第3引数または第4引数に指定します。

年度が変わる前に翌年分を追加しておくと、納期表の更新漏れを防げます。

同じ日付を一覧に重複して登録しても、通常は営業日が二重に減るわけではありません。

しかし、一覧が長くなると確認しにくくなるため、重複の削除機能や並べ替えで整えておくと管理しやすいでしょう。

祝日が土日と重なっている場合も、NETWORKDAYS関数は平日だけを営業日として数えるため、追加で日数が減ることはありません。

地域ごとの休日、部署単位の計画休、店舗別の定休日がある場合は、用途別に休日一覧を分ける方法もあります。

計算対象の表と休日一覧の範囲がずれないよう、絶対参照を使って「$F$2:$F$30」のように固定する工夫も有効です。

日付計算で起こりやすいエラーと実務上の注意点

続いては日付計算で起こりやすいエラーと実務上の注意点を確認していきます。

開始日と終了日の順序確認

日付計算でまず確認したいのは、開始日と終了日の順序です。

単純な引き算では開始日が後になるとマイナス値になり、DATEDIF関数ではエラーになることがあります。

これは関数の不具合ではなく、終了日が開始日より前に設定されているためです。

たとえば開始予定日を4月10日、完了予定日を4月1日と入力してしまうと、期間としては成立しません。

入力者が日付を間違えた可能性だけでなく、列の意味を取り違えた可能性も確認しましょう。

開始日と終了日の順序が逆になると、日数計算の結果は正しく表示されません。

入力規則を設定して、終了日が開始日より前の場合に警告を出す仕組みを作ると、共有表でのミスを減らせます。

IF関数を使えば、「=IF(B2時刻を含むデータの扱い

Excelの日時データには、日付だけでなく時刻も含まれていることがあります。

時刻は1日を1とした小数で管理されており、正午は0.5、午前6時は0.25として日付の値に加わります。

そのため、開始日時と終了日時を引き算すると、結果が整数ではなく小数になる場合があります。

たとえば4月1日9時から4月2日15時までは、1日と6時間なので、計算結果は1.25日です。

時間数として表示したいときは、差の値に24を掛けます。

開始日時 2026年4月1日9時

終了日時 2026年4月2日15時

日数の式 =B2-A2

時間数の式 =(B2-A2)*24

計算結果 30

結果の単位 時間

勤務時間や作業時間を集計する表では、セルの表示形式を「[h]:mm」にすると、24時間を超える合計も見やすくなります。

日付だけの差を出したいのに小数が表示される場合は、時刻が含まれていないかを確認してください。

日時を扱う表では、日数と時間数のどちらを求めるかで式と表示形式を分けます。

小数部分を切り捨てるだけでは、締め時刻をまたぐ案件で誤った判定になることがあるため、運用ルールに合わせた処理が必要です。

Excelによる期間と日数計算のまとめ

Excelで期間の日数を求める基本は、終了日から開始日を引く計算式です。

開始日と終了日をともに日数へ含める場合は、計算結果に1を加えます。

日付が文字列として入力されていると計算できないため、日付形式として認識されているかを確認しましょう。

年数や月数を求める場面では、DATEDIF関数を使うと目的に合った単位で期間を表示できます。

土日や祝日を除いた日数が必要な場合は、NETWORKDAYS関数やNETWORKDAYS.INTL関数が便利です。

日付計算では、暦日、両端を含む日数、営業日のどれを求めるかを最初に決めることが大切です。

時刻を含むデータでは小数の日数になるため、必要に応じて24を掛けて時間数へ変換します。

まずは少数のサンプルデータで式の結果をカレンダーと照らし合わせ、自分の業務に合う計算方法を表へ取り入れてみてください。