计算日期之间的天数
使用 DATEDIF 和减法查找两个日期之间的间隔
计算日期之间的天数 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。
衡量时间差
最常见的日期任务之一,是找出两个日期之间相隔了多长时间:距离截止日期还有多少天、年龄是多少岁,或项目持续了多长时间。
由于电子表格会将日期存储为数字,最简单的答案就是直接相减。对于计算完整月份或完整年份等更复杂的需求,可以使用 DATEDIF 函数。
在本课中,您将掌握快速的相减方法和精确的 DATEDIF 方法。
相减计算两个日期
要计算 A2 中较早日期与 B2 中较晚日期之间的天数,只需进行相减。
结果就是两个日期之间相隔的天数。如果 A2 是 6 月 1 日,B2 是 6 月 18 日,那么 =B2-A2 会返回 17。
请将较晚的日期放在前面,这样结果就是正数。反过来相减会得到负数,这仅表示日期顺序颠倒了。
=B2-A2注意单元格格式
一个常见的问题是:相减计算日期后,结果单元格有时会显示为日期而不是数字,例如 1/17/1900。
这是因为单元格继承了日期格式。计算结果是正确的,只有显示方式不对。请将单元格格式改为保留零位小数的数字格式即可修复。
格式改为数字后,您就会看到预期的清晰天数。
包含首尾日期与不包含的计算方式
直接相减计算的是日期之间的间隔,而不是日期本身。从 6 月 1 日到 6 月 18 日,相减结果是 17;但如果首尾两天都计算在内,实际共有 18 个日历日。
如果您的情况需要包含开始日和结束日,请在结果上加 1。
因此,=B2-A2+1 会给出包含首尾日期的天数。请根据报表的需要决定使用哪种计算方式。
=B2-A2+1认识 DATEDIF
要计算完整的月份或年份时,直接相减不太方便。DATEDIF 函数就是为此设计的。它接受三个参数:用引号括起来的开始日期、结束日期和单位代码。
单位代码决定要计算的内容:
"D"计算天数"M"计算完整月份"Y"计算完整年份
注意:DATEDIF 是一个隐藏的旧版函数;它可以正常使用,但在 Excel 中不会显示自动补全提示。
=DATEDIF(A2,B2,"D")计算完整月份
使用 "M" 单位计算两个日期之间的完整月份。不完整的月份会被忽略。
如果 A2 是 1 月 15 日,B2 是 4 月 10 日,那么 =DATEDIF(A2, B2, "M") 会返回 2,因为只有两个月已经完整过去了(到 10 日时,第三个月还没有结束)。
订阅期限或合同期限通常正是这样测量的。
=DATEDIF(A2,B2,"M")计算完整年份(年龄)
"Y" 单位会返回完整年份,这是计算年龄的正确方式。
如果 A2 存储的是出生日期,将其与今天进行比较,就可以得到此人的完整年龄。只有当生日在当年真正到来后,结果才会增加;在此之前会正确返回较小的年龄。
这样可以避免将相差天数除以 365 所造成的四舍五入错误。
=DATEDIF(A2,TODAY(),"Y")剩余的天数和月份
DATEDIF 还提供了用于将时间跨度拆分成各部分的单位代码:
"YM"= 计算完整年份后剩余的月份"MD"= 计算完整月份后剩余的天数"YD"= 计算完整年份后剩余的天数
将三个 DATEDIF 调用组合起来,就可以将持续时间表达为2 年、3 个月、5 天。
=DATEDIF(A2,B2,"YM")只计算工作日
直接相减会计算每一个日历日,包括周末。要只计算工作日,请使用 NETWORKDAYS。
它会计算两个日期之间的工作日,并允许您提供要跳过的节假日列表。因此,=NETWORKDAYS(A2, B2) 会返回周一至周五的工作日数量,而可选的第三个参数用于指定节假日范围。
这是计算交付时间估算和 SLA 时间线的合适工具。
=NETWORKDAYS(A2,B2)示例:逾期天数
假设发票到期日位于 A2 中,您希望计算它相对于今天逾期了多少天;如果尚未逾期,则显示 0。
用今天的日期减去到期日,然后将结果与 0 一起放入 MAX 中,这样尚未到期的发票就不会显示负数。
这个简单的公式可以为催收报表提供清晰、合理的逾期天数。
=MAX(0,TODAY()-A2)将天数转换为周数
得到天数后,您可以将其转换为其他单位。要将时间跨度表示为完整周数,请将相差天数除以 7,再使用 INT 向下取整。
因此,=INT((B2-A2)/7) 会告诉您两个日期之间包含多少个完整周。相差 17 天就会得到 2 周。
同样的思路也适用于任何单位:将天数除以相应数值,并根据报表需要进行取整。
=INT((B2-A2)/7)快速检查
测试您对日期差的了解。
回顾:计算两个日期之间的天数
您已经学会了几种测量时间跨度的方法:
=B2-A2给出日期间隔天数(请将较晚日期放在前面);加上1可计算包含首尾日期的天数。- 如果结果单元格显示为日期,请将其重新设置为数字格式。
DATEDIF(start, end, "D"/"M"/"Y")计算完整的天数、月份或年份;非常适合计算年龄和任职期限。NETWORKDAYS计算工作日,并且可以跳过节假日。- 使用
MAX(0, ...)包裹结果,避免得到负的逾期天数。
您已经完成了日期和时间函数课程。
常见问题解答
「计算日期之间的天数」课时是免费的吗?
是的 — 「计算日期之间的天数」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。
「计算日期之间的天数」这节课中我会学到什么?
使用 DATEDIF 和减法查找两个日期之间的间隔 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Excel Formulas Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「计算日期之间的天数」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Excel Formulas Academy 课中编写并运行代码吗?
能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。