我设法使以下工作完成:
=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))))