首页 > 解决方案 > 如何匹配逗号分隔的列表然后使用索引在excel中获取逗号分隔的结果

问题描述

我查了一下表:

一种
一种 苹果
香蕉

我有列

一种
一种
甲,乙

我喜欢结果显示为

一种
一种 苹果
甲,乙 苹果、香蕉
香蕉

标签: excelindexingmatchvlookup

解决方案


要使用公式执行此操作,必须具有可在 Office365 和 Excel 2019 中使用的 TEXTJOIN。

=TEXTJOIN(", ",TRUE,VLOOKUP(FILTERXML("<a><b>"&SUBSTITUTE(D1,",","</b><b>")&"</b></a>","//b"),A:B,2,FALSE))

在此处输入图像描述

如果没有 TEXTJOIN,则需要 vba 或许多辅助列。

使用 vba 可以创建一个 TEXTJOIN 外观。请参阅此处

我们还需要转换到 INDEX MATCH:

=TEXTJOIN(", ",TRUE,INDEX(B:B,N(IF({1},MATCH(FILTERXML("<a><b>"&SUBSTITUTE(D1,",","</b><b>")&"</b></a>","//b"),A:A,0)))))

这需要在退出编辑模式时使用 Ctrl-Shift-Enter 而不是 Enter 来确认。

在此处输入图像描述


推荐阅读