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

Excel按SKU跨表INDEX MATCH匹配去重后TEXTJOIN拼接公式求解

表A目标列C公式实现方案

前提约定

提前约定数据范围,你实际使用时替换为自己的表格实际范围即可:

  • 表A工作表名:表A,SKU列为A列(数据行A2:A1000),水果列为B列(数据行B2:B1000),目标C列从C2开始填公式
  • 表B工作表名:表B,水果列为A列(数据行A2:A500),Price Range列为B列(数据行B2:B500)

Microsoft 365/Excel 2021及以上版本公式(支持动态数组)

直接在C2单元格输入以下公式,下拉填充即可:

=TEXTJOIN(", ",TRUE,UNIQUE(INDEX(表B!$B$2:$B$500,MATCH(FILTER(表A!$B$2:$B$1000,表A!$A$2:$A$1000=A2),表B!$A$2:$A$500,0))))

逻辑拆解

  • 第一步用FILTER函数筛选出表A中所有和当前行SKU一致的水果列表
  • 第二步用INDEX+MATCH批量匹配表B中对应水果的Price Range值
  • 第三步用UNIQUE函数对匹配到的价格区间去重
  • 第四步用TEXTJOIN按要求的分隔符拼接结果,参数TRUE会自动忽略匹配不到的空值,不会出现多余的逗号

旧版Excel兼容公式(无动态数组函数)

输入完成后需要按Ctrl+Shift+Enter组合键生效,再下拉填充:

=TEXTJOIN(", ",TRUE,IF(MATCH(INDEX(表B!$B$2:$B$500,MATCH(IF(表A!$A$2:$A$1000=A2,表A!$B$2:$B$1000,""),表B!$A$2:$A$500,0)),INDEX(表B!$B$2:$B$500,MATCH(IF(表A!$A$2:$A$1000=A2,表A!$B$2:$B$1000,""),表B!$A$2:$A$500,0)),0)=ROW(INDIRECT("1:"&COUNTIF(表A!$A$2:$A$1000,A2))),INDEX(表B!$B$2:$B$500,MATCH(IF(表A!$A$2:$A$1000=A2,表A!$B$2:$B$1000,""),表B!$A$2:$A$500,0)),""))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 13:36:09