如何使用索引、匹配和搜索在同一单元格中 return 多个结果

How to return multiple results in the same cell using Index, Match and Search

我有一个有效的索引、匹配、搜索公式,可以在我的产品标题中搜索我在密钥中确定的特定术语,如果没有找到结果,那么它也可以使用不同的密钥搜索我的产品 SKU .

目前,该公式只给我它在我的密钥中找到的第一个结果,但我希望它 return 尽可能多的结果都用竖线或逗号分隔。

这是给我 1 个结果的工作公式。

=IF((ARRAYFORMULA(INDEX('Array Key'!$J:$J,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!$I:$I,$B2)),0))))="",(ARRAYFORMULA(INDEX('Array Key'!$L:$L,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!$K:$K,$A2)),0)))),(ARRAYFORMULA(INDEX('Array Key'!$J:$J,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!$I:$I,$B2)),0)))))

如果我能让它工作,那就太棒了。如果有人希望看到它的工作,这里是我的电子表格副本的 link。请随意进行任何编辑。

https://docs.google.com/spreadsheets/d/1APLCVnqmP51UbimyZeY-S0BoSEuFWkPa2LtAxVX9H0E/edit?usp=sharing

我试过使用以下公式,但效果并不理想。

=IF((ARRAYFORMULA(INDEX('Array Key'!$F:$F,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!$E:$E,$B2)),0))))="",(ARRAYFORMULA(INDEX('Array Key'!$H:$H,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!$G:$G,$A2)),0)))),(ARRAYFORMULA(INDEX('Array Key'!$F:$F,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!$E:$E,$B2)),0)))))&" | "&(ARRAYFORMULA(INDEX('Array Key'!$H:$H,MATCH(TRUE,ISNUMBER(SEARCH('Array Key'!$G:$G,$A2)),0))))

此公式再次搜索第二个键并连接所有结果。但是,我得到了重复项,它仍然只是 return 找到的第一个结果。

如果这样:


那么 D2 单元格将是:

=ARRAYFORMULA(TEXTJOIN(" | ", 1, UNIQUE({
 IFERROR(VLOOKUP(TRANSPOSE(IFERROR(REGEXEXTRACT(SPLIT(B2, " "), 
 TEXTJOIN("|", 1, 'Array Key'!E:E)))), 'Array Key'!E:F, 2, 0));
 IFERROR(VLOOKUP(TRANSPOSE(IFERROR(REGEXEXTRACT(SPLIT(A2, " "), 
 TEXTJOIN("|", 1, 'Array Key'!G:G)))), 'Array Key'!G:H, 2, 0))})))