我有下面的LAMBDA函数创建为一个命名范围(LIST_VALUES);=LAMBDA(range,[ignore_header],LET(filtered,FILTER(range,range<>""),IF(OR(ISOMITTED(ignore_header),NOT(ignore_header)),filtered,INDEX(filtered,SEQUENCE(ROWS(filtered)-1,,2)))))
函数本身完全按照预期工作,然而,当我用ROWS() Package 函数时,当ignore_header标志设置为TRUE时,会出现不一致的行为;
上面的例子突出了这个问题,单元格F8应该等于“3”,和D8一样。
第八批索赔
=ROWS(LAMBDA(range,[ignore_header],LET(filtered,FILTER(range,range<>""),IF(OR(ISOMITTED(ignore_header),NOT(ignore_header)),filtered,INDEX(filtered,SEQUENCE(ROWS(filtered)-1,,2)))))($A:$A,TRUE))
八楼
=ROWS(LIST_VALUES($A:$A,TRUE))
有人知道这是怎么回事吗?我目前正在解决这个问题,方法是将ignore_header设置为false,并从结果中减去1,这样做效果很好,但我真的很想了解这是怎么回事。
1条答案
按热度按时间1l5u6lss1#
我们不能真正地单步执行lambda的内部过程,因此很难精确地指出错误出现的位置(因此内部错误的计数为'1')。但是我建议您将公式简化为:
当 Package 在
ROWS()
中时,我无法检测到任何不一致,例如:=ROWS(LIST_VALUES(A:A,TRUE))
现在对我来说正如预期的那样工作。