EXCEL -LAMBDA函数的异常行为

w8biq8rn  于 2023-01-27  发布在  其他
关注(0)|答案(1)|浏览(185)

我有下面的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,这样做效果很好,但我真的很想了解这是怎么回事。

1l5u6lss

1l5u6lss1#

我们不能真正地单步执行lambda的内部过程,因此很难精确地指出错误出现的位置(因此内部错误的计数为'1')。但是我建议您将公式简化为:

=LAMBDA(range,[ignore_header],DROP(TOCOL(range,3),OR(ISOMITTED(ignore_header),NOT(ignore_header))))

当 Package 在ROWS()中时,我无法检测到任何不一致,例如:=ROWS(LIST_VALUES(A:A,TRUE))现在对我来说正如预期的那样工作。

相关问题