【问题标题】:Excel formula to lookup a table from another table with comma separated outputExcel 公式以逗号分隔的输出从另一个表中查找表
【发布时间】:2022-11-03 02:44:36
【问题描述】:

我正在尝试获取一个从另一个表中查找信息并使用逗号分隔值填充输出的公式。如下所示,我想用表 1 中的信息填充表 2 中的 D 列。所需的输出在 E 列中。我想出了这个公式,但它只是每人拉一个城市。

TEXTJOIN(", ",,INDEX('表 1'!B:B,MATCH(FILTERXML(""&SUBSTITUTE(C3,",","")&"","//m"),'表 1' !A:A,0)))

【问题讨论】:

  • 在 MATCH 中切换第一个和第二个条件并将范围限制为数据并使用 FILTER 而不是 INDEX。:TEXTJOIN(", ",,FILTER('Table 1'!B$2:B$9,ISNUMBER(MATCH('Table 1'!A$2:A$9,FILTERXML(""&SUBSTITUTE(C3,",","")&"","//m"),0))))
  • @ScottCraner 先生,我已经尝试过使用FILTERXML() 和TEXTSPLIT() 两者都可以,但你知道我没有得到OP 发布的序列。你也遇到这种情况吗
  • @ScottCraner,这对我不起作用。我不断收到#calc 错误。另外,请注意,如果未定义范围会更好。也就是说,A:A 而不是 A2:A9。这样,如果将新行添加到表 1 中,我就不必修改公式。想法?
  • @SammieDave 正如先生所发布的那样,它有效,除非有别的东西,=TEXTJOIN(", ",,FILTER($B$3:$B$9,ISNUMBER(MATCH($A$3:$A$9,FILTERXML("<m><b>"&SUBSTITUTE(F3,", ","</b><b>")&"</b></m>","//b"),0)))) 或 =ARRAYTOTEXT(FILTER($B$3:$B$9,ISNUMBER(MATCH($A$3:$A$9,TEXTSPLIT(F3,,", ",1),0))))
  • @SammieDave 如果您没有定义范围,那么我会要求您使用Table Structure Reference,您不必在公式中定义范围,因为它不会在您的公式中考虑空白单元格,这会降低 excel 引擎速度

标签: excel excel-formula


【解决方案1】:

供您参考,您可以看到下面的屏幕截图,


解决方案发布者Scott Craner先生使用FILTERXML()

• 单元格G8 中使用的公式

=TEXTJOIN(", ",,FILTER($B$3:$B$9,ISNUMBER(MATCH($A$3:$A$9,FILTERXML("<m><b>"&SUBSTITUTE(F3,", ","</b><b>")&"</b></m>","//b"),0)),""))

笔记:根据一个人的 Excel 版本,这可能需要键入CTRL+转移+进入退出编辑模式时,而不是 Enter。


也许,如果您使用的是 MS365,那么您也可以使用 ARRAYTOTEXT() 和 TEXTSPLIT(),


• 单元格G3 中使用的公式

=ARRAYTOTEXT(FILTER($B$3:$B$9,ISNUMBER(MATCH($A$3:$A$9,TEXTSPLIT(F3,,", ",1),0)),""))

请根据您的西装更改单元格范围/工作表首选项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-13
    • 2020-12-06
    • 2019-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-14
    相关资源
    最近更新 更多