根据给定的小时数确定天数(不包括周末)

Determine number of days (not including weekend) based on hours given

我有两个重要的详细信息被输入到 excel、table、Job_Start_Date 和 Job_Hours 中(表示完成工作所需的时间)。给定特定的工作时间(例如 7:00am-3:30pm),我需要计算他们将在哪一天和什么时间完成。我已经有了基本的工作原理,但我终其一生都无法弄清楚如何在该计算中跳过周末(请注意,Sat/Sun 有一个布尔值定义是否应该跳过那一天)。

这里是数据的例子
和数据可视化的示例:(DIV 错误是因为员工人数等于 0,请不要介意。)

这是可视化工具中使用的公式(大量索引匹配)

=IFNA(INDEX(INDIRECT(Allocation!$A), MATCH(1,($A3 = INDIRECT(Allocation!$K)) 
  * (C >= INDIRECT(Allocation!$C)) * (C <= INDIRECT(Allocation!$D)) 
  * IF(C = INDIRECT(Allocation!$C), ($B3 >= INDIRECT(Allocation!$E)), 
  ($B3 >= INDIRECT(Allocation!$I))) * IF(C = INDIRECT(Allocation!$D), 
  ($B3 < INDIRECT(Allocation!$F)), ($B3 < INDIRECT(Allocation!$J))), 0)),"")

正如您在图像中看到的那样,需要跳过星期六(即 FALSE),但它仍显示在可视化工具上。但是,如果我包含一个符合星期六条件的语句(因此如果 TRUE 它只在星期六显示),它不会改变结束日期,因此不会将最后一天推到星期一。

本质上的问题是:我怎样才能跳过几天但保留 'working hours'。这必须在同一作业 table(第一张图片)中的 excel 公式中完成。

谢谢。

以下是我使用 WORKDAY.INTL.

实现它的方法

首先是一个嵌套的 IF 以确定 workday.intl 函数使用哪种周末类型

Weekend=IF(OR([@[JOB SATURDAY]], [@[JOB SUNDAY]]), IF(AND([@[JOB SATURDAY]], [@[JOB SUNDAY]]), -1, IF([@[JOB SATURDAY]], 11, 17)), 1)

然后是引用该值的第二个 if 语句,然后吐出正确的日期

=IF([@[Weekend]] = -1, [@[JOB START DATE]]+[@[Working Days]], WORKDAY.INTL([@[JOB START DATE]], [@[Working Days]], [@[Weekend]]))