【问题标题】:Excel one cell multiple vlookup comma separated inputs and one cell multiple comma separeted outputExcel 一个单元格多个 vlookup 逗号分隔输入和一个单元格多个逗号分隔输出
【发布时间】:2019-06-27 18:27:44
【问题描述】:

我在一个单元格中查找多个逗号分隔值和一个单元格中的逗号分隔输出时遇到问题。

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

解决这个问题需要 VBA 吗?

【问题讨论】:

  • Is the VBA necessary to solve this problem? 这取决于您是否拥有 Office 365 或更高版本。
  • 请展示您尝试过的内容以及获得的结果。另外,请说明您拥有的 Excel 版本。
  • 我使用 Excel for O365,所以是最新的。我试图从这个页面mrexcel.com/forum/excel-questions/… 调整解决方案,但以最好的方式它只返回一个输出。其他人认为拆分和连接其他电子表格中的数据不起作用,而且看起来也不聪明。

标签: excel vba vlookup comma


【解决方案1】:

你可以使用这个公式:

=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)))))

这是一个数组公式。要输入/确认一个数组公式,请按住ctrl + shift,同时点击enter。如果您正确执行此操作,Excel 将在公式栏中看到的公式周围放置大括号 {...}

【讨论】:

  • 不错的公式。就个人而言,我会(确实)在那里抛出一个IFERROR,以防如果该项目不在列表中,它不会使整个公式出错。但也许 OP 希望它出错。
  • 这个工作正常,但有一个问题,如果只有一个单元格要查找,那没关系,但不幸的是,如果有更多行,您需要复制并手动逐一进行。
  • @Christoph.O 你是什么意思?只需填写。
  • @ScottCraner 谢谢。我认为我们都有相同的基本思想,但我使用不同的函数来拆分输入字符串。
  • @Christoph.O 很高兴为您提供帮助。也请斯科特克兰纳关于处理不匹配的评论。如所写,如果有 ANY 不匹配,则公式将返回 N/A! 错误。由于我的回答似乎是您所需要的,请将其标记为已接受。见What should I do when someone answers my question
【解决方案2】:

如果您有 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 HERE 和上面的公式来调用它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多