日付間の日数を数える
DATEDIFと引き算で2つの日付の差を求めます。
「日付間の日数を数える」はCoddyKit上の無料Excel Formulas Academyレッスンです。 これはレッスン4/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはExcel Formulas Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Excel Formulas Academyコースには全4レッスンが含まれています。
期間の差を測る
日付に関する最も一般的な作業の1つは、2つの日付の間にどれだけの時間があるかを調べることです。締め切りまでの日数や年齢、プロジェクトの期間などがこれに当たります。
スプレッドシートでは日付が数値として保存されるため、最も簡単な方法は単純な引き算です。経過した満月数や満年数を数えるといった高度な処理には、DATEDIF関数を使います。
このレッスンでは、すばやく計算できる引き算の方法と、正確なDATEDIFの方法の両方を身につけます。
2つの日付を引き算する
A2に早い日付、B2に遅い日付が入っている場合、その間の日数は引き算するだけで求められます。
結果は2つの日付の間の日数になります。A2が6月1日、B2が6月18日なら、=B2-A2は17を返します。
結果を正の数にするには、遅い日付を先に指定してください。逆の順番で引き算すると負の数になりますが、これは単に順序が逆であることを意味します。
=B2-A2セルの表示形式に注意する
よくある問題として、日付を引き算した後、答えのセルに数値ではなく日付が表示され、1/17/1900のようになることがあります。
これは、セルが日付の表示形式を引き継いでいるためです。計算結果は正しく、表示だけが間違っています。セルの表示形式を小数点以下0桁の数値に変更すれば解決できます。
数値として表示形式を設定すると、期待どおりのすっきりした日数が表示されます。
両端を含む場合と含まない場合のカウント
単純な引き算で数えているのは、日そのものではなく、日と日の間の間隔です。6月1日から6月18日までを引き算すると17ですが、両端の日を含めて数えると、実際には18暦日あります。
開始日と終了日の両方を含める必要がある場合は、結果に1を加えてください。
つまり、=B2-A2+1で両端を含む日数を求められます。レポートに必要なのがどちらの数え方かを判断してください。
=B2-A2+1DATEDIFを使う
満月数や満年数を数える場合、引き算では扱いにくくなります。DATEDIF関数は、この処理のために用意されています。引数は3つで、引用符で囲んだ開始日、終了日、単位コードを指定します。
単位コードによって数える対象が変わります。
"D"は日数を数えます"M"は完了した月数を数えます"Y"は完了した年数を数えます
注意:DATEDIFは非表示のレガシー関数です。動作しますが、Excelでは入力候補に表示されません。
=DATEDIF(A2,B2,"D")満月数を数える
"M"単位を使うと、2つの日付の間の完了した月数を数えられます。途中までの月は無視されます。
A2が1月15日、B2が4月10日なら、=DATEDIF(A2, B2, "M")は2を返します。3か月目は10日時点ではまだ完了していないため、経過した満月数は2か月だからです。
これは、サブスクリプションの利用期間や契約期間を測る一般的な方法です。
=DATEDIF(A2,B2,"M")満年数を数える(年齢)
"Y"単位を使うと完了した年数を求められます。これは年齢を計算する正しい方法です。
A2に生年月日が入っている場合、それを今日の日付と比較すると、その人の満年齢を求められます。今年の誕生日を迎えるまでは、正しく1つ小さい年齢が返されます。
これにより、日数の差を365で割る方法で起きる丸め誤差を避けられます。
=DATEDIF(A2,TODAY(),"Y")余りの日数と月数
DATEDIFには、期間を部分に分けるための追加の単位コードがあります。
"YM"= 満年数を数えた後に残る月数"MD"= 満月数を数えた後に残る日数"YD"= 満年数を数えた後に残る日数
これらを3つのDATEDIFで組み合わせると、期間を2年、3か月、5日のように表現できます。
=DATEDIF(A2,B2,"YM")営業日だけを数える
単純な引き算では、週末を含むすべての暦日を数えます。営業日だけを数えるには、NETWORKDAYSを使います。
NETWORKDAYSは2つの日付の間の平日を数え、除外する祝日のリストも指定できます。そのため、=NETWORKDAYS(A2, B2)は月曜日から金曜日までの日数を返し、3つ目の省略可能な引数で祝日の範囲を指定できます。
納期の見積もりやSLAのスケジュールには、この関数が適しています。
=NETWORKDAYS(A2,B2)実例:支払期限を過ぎた日数
A2に請求書の支払期限が入っていて、今日と比較して何日超過しているかを示したいとします。ただし、まだ期限を過ぎていない場合は0を表示します。
今日から支払期限を引き、その結果を0とともにMAXで囲みます。これにより、期限前の請求書に負の数が表示されることはありません。
この1つの数式で、回収レポートに適した、わかりやすく合理的な超過日数を求められます。
=MAX(0,TODAY()-A2)日数を週数に変換する
日数がわかれば、別の単位に変換できます。期間を満週数で表すには、日数の差を7で割り、INTで切り下げます。
つまり、=INT((B2-A2)/7)で、2つの日付の間に完全に収まる週数を求められます。17日間の差は2週間になります。
同じ考え方はどの単位にも使えます。日数を目的の単位で割り、レポートに合わせて丸めてください。
=INT((B2-A2)/7)理解度チェック
日付の差についての知識を確認しましょう。
まとめ:日付の間の日数を数える
期間を測る方法をいくつか学びました。
=B2-A2で日数の差を求められます(遅い日付を先に指定します)。両端を含める場合は1を加えます。- 結果が日付として表示される場合は、結果のセルを数値に再設定します。
DATEDIF(start, end, "D"/"M"/"Y")で満日数、満月数、満年数を数えられます。年齢や利用期間を求めるのに適しています。NETWORKDAYSで営業日を数え、祝日を除外できます。MAX(0, ...)で囲むと、期限超過日数が負になるのを防げます。
これで「日付と時刻の関数」コースを修了しました。
よくある質問
「日付間の日数を数える」レッスンは無料ですか?
はい。「日付間の日数を数える」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Excel Formulas Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Excel Formulas Academyコースには全4レッスンが含まれています。
「日付間の日数を数える」で何を学びますか?
DATEDIFと引き算で2つの日付の差を求めます。 ブラウザで直接実行するハンズオンコードでExcel Formulas Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Excel Formulas Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのExcel Formulas Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/4です。
「日付間の日数を数える」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このExcel Formulas Academyレッスンでコードを書いて実行できますか?
はい。すべてのExcel Formulas Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。