You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel:TEXTJOIN搭配XLOOKUP多匹配值拼接出错求助

问题分析与解决方法

错误原因

XLOOKUP 默认只会返回第一个匹配到的结果,你在公式里连续调用两次XLOOKUP,本质只是重复获取同一个Name值,根本没提取到所有符合ID的匹配项,所以只会得到重复的单值。

解决方法

方法1:FILTER + TEXTJOIN(推荐,适用于Excel 365/2021及以上版本)

用FILTER筛选出当前ID对应的所有Name,再通过TEXTJOIN拼接:

=TEXTJOIN(" | ", TRUE, FILTER(Sheet1[Name], Sheet1[ID] = [@[ID]], ""))
  • FILTER负责提取Sheet1中所有与当前ID匹配的Name,返回一个结果数组
  • TEXTJOIN会自动遍历这个数组,用|分隔拼接,TRUE参数会自动忽略空值

方法2:XLOOKUP 数组模式(适用于Excel 365/2021及以上版本)

如果一定要用XLOOKUP,修改最后一个参数让它返回所有匹配项:

=TEXTJOIN(" | ", TRUE, XLOOKUP([@[ID]], Sheet1[ID], Sheet1[Name], "", 0, 1))

最后一个参数1表示返回所有匹配结果(默认是仅返回第一个),这样XLOOKUP会输出包含所有对应Name的数组,再由TEXTJOIN完成拼接。

方法3:兼容旧版Excel(无动态数组功能)

如果用的是没有动态数组的旧版Excel,需要输入数组公式(输入完成后按Ctrl+Shift+Enter确认):

=TEXTJOIN(" | ", TRUE, IF(Sheet1[ID] = [@[ID]], Sheet1[Name], ""))

注意:旧版Excel中TEXTJOIN仅在2019及以上版本可用,若版本更早,可能需要借助辅助列+PHONETIC函数,但对非文本格式内容支持有限。

内容的提问来源于stack exchange,提问作者EA Bubnoff

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 15:30:58