样本sheet链接。第36行有关公式。
下面的公式按预期工作(样本的绿色背景)。
=ArrayFormula(IF(ISNUMBER(X_Data),IF(X_Data>VLOOKUP(X_Dates,X_Times,2,TRUE),INT(24*4*(X_Data-VLOOKUP(X_Dates,X_Times,2,TRUE))),0),0))
虽然下面的公式(添加了简单的SWITCH)不起作用(样本上的红色背景)。
=ArrayFormula(IF(ISNUMBER(X_Data),IF(X_Data>VLOOKUP(X_Dates,X_Times,2,TRUE),SWITCH(INT(24*4*(X_Data-VLOOKUP(X_Dates,X_Times,2,TRUE))),1,10,100),0),0))
第二个公式给出一个#VALUE错误消息“函数MINUS参数1期望数值。但'审计'是一个文本,不能强制转换为数字。”但是当我读到它时,所有文本值都不应该到达SWITCH语句,这可以通过第一个按预期工作的公式来确认。
我开始认为这是Sheets / SWITCH中的BUG。
注意:我可以使用嵌套的IF语句获得我的预期结果,但这使得公式非常复杂,所以我尝试使用SWITCH,因为它只在条件中引用“数据块”一次。
SWITCH()
,IFS()
,SUMIFS()
和其他类似的S
函数在ARRAYFORMULA()
中不起作用。