我认为 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 种不同的公式来计算两个日期之间的年龄。
- 仅获取年份:
=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"
編輯:
计算两个日期之间的天数有点随意。基本上取决于需要。
- 计算天数,不包括开始日期。
- 计算天数,包括开始日期。
- 计算天数,不包括开始日期和结束日期。
考虑到 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)
根据需要调整公式中的单元格引用。