我有两个重要的细节输入到excel表,Job_Start_Date和Job_Hours(表示完成作业所需的小时数)。鉴于某些工作时间(例如上午7:00至下午3:30),我需要计算他们将完成的日期和时间。我已经有了基本的工作,但是我不能在我的生活中弄清楚如何在该计算中跳过周末(请注意,Sat / Sun有一个布尔值来定义是否应该跳过那一天)。
以下是数据的示例
以及数据可视化的一个示例:( DIV错误是因为员工数等于0,所以不用担心。)
。
这是可视化工具中使用的公式(大规模索引匹配)
=IFNA(INDEX(INDIRECT(Allocation!$A$1), MATCH(1,($A3 = INDIRECT(Allocation!$K$1))
* (C$1 >= INDIRECT(Allocation!$C$1)) * (C$1 <= INDIRECT(Allocation!$D$1))
* IF(C$1 = INDIRECT(Allocation!$C$1), ($B3 >= INDIRECT(Allocation!$E$1)),
($B3 >= INDIRECT(Allocation!$I$1))) * IF(C$1 = INDIRECT(Allocation!$D$1),
($B3 < INDIRECT(Allocation!$F$1)), ($B3 < INDIRECT(Allocation!$J$1))), 0)),"")
正如您在图片中看到的那样,星期六需要被跳过(FALSE
),但它仍然显示在可视化工具上。但是,如果我包含一个与星期六条件匹配的语句(所以它只在TRUE
星期六显示),它不会改变结束日期,因此不会将最后一天推到星期一。
基本上问题是:我怎样才能跳过几天但保留“工作时间”。这必须在同一个Job表(第一张图片)中的excel公式中完成。
感谢。
答案 0 :(得分:0)
以下是我使用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]]))