计算两个日期之间的差值
若要计算两个日期之间的差值,请使用 DATEDIF 函数。 首先将开始日期放入一个单元格,并将结束日期置于另一个单元格。 然后键入一个如下所示的公式。
警告: 如果 Start_date 大于 End_date,结果将会是 #NUM!。
以天为单位的差值
![=DATEDIF(D9,E9,"d"),结果为 856](https://support.content.office.net/zh-cn/media/22c08e15-d2ea-48e7-bcd1-976acc7ca817.png)
在此示例中,开始日期在单元格 D9 中,结束日期在 E9 中。 公式在 F9 中。 “d” 会返回两个日期之间的完整天数。
以周为单位的差值
![=(DATEDIF(D13,E13,"d")/7) 并且结果为:122.29](https://support.content.office.net/zh-cn/media/41e28163-d081-4314-8464-054d018b9cd3.png)
在此示例中,开始日期在单元格 D13 中,结束日期在 E13 中。 “d” 会返回天数。 但请注意结尾处的 /7。 这会将天数除以 7,因为一周有 7 天。 请注意,此结果也需要设置为数值格式。 按 Ctrl + 1。 然后单击“数值”>“小数位数:2”。
以月为单位的差值
![=DATEDIF(D5,E5,"m") 并且结果为:28](https://support.content.office.net/zh-cn/media/21601e88-a749-4eaf-8eb2-3599512a4ef2.png)
在此示例中,开始日期在单元格 D5 中,结束日期在 E5 中。 在公式中,“m” 会返回两个日期之间的完整月数。
以年为单位的差值
![=DATEDIF(D2,E2,"y") 并且结果为:2](https://support.content.office.net/zh-cn/media/af258eaf-039e-4f72-a5ac-e686b25ff131.png)
在此示例中,开始日期在单元格 D2 中,结束日期在 E2 中。 “y” 会返回两个日期之间的完整年数。
以累积的年数、月数和天数计算年龄
还可以计算年龄或某人的服务时间。 结果可能类似于“2 年,4 个月,5 天”。
1.使用 DATEDIF 求得总年数。
![=DATEDIF(D17,E17,"y") 并且结果为:2](https://support.content.office.net/zh-cn/media/21f608e6-6d77-4f8b-8d3c-c1e159376e31.png)
在此示例中,开始日期在单元格 D17 中,结束日期在 E17 中。 在公式中,“y” 会返回两个日期之间的完整年数。
2.再次使用 DATEDIF,并附带 “ym”,以求得月数。
![=DATEDIF(D17,E17,"ym") 并并且结果为:4](https://support.content.office.net/zh-cn/media/4833a113-7df4-406b-b7ce-87cced7e6cf0.png)
在另一个单元格中,使用带有 “ym” 参数的 DATEDIF 公式。 “ym” 会返回过去整整一年剩余的月数。
3.使用其他公式求得天数。
![=DATEDIF(D17,E17,"md") 并且结果为:5](https://support.content.office.net/zh-cn/media/a50cd076-9f82-47e6-83a5-6f408a682f84.png)
现在,我们需要求得剩余的天数。 我们将通过编写其他类型的公式来实现此目的,如上所示。 此公式从单元格 E17 中的原始结束日期 (5/6/2016) 减去当月第一天 (5/1/2016)。 其原理如下:首先,DATE 函数会创建日期 5/1/2016。 DATE 函数使用单元格 E17 中的年份和单元格 E17 中的月份创建日期。 1 表示该月的第一天。 DATE 函数的结果是 5/1/2016。 然后,从单元格 E17 中的原始结束日期(即 5/6/2016)减去该日期。 5/6/2016 减 5/1/2016 得 5 天。
警告: 不建议使用 DATEDIF "md" 参数,因为它可能会得出不准确的计算结果。
4.可选方案:将三个公式合并为一个。
![=DATEDIF(D17,E17,"y")&" years,"&DATEDIF(D17,E17,"ym")&" months,"&DATEDIF(D17,E17,"md")&" days" 并且结果为:2 年,4 个月,5 天](https://support.content.office.net/zh-cn/media/b26bb985-8951-4acb-a4b3-4694d6891596.png)
可以将所有三个计算放入一个单元格中,如本例所示。 使用 & 符号、引号和文本。 这需要输入一个较长的公式,但它至少将所有内容都集中在一起。 提示: 按 ALT + ENTER 可在公式中放入换行符。 这将使其更易于阅读。 此外,如果看不到完整的公式,请按 CTRL+SHIFT+U。
下载我们的示例
你可以下载包含本文中所有示例的示例工作簿。 可以沿用其中的公式,也可以自行创建。
下载日期计算示例
其他日期和时间计算
如上所述,DATEDIF 函数可计算开始日期和结束日期之间的差值。 但是,你也可以在公式中使用 TODAY() 函数,而不是键入具体的日期。 当你使用 TODAY() 函数时,Excel 将使用你计算机的当前日期作为日期。 请记住,未来某一天再次打开该文件时,该日期将会发生变化。
![=DATEDIF(TODAY(),D28,"y") 并且结果为:984](https://support.content.office.net/zh-cn/media/e2f04bef-aff8-4a37-904f-09e0bdab2f22.png)
请注意,在撰写本文时,日期是 2016 年 10 月 6 日。
如果要计算两个日期之间的工作日天数,请使用 NETWORKDAYS.INTL 函数。 此外,还可以让其排除周末和假日。
准备阶段:确定是否要排除假日日期。 如果要排除,请在单独的区域或工作表中键入假日日期列表。 将每个假日日期置于各自的单元格中。 然后选择这些单元格,选择“公式”>“定义名称”。 将该范围命名为 MyHolidays,然后单击“确定”。 然后按照下面的步骤创建公式。
1.键入开始日期和结束日期。
![单元格 D53 中的开始日期为 2016-1-1,结束日期在单元格 E53 中,为 2016-12-31](https://support.content.office.net/zh-cn/media/d1e0e05b-2c7c-4d8e-9e33-f65324010df9.png)
在此示例中,开始日期在单元格 D53 中,结束日期在 E53 中。
2.在另一个单元格中,键入如下公式:
![=NETWORKDAYS.INTL(D53,E53,1) 并且结果为:261](https://support.content.office.net/zh-cn/media/e79cbb20-9c72-4fa5-9b40-d7a7756bc2ea.png)
键入类似于上述示例的公式。 公式中的 1 将星期六和星期日确立为周末,并从总计中排除。
3.如有必要,请更改 1。
![显示“2 - 星期日、星期一”、“3 - 星期一、星期二”等的 IntelliSense 列表](https://support.content.office.net/zh-cn/media/3c049208-0c7a-4cb8-8a92-b537cedaa3e0.png)
如果星期六和星期日不是周末,则将 1 更改为 IntelliSense 列表中的其他数字。 例如,2 将星期日和星期一确立为周末。
4.键入假日范围名称。
![=NETWORKDAYS.INTL(D53,E53,1,MyHolidays) 并且结果为:252](https://support.content.office.net/zh-cn/media/e9b593bd-3572-4f29-821e-ff8d2bc00db4.png)
如果你在上面的“准备阶段”部分中创建了假日范围名称,请将其按如下所示在末尾键入。 如果没有假日,可省略逗号和 MyHolidays。
可以通过从一个时间中减去另一个时间来计算经过的时间。 首先将开始时间放入一个单元格,并将结束时间置于另一个单元格。 请确保键入完整的时间,包括小时和分钟数,并在 AM 或 PM 之前留一个空格。 操作方式如下:
1. 键入开始时间和结束时间。
![开始日期/时间为 7:15 AM,结束日期/时间为 4:30 PM](https://support.content.office.net/zh-cn/media/264d7550-4780-4e40-a2c0-cc28b6844eb1.png)
在此示例中,开始时间在单元格 D80 中,结束时间在 E80 中。 请确保键入小时和分钟数,并在 AM 或 PM 之前留一个空格。
2.设置“h:mm AM/PM”格式。
![“设置单元格格式”对话框,“自定义”命令,“h:mm AM/PM”类型](https://support.content.office.net/zh-cn/media/c2821d36-c171-4ebe-b39b-f69c7d6b9550.png)
选择这两个日期,然后按 CTRL + 1(或 Mac 上的
3.将两个时间相减。
![=E80-D80 并且结果为:上午 9:15](https://support.content.office.net/zh-cn/media/1b57ad7b-7aef-440b-a626-d76a6d4b975b.png)
在另一个单元格中,从结束时间单元格中减去开始时间单元格。
4.设置“h:mm”格式。
![“设置单元格格式”对话框,“自定义”命令,“h:mm”类型](https://support.content.office.net/zh-cn/media/f6de02dc-36da-422e-b44d-3b00dcfa36c4.png)
按 CTRL + 1(或 Mac 上的
若要计算两个日期和时间之间的时间,只需从一个日期和时间中减去另一个日期和时间。 但是,必须对每个单元格应用格式设置,以确保 Excel 返回所需的结果。
1.键入两个完整的日期和时间。
![开始日期为 2016-1-1 1:00 PM;结束日期为 2016-1-2 2:00 PM](https://support.content.office.net/zh-cn/media/7f847dbd-fe5b-4121-9343-ce41d3e1a82d.png)
在一个单元格中,键入完整的开始日期/时间。 在另一个单元格中,键入完整的结束日期/时间。 每个单元格都应包含月、日、年、小时和分钟数,并在 AM 或 PM 之前留一个空格。
2.设置“2012-3-14 1:30 PM”格式。
![“设置单元格格式”对话框,“日期”命令,“2012-3-14 1:30 PM”类型](https://support.content.office.net/zh-cn/media/bd843a18-f891-4ece-a637-70b6f903ea60.png)
选择这两个单元格,然后按 CTRL + 1(或 Mac 上的
3.将两者相减。
![=E84-D84 并且结果为 1.041666667](https://support.content.office.net/zh-cn/media/8061bf97-0ef4-47d3-8c18-422dd3ee5434.png)
在另一个单元格中,从结束日期/时间中减去开始日期/时间。 结果可能会显示为数字和小数。 你将在下一步中修复此问题。
4.设置“[h]:mm”格式。
![“设置单元格格式”对话框,“自定义”命令,“[h]:mm”类型](https://support.content.office.net/zh-cn/media/2edbd461-d4c5-49a7-a5a2-b6d9329c0411.png)
按 CTRL + 1(或 Mac 上的
相关主题
DATEDIF 函数
NETWORKDAYS.INTL 函数
NETWORKDAYS
更多日期和时间函数
计算两个时间之间的差值