我使用下面的公式,得到一个错误"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
/QUERY
或FILTER
进行递减
代码段:
=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