我一直在开展一个excel项目,其中我有一个项目列表,其中包含我正在搜索的描述字段,在第二个工作表上列出了要搜索相关数字的单词列表。如果我匹配描述中的一个单词,则返回第二个列表中的数字。我实际上在另一篇文章(If string contains word from list, return value adjacent to list value)上找到了答案,但我无法弄清楚如何处理多个匹配。如果可能,我想返回所有可能的匹配。我太新了,不能特别对这个问题发表评论,所以我无法背负。有什么帮助吗?
答案 0 :(得分:0)
将最后的1
更改为COLUMN(A:A)
确保所有其他参考文献都是绝对的:
=IFERROR(INDEX(Sheet1!$B$2:$B$5002,AGGREGATE(15,6,ROW($1:$5001)*SIGN(MATCH("*"&Sheet1!$A$2:$A$50002&"*",$C2,0)), COLUMN(A:A))),"")
将公式放在第一个单元格中,并复制足够的列以获取所有返回值,然后将其余数据集下移。
答案 1 :(得分:0)
这是较常见的INDEX / MATCH公式的变体。通过将SMALL包装在AGGREGATE数组周围,可以识别索引中的每个匹配项。
注意:这是一个数组公式,因此您需要按ctrl + shift + enter,然后将公式向下复制以获取要显示的匹配项数。 (如果遇到#NUM错误,则可能意味着您忘记按Ctrl + Shift + Enter)
{=INDEX($B$2:$B$5002,SMALL(AGGREGATE(15,6,(ROW($A$2:$A$5002) - ROW($A$2)+1 / ISNUMBER(SEARCH("*SEARCH_TEXT_GOES_HERE*",$A$2:$A$5002))),ROW($2:2)),ROWS($2:2)))}
此公式基于公式和解释here。