我有一张Excel工作表,正在阅读Apache POI,其中一个单元格包含以下公式。
replicateM
我已经尝试了互联网上的所有内容。另外,请执行以下操作。
=IFERROR(LOOKUP(2,1/(A3:T3<>"sample"),COLUMN(A3:T3)),9999)
每次它返回我9999的值。而不是实际值11。
答案 0 :(得分:2)
公式
LOOKUP(2,1/(A3:T3<>"sample"),COLUMN(A3:T3))
违反了LOOKUP function的规则。它使用带有lookup_vector 1/(A3:T3<>"sample")
的向量形式,如果#DIV/0!
为假,则生成具有A3:T3<>"sample"
的向量,否则为1
。所以lookup_vector类似于{#DIV/0!,#DIV/0!,#DIV/0!,1,#DIV/0!,#DIV/0!,...}
但是规则明确规定:
重要提示: lookup_vector 中的值必须按升序放置 顺序:...,-2,-1,0,1,2,...,A-Z,FALSE,TRUE;除此以外, LOOKUP 可能无法返回正确的值。大写和小写文本是等效的。
关于错误值,没有任何评论。即使这里可能有错误值,这些错误的“升序”又是什么?
即使对于错误的公式,Excel
本身也会产生结果是一回事。但是您不能期望其他软件也会产生违反给定规则的公式的结果。