Excel で 2 つの日付間の日数を計算する

Excel で 2 つの日付間の日数を計算する

私は 7 日間を 1 週間と見なしているので、2019 年 1 月 1 日から 2019 年 1 月 7 日までは 7 日間であると言えます。しかし、2 つの日付または年齢間の日数を計算するときに、 が開始日/生年月日で が終了日または今日の日付でB1-A1ある式を使用することがよくあります。上記の例では、6 になります。A1B1

を使用(B1-A1)+1すると 7 になり、生年月日の場合は を使用します((B1-A1)+1)/365.25。どちらが正しいでしょうか?

答え1

どちらかの公式が正しくて、もう片方が間違っているという問題ではありません。何を探しているのかという問題です。

24時間仕事に取り組んでいるとします。2000年1月17日午前9時に仕事を開始し、2000年1月18日午前9時に仕事を完了します。この作業には何日かかりましたか?差額を払う​​と24時間以内に回答が得られる1日。

しかし、質問がこのタスクには何日間取り組みましたか?あなたはすぐに反応するだろう2

したがって=B1 - A1、またはは=B1 - A1 + 1何を測定しようとしているのか。

答え2

その答えは、Excel が日付をどのように処理するかに関係します。 などの数式を使用して日付間の日数を計算する場合B1-A1、Excel は日付をシリアル値に変換し、そのシリアル値を使用して日付間の日数を計算します。

デフォルトでは、1900 年 1 月 1 日はシリアル番号 1 で、2008 年 1 月 1 日は 1900 年 1 月 1 日から 39,447 日後なのでシリアル番号 39448 になります。(出典:マイクロソフト

したがって、1900 年 1 月 1 日から 1900 年 1 月 7 日までの日数は、7 から 1 を引いて 6 になります。

2008年1月1日~2008年7月1日も同様です。

2008年1月1日は39,447、
2008年1月7日は39,453

39,453 — 39,447 = 6

日数を数えたいなら包括的たとえば、数式を にするには 1 を追加する必要がありますB1-A1+1

日数を計算したい場合エクスクルーシブ1日短縮する必要がありますB1-A1-1

答え3

2 つの日付間の年齢を計算する 3 つの異なる数式を提案したいと思います。

ここに画像の説明を入力してください

  1. 年のみを取得するには:

=INT((B1-A1)/365)

または、

=ROUNDDOWN(YEARFRAC(A1, B1, 1), 0)

または、TODAY()関数を使用することもできます:

=ROUNDDOWN(YEARFRAC(A1, TODAY(), 1), 0)

  1. 年、月、日で完全な年齢を取得するには、これを使用します。

    =DATEDIF(A1,B1,"Y") & " Years, " & DATEDIF(A1,B1,"YM") & " Months, " & DATEDIF(A1,B1,"MD") & " Days"
    

編集済み:

2 つの日付間の日数を数えることは、少し恣意的です。基本的には、必要に応じて異なります。

  1. 日数を数える、開始日を除く
  2. 日数を数える、開始日を含む
  3. 日数を数える、開始日と終了日の両方を除外

ここに画像の説明を入力してください

OP のサンプル日付を考慮すると、次の式を使用できます。

状況1の式:

=DATEDIF(B2,B3,"d")

=DAYS(B3,B2)

=INT(B3-B2)

状況2の式:

=DATEDIF(B2,B3,"d")+1

=DAYS(B3,B2)+1

=INT(B3-B2+1)

状況3の式:

=DATEDIF(B2,B3,"d")-1

=DAYS(B3,B2)-1

=INT(B3-B2-1)

必要に応じて数式内のセル参照を調整します。

関連情報