如何计算日期之间的天数并取平均值

如何计算日期之间的天数并取平均值

我需要帮助创建一个公式。我真的很纠结。

在一张纸上,我有一张如下所示的表格:

            Received     Completed
Request 1   14/01/2020  21/01/2020
Request 2   15/01/2020  17/01/2020
Request 3   16/01/2020  16/01/2020
Request 4   14/01/2020  17/01/2020

在另一张表上,我需要计算完成请求所需的平均天数,不包括周末。请求的数量各不相同,因此我需要此公式在第一张表上添加更多行时自动更新。但此公式不应包括尚未完成的请求(未提供第二个日期)

谢谢!

答案1

使用这个数组公式:

=AVERAGE(IF(C2:C5<>"",NETWORKDAYS(N(IF({1},B2:B5)),N(IF({1},C2:C5)))))

根据版本的不同,退出编辑模式时可能需要使用 Ctrl-Shift-Enter 而不是 Enter 来确认公式。

N(IF({1},创建一个日期数组。 NETWORKDAYS(返回日期之间的工作日数。 IF(C2:C5<>""忽略那些没有完成日期的日期。... AVERAGE嗯,它是平均值。

在此处输入图片描述


使用动态数组公式 FILTER:

=AVERAGE(NETWORKDAYS(FILTER(B2:B5,C2:C5<>""),FILTER(C2:C5,C2:C5<>"")))

注意:FILTER 是动态数组公式的一部分,可通过 Office 365 订阅获得。

答案2

这帮助你实现目标。

在此处输入图片描述

怎么运行的:

注意:

- 由于请求是可变的,并且您需要公式自动更新,因此最好将数据范围转换为表格。

  • F 列列出了假期(您可以添加更多日期)。

请记住,使用 HOLIDAYS 是可选的。

方法 1:

  • 添加新列净天数在表中。
  • 将此公式插入到中D15

=NETWORKDAYS([@Received],[@Completed],F$14)

-如果如果您不想使用HOLIDAYS,那么请使用这个。

=NETWORKDAYS([@Received],[@Completed])

  • 单元格中的公式D21

=AVERAGE(Table1[Net Days])

方法 2(不含节假日):

  • 中的公式D23

    =SUMPRODUCT(Table1[Completed]-Table1[Received])/COUNT(Table1[Completed])
    

您可以调整单元格引用。

相关内容