Excel中如何动态分类汇总和求占比?五个函数教会你,1秒搞定
- 2026-09-20 17:05:43

=DROP(GROUPBY(TRIMRANGE(D4:D250),TRIMRANGE(F4:F250),HSTACK(SUM,PERCENTOF),,0,1),1)
2 函数
第一步:动态范围提取 (TRIMRANGE)
TRIMRANGE(D4:D250):提取“产品大类”列的范围,并自动剔除开头和结尾的空白单元格,防止空行干扰后续计算(比直接用D4:D250更智能、高效)。

TRIMRANGE(F4:F250):同理,提取“销售额(万)”列的有效数据范围。
第二步:堆叠聚合函数 (HSTACK)
HSTACK(SUM, PERCENTOF):将两个聚合函数水平拼接在一起。
SUM:对每组(产品大类)的销售额进行求和。
PERCENTOF(新函数):自动计算每组销售额占整体总销售额的百分比(即总和占比)。
第三步:核心分组与排序 (GROUPBY)
GROUPBY(行字段, 值, 函数, , 0, 1)
前三个参数是:用 D列(产品大类)作为分组依据,对 F列(销售额)执行上一步的“求和+占比”计算。
第4个参数 ,(空):代表表头自动检测(默认)。
第5个参数 0:total_depth=0,代表不显示总计行。
第6个参数 1:sort_order=1,代表按第一个聚合结果(即SUM出来的总销售额)进行降序排列(所以电子产品765万排在最前面)。
第四步:剔除表头 (DROP)
DROP(..., 1):因为 GROUPBY 生成结果时,会自动带上一行表头(如“产品大类”、“SUM”、“PERCENTOF”)。这个 1 就是命令 Excel 删除结果的第一行(表头行)。
注意: 因为公式写在 H4 单元格,所以删除表头后,真正的数据“电子产品、765、73.21%”就直接成了结果数组的第一行,完美填满 H4、I4、J4,并向右向下溢出(Spill),后续“服装”、“食品”数据自动排列在 H5、H6 中。
总结
整个公式的逻辑就是:“剔除空白行 → 按产品大类分组 → 计算总销售额和占比 → 按销售额降序排列 → 删掉自动生成的表头行”。最终实现了图片中清晰清爽的汇总结果。