如何匹配逗号分隔列表然后使用索引在 excel 中获取逗号分隔结果
How to match comma separated list then use index to get comma separated result in excel
我查了table:
A
B
A
Apple
B
Banana
我的列为
A
A
A,B
B
我喜欢结果显示为
A
B
A
Apple
A,B
Apple, Banana
B
Banana
要使用公式执行此操作,必须具有 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 look-a-like。一个见。
我们还需要转换为索引匹配:
=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 来确认。
我查了table:
A | B |
---|---|
A | Apple |
B | Banana |
我的列为
A |
---|
A |
A,B |
B |
我喜欢结果显示为
A | B |
---|---|
A | Apple |
A,B | Apple, Banana |
B | Banana |
要使用公式执行此操作,必须具有 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 look-a-like。一个见
我们还需要转换为索引匹配:
=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 来确认。