私は 7 日間を 1 週間と見なしているので、2019 年 1 月 1 日から 2019 年 1 月 7 日までは 7 日間であると言えます。しかし、2 つの日付または年齢間の日数を計算するときに、 が開始日/生年月日で が終了日または今日の日付でB1-A1
ある式を使用することがよくあります。上記の例では、6 になります。A1
B1
を使用(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 つの異なる数式を提案したいと思います。
- 年のみを取得するには:
=INT((B1-A1)/365)
または、
=ROUNDDOWN(YEARFRAC(A1, B1, 1), 0)
または、TODAY()
関数を使用することもできます:
=ROUNDDOWN(YEARFRAC(A1, TODAY(), 1), 0)
年、月、日で完全な年齢を取得するには、これを使用します。
=DATEDIF(A1,B1,"Y") & " Years, " & DATEDIF(A1,B1,"YM") & " Months, " & DATEDIF(A1,B1,"MD") & " Days"
編集済み:
2 つの日付間の日数を数えることは、少し恣意的です。基本的には、必要に応じて異なります。
- 日数を数える、開始日を除く。
- 日数を数える、開始日を含む。
- 日数を数える、開始日と終了日の両方を除外。
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)
必要に応じて数式内のセル参照を調整します。