Mahesh可以弄清楚如何计算以分钟为单位的两个日期和时间之间的时差。但是,他想以分钟为单位计算差异,但不包括5:00 pm至8:00 am之间的小时数,也不包括周五5:00 pm至星期一8:00 am之间的所有时间。例如,如果第一个日期是02/18/09 6:00 pm,结束日期是02/19/09 9:00 am,则正确的结果应该是60分钟。 Mahesh怀疑这是否可以与公式有关。

显而易见,实现所需结果的公式可能非常复杂。许多用户提供了不同的解决方案,包括一些出色的用户定义功能。我认为,与其专注于所有这些,不如直接跳到最优雅(最短)的公式并建议使用它。

假设您的开始日期/时间在单元格A1中,而结束日期/时间在单元格B1中。鉴于这些,您可以使用以下公式:

=(NETWORKDAYS(A1,B1)-1)*("17:00"-"08:00")

+IF(NETWORKDAYS(B1,B1),MEDIAN(MOD(B1,1),"17:00"

,"08:00"),"17:00")-MEDIAN(NETWORKDAYS(A1,A1)

* MOD(A1,1),"17:00","08:00")

这是一个公式。它返回经过的时间。这意味着您将需要格式化单元格以显示经过的时间。如果您希望将结果作为正整数,则应使用此版本的公式,而不是:

=((NETWORKDAYS(A1,B1)-1)*("17:00"-"08:00")

+IF(NETWORKDAYS(B1,B1),MEDIAN(MOD(B1,1),"17:00"

,"08:00"),"17:00")-MEDIAN(NETWORKDAYS(A1,A1)

MOD(A1,1),"17:00","08:00"))1440

更改(将原始结果乘以1440)将导致数分钟而不是经过的时间。通过将60乘以24得到一天中的分钟数,得出1440。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(5399)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: