web-dev-qa-db-ja.com

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

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

私は(B1-A1)+1を使用します。これにより7が得られ、誕生日には((B1-A1)+1)/365.25を使用します。どちらが正しい?

9
Naz

1つの式が正しいことと、別の式が間違っていることの問題ではありません。それはあなたが探しているものの問題です。

あなたが24時間タスクに取り組んでいるとしましょう。 2000年1月17日の午前9時にタスクを開始し、2000年1月18日の午前9時にタスクを完了します。質問がタスクにかかった日数]の場合=差が出ます。 24時間取得し、1日と答えます。

ただし、質問が何日でタスクに取り組みましたか?あなたはすぐに返答します2

したがって、=B1 - A1または=B1 - A1 + 1は、測定しようとしているものに応じて適切な場合があります。

16
Gary's Student

答えは、Excelが日付を処理する方法を中心に展開します。 B1-A1などの数式を使用して日付間の日数を計算すると、Excelは日付をシリアル番号に変換し、シリアル番号を使用してその間の日数を計算します。

デフォルトでは、1900年1月1日はシリアル番号1であり、2008年1月1日はシリアル番号39448です。これは、1900年1月1日から39,447日後です(出典: Microsoft

したがって、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

日数inclusiveをカウントする場合は、1を追加して、数式をB1-A1+1のようにする必要があります。

日数を計算したい場合exclusiveは、マイナス1日にする必要がありますB1-A1-1

14
Chris Rogers

2つの日付間のAGEを計算するために3つの異なる式を提案したいと思いました

enter image description here

  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. 日数をカウントします開始日と終了日の両方を除外します。

enter image description here

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)

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

0
Rajesh S