首页 > Excel专区 > Excel函数 >

计算两个日期之间的差值

Excel函数 2023-01-13

若要计算两个日期之间的差值,请使用DATEDIF函数。首先将开始日期放入一个单元格,并将结束日期置于另一个单元格。然后键入一个如下所示的公式。

警告: 如果Start_date大于End_date,结果将会是#NUM!。

以天为单位的差值在此示例中,开始日期在单元格D9中,结束日期在E9中。公式在F9中。“d”会返回两个日期之间的完整天数。

以周为单位的差值在此示例中,开始日期在单元格D13中,结束日期在E13中。“d”会返回天数。但请注意结尾处的/7。这会将天数除以7,因为一周有7天。请注意,此结果也需要设置为数值格式。按Ctrl+1。然后单击“数值”>“小数位数:2”。

以月为单位的差值在此示例中,开始日期在单元格D5中,结束日期在E5中。在公式中,“m”会返回两个日期之间的完整月数。

以年为单位的差值在此示例中,开始日期在单元格D2中,结束日期在E2中。“y”会返回两个日期之间的完整年数。

以累积的年数、月数和天数计算年龄还可以计算年龄或某人的服务时间。结果可能类似于“2年,4个月,5天”。

1.使用DATEDIF求得总年数。在此示例中,开始日期在单元格D17中,结束日期在E17中。在公式中,“y”会返回两个日期之间的完整年数。

2.再次使用DATEDIF,并附带“ym”,以求得月数。在另一个单元格中,使用带有“ym”参数的DATEDIF公式。“ym”会返回过去整整一年剩余的月数。

3.使用其他公式求得天数。现在,我们需要求得剩余的天数。我们将通过编写其他类型的公式来实现此目的,如上所示。此公式从单元格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.可选方案:将三个公式合并为一个。可以将所有三个计算放入一个单元格中,如本例所示。使用&符号、引号和文本。这需要输入一个较长的公式,但它至少将所有内容都集中在一起。提示:按ALT+ENTER可在公式中放入换行符。这将使其更易于阅读。此外,如果看不到完整的公式,请按CTRL+SHIFT+U。

下载我们的示例你可以下载包含本文中所有示例的示例工作簿。可以沿用其中的公式,也可以自行创建。下载日期计算示例

其他日期和时间计算

计算当天和其他日期之间的差值如上所述,DATEDIF函数可计算开始日期和结束日期之间的差值。但是,你也可以在公式中使用TODAY()函数,而不是键入具体的日期。当你使用TODAY()函数时,Excel将使用你计算机的当前日期作为日期。请记住,未来某一天再次打开该文件时,该日期将会发生变化。

请注意,在撰写本文时,日期是2016年10月6日。

计算工作日天数(包含或不包含假日)如果要计算两个日期之间的工作日天数,请使用NETWORKDAYS.INTL函数。此外,还可以让其排除周末和假日。

准备阶段:确定是否要排除假日日期。如果要排除,请在单独的区域或工作表中键入假日日期列表。将每个假日日期置于各自的单元格中。然后选择这些单元格,选择“公式”>“定义名称”。将该范围命名为MyHolidays,然后单击“确定”。然后按照下面的步骤创建公式。

1.键入开始日期和结束日期。在此示例中,开始日期在单元格D53中,结束日期在E53中。

2.在另一个单元格中,键入如下公式:键入类似于上述示例的公式。公式中的1将星期六和星期日确立为周末,并从总计中排除。

备注:Excel2007没有NETWORKDAYS.INTL函数。但是,它有NETWORKDAYS。上述示例在Excel2007中会显示为:=NETWORKDAYS(D53,E53)。你不会指定1,因为NETWORKDAYS假定周末为星期六和星期日。

3.如有必要,请更改1。如果星期六和星期日不是周末,则将1更改为IntelliSense列表中的其他数字。例如,2将星期日和星期一确立为周末。

如果你使用的是Excel2007,请跳过此步骤。Excel2007的NETWORKDAYS函数始终假定周末为星期六和星期日。

4.键入假日范围名称。如果你在上面的“准备阶段”部分中创建了假日范围名称,请将其按如下所示在末尾键入。如果没有假日,可省略逗号和MyHolidays。如果你使用的是Excel2007,则上面的示例则改为:=NETWORKDAYS(D53,E53,MyHolidays)。

提示:如果不想引用假日范围名称,还可以改为键入一个范围,如D35:E:39。或者,你可以在公式中键入每个假日。例如,如果你的假日是在2016年1月1日和2日,则应按如下方式键入:=NETWORKDAYS.INTL(D53,E53,1,{“1/1/2016″,”1/2/2016”})。在Excel2007中,则这样显示:=NETWORKDAYS(D53,E53,{“1/1/2016″,”1/2/2016”})

计算经过的时间可以通过从一个时间中减去另一个时间来计算经过的时间。首先将开始时间放入一个单元格,并将结束时间置于另一个单元格。请确保键入完整的时间,包括小时和分钟数,并在AM或PM之前留一个空格。操作方式如下:

1.键入开始时间和结束时间。在此示例中,开始时间在单元格D80中,结束时间在E80中。请确保键入小时和分钟数,并在AM或PM之前留一个空格。

2.设置“h:mmAM/PM”格式。选择这两个日期,然后按CTRL+1(或Mac上的+1)。请确保选择“自定义”>“h:mmAM/PM”(如果尚未设置)。

3.将两个时间相减。在另一个单元格中,从结束时间单元格中减去开始时间单元格。

4.设置“h:mm”格式。按CTRL+1(或Mac上的+1)。选择“自定义”>“h:mm”,以便结果中不包括AM和PM。

计算两个日期和时间之间的经过时间若要计算两个日期和时间之间的时间,只需从一个日期和时间中减去另一个日期和时间。但是,必须对每个单元格应用格式设置,以确保Excel返回所需的结果。

1.键入两个完整的日期和时间。在一个单元格中,键入完整的开始日期/时间。在另一个单元格中,键入完整的结束日期/时间。每个单元格都应包含月、日、年、小时和分钟数,并在AM或PM之前留一个空格。

2.设置“2012-3-141:30PM”格式。选择这两个单元格,然后按CTRL+1(或Mac上的+1)。然后选择“日期”>“2012-3-141:30PM”。这不是你要设置的日期,只是显示格式的示例。请注意,在Excel2016之前的版本中,此格式可能有不同的示例日期,如2001/3/141:30PM。

3.将两者相减。在另一个单元格中,从结束日期/时间中减去开始日期/时间。结果可能会显示为数字和小数。你将在下一步中修复此问题。

4.设置“[h]:mm”格式。按CTRL+1(或Mac上的+1)。选择“自定义”。在“类型”框中,键入“[h]:mm”。

相关主题DATEDIF函数NETWORKDAYS.INTL函数NETWORKDAYS更多日期和时间函数计算两个时间之间的差值


Copyright © 2016-2023 office学习教程网 office.tqzw.net.cn. All Rights Reserved.