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

Excel按Index聚合行:数值求和+文本短横线拼接需求

嘿,这个分组聚合的需求我之前帮同事处理过,给你两个靠谱的方案,看你习惯用哪种👇

先明确下你的需求和数据示例:

原始数据

IndexValueText
A10Text1
A10Text2
B20Text3
C30Text4
B20Text5
B5Text6

期望结果

IndexValueText
A20Text1-Text2
B45Text3-Text5-Text6
C30Text4

方案1:用Power Query(推荐,适合大量数据)

Power Query是Excel自带的工具,处理这种分组聚合超级省心,步骤如下:

  1. 选中你的数据区域(包括表头),点击数据选项卡 → 从表格/区域(弹出对话框时记得勾选「我的表格有标题」)
  2. 进入Power Query编辑器后,选中Index列,点击转换选项卡 → 分组依据
  3. 在分组设置窗口里配置:
    • 分组依据:选择Index
    • 新增第一个分组:列名填Value,操作选「求和」,目标列选Value
    • 点击「添加分组」,新增第二个分组:列名填Text,操作选「连接」,目标列选Text,分隔符输入-
  4. 点击「确定」,再点击主页选项卡 → 关闭并上载,结果就会自动生成在新工作表里!

如果想直接用M代码快速实现,可在Power Query编辑器的高级编辑器里替换成这段(记得把Table1换成你实际的表格名称):

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    GroupedRows = Table.Group(Source, {"Index"}, {{"Value", each List.Sum([Value]), type number}, {"Text", each Text.Combine([Text], "-"), type text}})
in
    GroupedRows

方案2:用Excel公式(适合小批量数据)

如果不想用Power Query,用公式组合也能搞定:

  1. 提取唯一Index值:在空白单元格(比如D2)输入=UNIQUE(A:A),下拉填充得到所有不重复的Index
  2. 计算对应Value总和:在E2输入=SUMIF(A:A, D2, B:B),下拉填充
  3. 合并Text内容:在F2输入=TEXTJOIN("-", TRUE, IF(A:A=D2, C:C, "")),如果是Excel 2019及更早版本,需要按Ctrl+Shift+Enter触发数组公式;Excel 365/2021直接回车就行,因为支持动态数组,下拉填充完成。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:54:29