Excel一单元格多个vlookup逗号分隔输入和一单元格多个逗号分隔输出

Excel一单元格多个vlookup逗号分隔输入和一单元格多个逗号分隔输出,excel,vba,vlookup,comma,Excel,Vba,Vlookup,Comma,我对一个单元格中的vlookup多个逗号分隔值和一个单元格中的coma分隔输出有问题 我试图通过函数和修剪文本来完成它,并试图将其拆分到其他工作表中,但没有任何效果 解决此问题是否需要VBA?如果您有Office 365 Excel,则可以使用TEXTJOIN作为数组公式: =TEXTJOIN(", ",TRUE,IFERROR(INDEX(E:E,N(IF({1},MATCH(TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",99)),(ROW($XFD$1:INDEX

我对一个单元格中的vlookup多个逗号分隔值和一个单元格中的coma分隔输出有问题

我试图通过函数和修剪文本来完成它,并试图将其拆分到其他工作表中,但没有任何效果


解决此问题是否需要VBA?

如果您有Office 365 Excel,则可以使用TEXTJOIN作为数组公式:

=TEXTJOIN(", ",TRUE,IFERROR(INDEX(E:E,N(IF({1},MATCH(TRIM(MID(SUBSTITUTE(A2,",",REPT(" ",99)),(ROW($XFD$1:INDEX($XFD:$XFD,LEN(A2)-LEN(SUBSTITUTE(A2,",",""))+1))-1)*99+1,99)),D:D,0)))),""))
作为数组公式,必须在退出编辑模式时使用Ctrl-Shift-enter而不是enter确认



如果您没有Office 365,您可以使用UDF和上面的公式来调用它。

您可以使用以下公式:

=TEXTJOIN(",",TRUE,INDEX($F$2:$F$4,N(IF(1,MATCH(FILTERXML("<t><s>"&SUBSTITUTE(A2,",","</s><s>")&"</s></t>","//s"),$E$2:$E$4,0)))))
=TEXTJOIN(“,”,TRUE,INDEX($F$2:$F$4,N)(如果(1,匹配(FILTERXML(“&SUBSTITUTE(A2,”,“,”),”)&“//s”),$E$2:$E$4,0())))
这是一个数组公式。要输入/确认数组公式,请在按住ctrl+shift键的同时按enter键。如果操作正确,Excel将在公式栏中看到的公式周围放置大括号
{…}


解决此问题是否需要VBA?
这取决于您使用的是Office 365还是更高版本。请显示您尝试过的内容以及获得的结果。另外,请说明您有哪个版本的Excel。我正在使用Excel for O365,所以是最新版本。我尝试从这个页面调整解决方案,但以最好的方式,它只返回一个输出。其他人认为在其他电子表格中拆分和连接数据不起作用,看起来也不聪明。很好的公式。就我个人而言,我会(确实)在那里抛出一个
IFERROR
,以防如果该项不在列表中,它不会对整个公式产生错误。但是OP可能希望它出错。这一个正在工作,但有一个问题,如果只有一个单元格可以查找,那么它是可以的,但是有更多的行,您需要逐个复制并手动执行。@Christoph.O不幸的是,这是什么意思?填好就行了。@ScottCraner谢谢。我想我们两人的基本想法是一样的,但我使用的是不同的函数来分割输入字符串。@Christoph.O很乐意帮忙。还请Scott Craner就处理不匹配项发表评论。如前所述,如果存在任何不匹配项,公式将返回N/A!错误既然我的回答似乎是你所需要的,请注明接受。看见