Excel関数で日数計算する方法をお探しですね。
広告
Excelで日付の差分を計算する方法|経過日数・残り日数を簡単に求めるコツ
Excelで「開始日から終了日まで何日あるか」とか「締切まであと何日か」を知りたいとき、日付同士の引き算やDATEDIF関数を使うと簡単に計算できます。
ただ、単純に日数だけ知りたい場合と、「○年○か月」みたいに年数や月数まで出したい場合では、使う方法がちょっと違います。
この記事では、Excelで日付の差分を計算する方法を、初心者の方にも分かりやすく解説していきます。
1. Excelで日付の差分が計算できる理由
Excelでは、日付は見た目こそ「2026/5/12」みたいに表示されていますが、実は裏側では「シリアル値」という連続した数字で管理されています。
たとえば、ある日付の次の日は数値的には「+1」、前の日は「-1」という扱いです。
だから、普通の数字の計算と同じように、終了日から開始日を引くだけで日付の差が求められるんです。
この仕組みを知っておくと、日数計算で迷うことが少なくなりますよ。
基本は「終了日-開始日」
一番シンプルな計算式は「終了日-開始日」です。
たとえば、A2セルに開始日、B2セルに終了日が入っている場合、C2セルに「=B2-A2」と入力すれば、2つの日付の間の日数が表示されます。
会員登録日から今日までの日数、受注日から納品日までの日数、イベントまでの残り日数など、シンプルに日数だけ知りたいときはこの方法が一番楽です。
関数名を覚える必要もないので、まずは引き算で計算できないか考えてみるのがおすすめです。
「初日を含むか」に注意
日付の差分を計算するとき、気をつけたいのが「開始日を含めるかどうか」です。
たとえば、5月1日から5月2日までを引き算すると、結果は「1」になります。
これは、5月1日から5月2日までに経過した日数が1日という意味です。
でも、5月1日と5月2日の両方を数えて「2日間」としたい場合もありますよね。
そんなときは「=B2-A2+1」のように最後に1を足します。
勤怠管理や契約期間、キャンペーン期間などでは数え方が会社やルールによって違うので、計算式を作る前に「初日を含むのか」を確認しておくと安心です。
2. 経過日数・残り日数はTODAY関数と組み合わせると便利
過去の日付から今日までの経過日数を知りたいときは、TODAY関数を使うと便利です。
TODAY関数は、Excelファイルを開いた時点の今日の日付を自動で返してくれる関数です。
たとえば、A2セルに入社日や登録日が入っている場合、「=TODAY()-A2」と入力すると、その日から今日まで何日経ったかを自動で計算できます。
ファイルを翌日以降に開くとTODAY関数の結果も自動で更新されるので、いちいち日付を直す必要がありません。
残り日数の計算は逆向きに
締切日やイベント日までの残り日数を出したいときは、計算の向きを逆にします。
A2セルに締切日が入っているなら、「=A2-TODAY()」で今日から締切日までの残り日数が計算できます。
結果がプラスならまだ日数が残っていて、0なら当日、マイナスなら期限を過ぎているということです。
ToDoリストや納期管理表では、この残り日数をもとに条件付き書式を設定して、期限が近いものを色分けすると使いやすくなります。
よく使う日数計算の式まとめ
– 開始日から終了日までの日数:`=終了日-開始日`
– 開始日から今日までの経過日数:`=TODAY()-開始日`
– 今日から期限日までの残り日数:`=期限日-TODAY()`
– 開始日も含めた期間日数:`=終了日-開始日+1`
計算結果が日付で表示されたときは
計算結果が日付みたいに表示されてしまうことがあります。
これは、セルの表示形式が原因です。
日付同士を引き算した結果は本来「日数」という数値なんですが、セルの表示形式が日付になっていると、変な日付表示になってしまうんです。
そんなときは、対象セルを選択して表示形式を「標準」または「数値」に変更してください。
また、日付に時刻が含まれている場合は、小数を含む結果になることがあります。
日数だけを整数で扱いたい場合は、INT関数などで小数部分を切り捨てるといいでしょう。
3. DATEDIF関数で年数・月数・日数を分けて計算する
DATEDIF関数は、2つの日付の差を「年」「月」「日」といった単位で求められる関数です。
基本の形は「=DATEDIF(開始日,終了日,単位)」です。
たとえば、A2セルに開始日、B2セルに終了日がある場合、「=DATEDIF(A2,B2,”D”)」と入力すると、2つの日付間の日数を計算できます。
日数だけなら引き算でも十分ですが、勤続年数や年齢のように「満○年」を出したいときはDATEDIF関数が便利です。
単位の指定方法
DATEDIF関数で大事なのは、単位を半角のダブルクォーテーション(”)で囲むことです。
年数なら「”Y”」、月数なら「”M”」、日数なら「”D”」を指定します。
たとえば、入社日から今日までの勤続年数を求めたい場合は「=DATEDIF(A2,TODAY(),”Y”)」です。
同じように、登録日から今日までの経過月数を知りたい場合は「=DATEDIF(A2,TODAY(),”M”)」、経過日数なら「=DATEDIF(A2,TODAY(),”D”)」を使います。
DATEDIF関数は関数の挿入画面や入力候補に出てこないことがあるので、基本的にはセルに直接入力して使うと覚えておきましょう。
主な単位の種類
DATEDIF関数でよく使う単位は、次のとおりです。
– `”Y”`:期間内の満年数
– `”M”`:期間内の満月数
– `”D”`:期間内の日数
– `”YM”`:満年数を除いた残りの月数
– `”YD”`:満年数を除いた残りの日数
たとえば、年齢を「35歳」と出したいだけなら「=DATEDIF(生年月日,TODAY(),”Y”)」で計算できます。
さらに「35年 4か月」みたいに表示したい場合は、「Y」と「YM」を組み合わせます。
例として、A2セルに生年月日があるなら「=DATEDIF(A2,TODAY(),”Y”)&”年 “&DATEDIF(A2,TODAY(),”YM”)&”か月”」のように入力します。
年数と月数を分けて計算できるので、社員管理、園児の月齢管理、会員継続期間の表示などにも使いやすい方法です。
DATEDIF関数の注意点
ただし、DATEDIF関数には注意点もあります。
開始日が終了日より後の日付になっていると、結果はエラーになります。
また、DATEDIF関数は古い表計算ソフトとの互換性のために残されている関数で、一部の単位では期待どおりにならないケースがあります。
特に「MD」という単位は月と年を無視した日数を返すんですが、計算結果がおかしくなる場合があるので、大事な資料では使わない方が無難です。
残りの日数を細かく表示したい場合は、DATEDIFだけに頼らず、DATE関数や普通の引き算と組み合わせて確認すると安心です。
4. 実務で使える活用例とエラー対策
Excelで日付の差分を計算する場面は、日常の仕事の中にたくさんあります。
たとえば、入社日から今日までの勤続年数、契約開始日から契約終了日までの期間、請求書の支払期限までの残り日数、プロジェクト開始日から完了日までの経過日数などです。
単純な日数を知りたいなら引き算、満年数や満月数を知りたいならDATEDIF関数というように使い分けると、式が分かりやすくなります。
後から他の人がファイルを見たときにも、何を計算しているのかが分かりやすくなるのがメリットです。
複数行で計算するときのコツ
複数行の一覧表で日付差分を計算する場合は、セル参照の固定にも注意しましょう。
たとえば、B列に開始日が並んでいて、E1セルに今日の日付や基準日を入れている場合、計算式を下方向にコピーすると参照先がずれることがあります。
そんなときは「=DATEDIF(B2,$E$1,”Y”)」のように、基準日を絶対参照にします。
「$E$1」と指定しておけば、式をコピーしても基準日の参照先は変わりません。
社員名簿や顧客リストのように多くの行に計算式を入れる場合は、絶対参照を使うだけで修正の手間を大きく減らせます。
期限切れの表示を工夫する
残り日数を管理する表では、期限切れの扱いも決めておくと便利です。
「=期限日-TODAY()」の結果がマイナスになった場合、そのまま「-3」と表示すれば3日超過していることが分かります。
でも、利用者に見せる表では「期限切れ」と表示した方が分かりやすい場合もありますよね。
そんなときはIF関数を組み合わせて、「=IF(A2-TODAY()<0,"期限切れ",A2-TODAY())」のように書けます。 計算結果をそのまま使うのか、業務上分かりやすい言葉に変換するのかを考えると、管理表としての完成度が上がります。
営業日数を計算したいときは別の関数を
土日や祝日を除いた営業日数を求めたい場合は、引き算やDATEDIF関数ではなく、NETWORKDAYS関数やNETWORKDAYS.INTL関数を使います。
普通の日付差分はカレンダー上の日数を数えるので、土日祝日も含まれます。
納期管理や営業日ベースの締切計算では、この違いを理解しておかないと、実際の稼働日数と計算結果がずれてしまいます。
日付の差分計算は、目的に合わせて方法を選ぶことが大切です。
「日数なら引き算」「年数・月数ならDATEDIF」「営業日ならNETWORKDAYS」と覚えておくと、Excelでの期間計算を迷わず使い分けられますよ。
広告
