【发布时间】: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