在工作表中使用IF时出现不匹配范围错误



我使用下面的公式,得到一个错误"IFS的范围大小不匹配。预期行数:1。列计数:1。实际行计数:2,列计数:2;代码是忽略周六/周日,并在周六/周日的情况下选择周四/周五的高值。

$c$1是当前日期。

有人能帮我调试这个吗

=ifs(weekday($C$1-1,2)=6,GOOGLEFINANCE($S$1,"high",today()-(today()-$C$1+4)),weekday($C$1-1,2)=7,GOOGLEFINANCE($S$1,"high",today()-(today()-$C$1+4)))

问题:

IFS语法为:

IFS(condition1,value1,condition2,value2,...)

重要的是要认识到所有的论点都应该具有相同的大小。相同的行和列。如果不匹配,则抛出

预期行数:1。列计数:1。实际行数:2,列数:2。

这意味着,1x1数组是预期的,但函数得到了2x2数组,它不知道该怎么办。

在这种特定情况下,GOOGLEFINANCE返回一个带有其标头的2x2数组,而WEEKDAY返回一个1x1数组。

解决方案:

将1x1阵列增加到2x2阵列,或将2x2阵列减少到1x1阵列。可以使用像ARRAYFORMULA(IF())IF(SEQUENCE())这样的数组操作来实现递增。可使用INDEX/QUERYFILTER进行递减

代码段:

=ifs(weekday($C$1-1,2)=6,INDEX(GOOGLEFINANCE($S$1,"high",today()-(today()-$C$1+4)),2,2),weekday($C$1-1,2)=7,INDEX(GOOGLEFINANCE($S$1,"high",today()-(today()-$C$1+4)),2,2))

try:

=INDEX(IF(WEEKDAY($C$1-1,2)=6, 
GOOGLEFINANCE($S$1,"high",TODAY()-(TODAY()-$C$1+4)),
IF(WEEKDAY($C$1-1,2)=7, 
GOOGLEFINANCE($S$1,"high",TODAY()-(TODAY()-$C$1+4)), )), 2, 2)

IFS无法工作的原因:https://webapps.stackexchange.com/a/124685/186471

最新更新