由于您公式的第一部分正在工作,我刚刚修改了您公式的最后一部分......
=COUNTIFS(Table1[Start surgery];">17:00")+COUNTIFS(Table1[Start surgery];"<09:00")+SUMPRODUCT((WEEKDAY(Table1[Surgery date])=1)+(WEEKDAY(Table1[Surgery date])=7)
其中 1 和 7 相当于周六和周日。
上面公式目前的问题是1700之后和周末0900之前的手术时间被计算了两次!
为了纠正这个问题,所有条件都可以作为一种潜在的解决方案移到 sumproduct 中,你最终会得到:
=SUMPRODUCT((WEEKDAY(Table1[Surgery Date])=1)+(WEEKDAY(Table1[Surgery Date])=7)+(WEEKDAY(Table1[Surgery Date])=MEDIAN(WEEKDAY(Table1[Surgery Date]),2,6))*(Table1[Start surgery]<"09:00")+(WEEKDAY(Table1[Surgery Date])=MEDIAN(WEEKDAY(Table1[Surgery Date]),2,6))*(Table1[Start surgery]>"17:00"))
现在括号计数可能已经关闭,因为我当时没有使用 excel。我们可能遇到的另一个潜在问题是时间问题。您的时间是时间列文本还是格式化为时间显示的数字?这可能涉及将时间比较修改为不同的格式,但公式本身应保持不变。
这里的基本想法是我们将每个条件放在 sumproduct 中。该条件将评估为 TRUE 或 FALSE。如果条件经过数学运算,它将变为 1 表示 TRUE 和 0 表示 FALSE。+ 像 OR 语句一样,* 像 AND 语句一样。