Google Sheets 公式用于计算具有不同开始/结束日期、重叠和间隙的任务的实际总持续时间

2023-12-10

我知道如何使用自定义函数/脚本来完成此操作,但我想知道是否可以使用内置公式来完成。

我有一个带有开始日期和结束日期的任务列表。我想计算实际的工作日数(NETWORKDAYS)花费在所有任务上。

  • 任务天数可能会重叠,因此我不能只计算每项任务花费的天数
  • 任务之间可能存在间隙,因此我无法仅找到第一个开始和最后一个结束之间的差异。

例如,让我们使用这些:

| Task Name | Start Date | End Date   | NETWORKDAYS |
|:---------:|------------|------------|:-----------:|
|     A     | 2019-09-02 | 2019-09-04 |      3      |
|     B     | 2019-09-03 | 2019-09-09 |      5      |
|     C     | 2019-09-12 | 2019-09-13 |      2      |
|     D     | 2019-09-16 | 2019-09-17 |      2      |
|     E     | 2019-09-19 | 2019-09-23 |      3      |

这是视觉上的:

enter image description here

Now:

  • 如果你总计NETWORKDAYS你会得到 15
  • 如果你计算NETWORKDAYS在 2019-09-02 和 2019-09-23 之间,您将获得 16

但实际持续时间是13:

  • A和B有一点重叠
  • B和C之间有差距
  • D和E之间有一个差距

如果我要编写一个自定义函数,我基本上会获取所有日期,对它们进行排序,找到重叠部分并删除它们,并考​​虑间隙。

但我想知道是否有一种方法可以使用内置公式计算实际持续时间?


当然,为什么不呢:

=ARRAYFORMULA(COUNTA(IFERROR(QUERY(UNIQUE(TRANSPOSE(SPLIT(CONCATENATE("×"&
 SPLIT(REPT(INDIRECT("B1:B"&COUNTA(B1:B))&"×", 
 NETWORKDAYS(INDIRECT("B1:B"&COUNTA(B1:B)), INDIRECT("C1:C"&COUNTA(B1:B)))), "×")+
 TRANSPOSE(ROW(INDIRECT("A1:A"&MAX(NETWORKDAYS(B1:B, C1:C))))-1)), "×"))), 
 "where Col1>4000", 0))))

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Sheets 公式用于计算具有不同开始/结束日期、重叠和间隙的任务的实际总持续时间 的相关文章

随机推荐