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

如何用Excel经典公式(无宏/DAX)按Key去重汇总批次并拼接

Excel按Key聚合批次及数量纯公式实现方案

实现逻辑

无需宏、无需DAX,仅用原生Excel公式即可实现需求,核心逻辑分两步:

  1. 针对目标Key匹配到的所有记录,先对批次号去重,避免同批次重复展示
  2. 按去重后的批次分组求和,计算每个批次在当前Key下的总数量,最后拼接为要求的格式输出

具体公式

假设数据源结构为:

  • A列:Key值列
  • B列:批次号列
  • C列:单位数量列
  • 待匹配的目标Key存放在M4单元格,结果输出到N4单元格
    直接在N4输入以下公式即可:
=TEXTJOIN(", ",TRUE,UNIQUE(FILTER(B$2:B$1000,A$2:A$1000=M4))&"("&SUMIFS(C$2:C$1000,A$2:A$1000,M4,B$2:B$1000,UNIQUE(FILTER(B$2:B$1000,A$2:A$1000=M4)))&")")

公式中A$2:A$1000/B$2:B$1000/C$2:C$1000请替换为你实际的数据源范围,不要直接引用整列以提升计算效率。


公式各段作用说明

  • FILTER(B$2:B$1000,A$2:A$1000=M4):筛选出当前目标Key对应的所有批次号,包含重复值
  • UNIQUE():对筛选出的批次号做去重处理,保证每个批次仅出现一次
  • SUMIFS(...):针对每一个去重后的批次,统计当前Key下该批次的所有数量之和,自动合并同批次的多条记录数量
  • 字符串拼接段:将批次号和括号包裹的汇总数量拼接为批次号(数量)的标准格式
  • TEXTJOIN(", ",TRUE,...):将所有拼接完成的批次字符串用逗号+空格连接为最终结果,自动跳过空值

低版本适配说明

如果你使用的是Excel 2019及更早不支持动态数组函数的版本,可以通过辅助列实现:

  1. 在辅助列第一行输入公式提取当前Key下的第一个不重复批次:=INDEX(B:B,MATCH(0,IF(A$2:A$1000=M4,COUNTIF(D$1:D1,B$2:B$1000),""),0)+1),按Ctrl+Shift+Enter三键结束数组公式,下拉直到出现错误值
  2. 在相邻辅助列用SUMIFS计算每个辅助列批次的总数量
  3. 最后用TEXTJOIN(2019版支持该函数)拼接结果即可

效果验证

针对同Key下两条LOT1、单条数量15的场景,公式会自动去重得到单个LOT1,汇总数量为30,最终输出LOT1(30),不会出现重复展示批次的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 01:24:23