Excel 公式的异常行为

Excel 公式的异常行为

我设法使以下工作完成:

=IFERROR(INDEX(CUSIP2,SUMPRODUCT(ISNUMBER(SEARCH(CUSIP2,O2))*ROW($2:$5158))),"")

它的作用是将单元格的内容与列表进行对比,如果列表中的单词出现在单元格的任何地方,它就会告诉我这个单词是什么。太棒了!理想情况下,如果单元格中没有匹配项,它还会给我一个空白。这就是我遇到麻烦的地方。

当有匹配项时,它会完美运行。如果没有匹配项,它会抛出一个随机单词,而不是给出空白。例如,它在单元格“银行客户的外拨电汇 - 抵消分录未过账到系统”中给出了 SWPC12374

现在,谜团更加深了。抛出的错误单词总是不同的。抛出的错误单词直接对应于它们在列表中的位置。例如,[WORD 1] 抛在我有方程式的第一个单元格中,它应该是空白的。[WORD 2] 抛在我有方程式的第二个单元格中,它也应该是空白的。等等。[WORD 1] 和 [WORD 2] 是列表 CUSIP2 中的前两个条目,其他错误条目是 CUSIP2 列表中的相应条目。

或者,它们也在同一行。因此,第一个等式出现在第二行,列表中的第一个项出现在第二行。

现在,当我使用公式求解器深入研究它时,它非常巧妙地以 INDEX(CUSIP2,0) 结尾 - 然后抛出错误的单词,iferror 没有捕获它,并且它很高兴地发布错误的单词。

我快要疯了,试图追踪这个错误,但我不明白为什么 excel 会这样做。请帮忙。我的谷歌搜索功能让我失望了(即使我知道搜索这个的正确术语)

答案1

Excel INDEX 不喜欢将 0 作为索引号。以下是与您的描述相符的示例:

Name 'Cups2'    INDEX(cups2,0)  INDEX(cups2,1)
hi              hi              hi
go              go              hi
now             now             hi
three           three           hi
five            five            hi
gal             gal             hi

您可以编辑数据,使 CUSPID2 范围内的第一个条目为“”吗?然后,您可以修改公式,以在索引为 0 时返回第一个条目:

=INDEX(CUSIP2,MAX(1,SUMPRODUCT(ISNUMBER(SEARCH(CUSIP2,O2))*ROW($2:$5158))))

相关内容