Excel提取Code与POBox唯一组合并汇总Time和Volume的方法
解决Excel提取唯一组合并求和的方案
方法一:数据透视表(最快捷直观)
- 选中原始数据表的全部数据区域(包含表头)
- 点击「插入」选项卡 → 「数据透视表」,选择结果放置的位置(比如新建工作表)
- 在数据透视表字段面板中:
- 把「Code」和「POBox」拖入「行」区域,自动生成两者的唯一组合
- 把「Time」和「Volume」拖入「值」区域,默认就是求和计算,若需调整可右键值字段→「值字段设置」选择「求和」
- 完成后直接得到符合要求的结果,无需手动写公式
方法二:动态数组函数(Excel 365/2021及以上版本适用)
假设原始数据在Sheet1,表头为:A列=Code,B列=POBox,C列=Time,D列=Volume。在新工作表中操作:
- 提取唯一组合:在新表A2单元格输入公式,自动溢出所有唯一组合:
=UNIQUE(Sheet1!A2:B100)
注:把100替换成你实际的数据总行数,也可直接用Sheet1!A:B,但限定范围更高效
对应求和:
- 在新表C2单元格输入Time求和公式,回车后自动溢出所有结果:
=SUMIFS(Sheet1!C:C,Sheet1!A:A,A2,Sheet1!B:B,B2)- 在新表D2单元格输入Volume求和公式:
=SUMIFS(Sheet1!D:D,Sheet1!A:A,A2,Sheet1!B:B,B2)一键生成完整结果(进阶写法):用
LET函数一次性输出所有内容,在新表A2输入:
=LET( 唯一组合, UNIQUE(Sheet1!A2:B100), Time求和, BYROW(唯一组合, LAMBDA(x, SUMIFS(Sheet1!C:C,Sheet1!A:A,INDEX(x,1),Sheet1!B:B,INDEX(x,2)))), Volume求和, BYROW(唯一组合, LAMBDA(x, SUMIFS(Sheet1!D:D,Sheet1!A:A,INDEX(x,1),Sheet1!B:B,INDEX(x,2)))), HSTACK(唯一组合, Time求和, Volume求和) )
这个公式会直接生成包含唯一组合、Time求和、Volume求和的完整表格,自动适配行数。
内容的提问来源于stack exchange,提问作者PapaPinkMIst
相关产品推荐
相关产品推荐

