在 Excel 中计算两个日期之间的天数

在 Excel 中计算两个日期之间的天数

我认为 7 天为一周,所以如果我查看 2019 年 1 月 1 日 - 2019 年 1 月 7 日,我会说那是 7 天。但我经常看到人们在计算两个日期或年龄之间的天数时使用公式,B1-A1其中A1是开始日期/出生日期,B1是结束日期或今天的日期。对于上述示例,这将得出 6。

我使用(B1-A1)+1给出 7 并且对于出生日期我会使用((B1-A1)+1)/365.25。哪一个是正确的?

答案1

这不是一个公式正确与否的问题,而是一个你在寻找什么的问题。

假设你一天 24 小时都在处理一项任务。你于 2000 年 1 月 17 日上午 9:00 开始这项任务,并于 2000 年 1 月 18 日上午 9:00 完成这项任务。如果问题是这个任务花了多少天?您将承担差额;获得 24 小时的答复1天。

但如果问题是您花了多少天来完成这项任务?你会立即回应2

因此=B1 - A1=B1 - A1 + 1可能取决于你想测量什么。

答案2

答案与 Excel 如何处理日期有关。当使用诸如 之类的公式计算日期之间的天数时B1-A1,Excel 会将日期转换为序列号,并使用序列号计算之间的天数。

默认情况下,1900 年 1 月 1 日的序列号为 1,而 2008 年 1 月 1 日的序列号为 39448,因为它是 1900 年 1 月 1 日之后的第 39,447 天。(来源:微软

因此,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

我想建议 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"
    

編輯:

计算两个日期之间的天数有点随意。基本上取决于需要。

  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)

根据需要调整公式中的单元格引用。

相关内容