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

无需VBA 如何通过公式将同产品关联国家值合并到同一单元格

同类别值分组拼接单元格的无VBA实现方案

假设你的原始数据A列为Product、B列为Country,数据范围是A2:B7(和你给出的示例数据范围一致),先在D列手动提取/用UNIQUE(A2:A7)生成去重后的产品列表(AA/BB/CC),根据你使用的Office版本选择对应方案即可:

  • Excel 365/2021、最新版WPS:直接用TEXTJOIN+FILTER组合,在E2单元格输入以下公式回车后向下填充,就能得到和示例完全一致的结果:
    =TEXTJOIN(", ",TRUE,FILTER($B$2:$B$7,$A$2:$A$7=D2))
    公式里第一个参数是拼接用的分隔符(逗号+空格),第二个参数TRUE代表自动跳过空值,FILTER负责匹配出所有和当前行产品对应的国家值。如果不想手动列去重产品,直接在空白单元格输入单条溢出公式,就能一次性生成整张汇总表:
    =HSTACK(UNIQUE(A2:A7),BYROW(UNIQUE(A2:A7),LAMBDA(x,TEXTJOIN(", ",TRUE,FILTER(B2:B7,A2:A7=x)))))
  • Excel 2019:该版本支持TEXTJOIN但没有FILTER函数,在E2输入以下公式后,必须按Ctrl+Shift+Enter三键触发数组计算,再向下填充即可:
    =TEXTJOIN(", ",TRUE,IF($A$2:$A$7=D2,$B$2:$B$7,""))
  • Excel 2016及更早版本:这类版本没有TEXTJOIN函数,不用VBA的话可以用内置的Power Query实现,全程可视化操作不用写代码:
    • 选中原始数据区域,点击「数据」选项卡-「从表格/范围」,将数据导入Power Query编辑器
    • 选中Product列,点击「转换」选项卡-「分组依据」,新列名设置为List of countries,聚合规则选择「所有行」
    • 新增自定义列,输入公式Text.Combine([List of countries][Country], ", ")
    • 删除中间生成的临时行数据列,点击「关闭并上载」即可生成目标汇总表,后续原始数据更新后只需要点刷新就能自动同步汇总结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.20 16:15:48