博主头像

别再只用透视表!7个Excel GROUPBY新技巧

外来客 • 2026-08-27 02:57:28

分享
𝕏 f
声明:本文为对公开内容的摘要整理, 未经本站独立核实,可能与原内容存在出入,不代表本站立场、观点或建议; 观点与版权归原作者及原平台所有。 如涉及版权问题,请联系我们,核实后立即删除。 [ 免责声明 ]

(原标题:Stop Using Pivot Tables! 7 New Excel GROUPBY Tricks)

📊 基础功能与动态优势

  • 核心观点:Excel 的 `GROUPBY` 函数不仅限于简单数据分组,其功能远超传统透视表,支持动态更新且计算选项更丰富。
  • 关键事实
  • 相比透视表,`GROUPBY` 提供更多内置函数,包括中位数(Median)和众数(Mode)。
  • 支持通过 Lambda 函数创建自定义计算逻辑。
  • 基础用法示例:对“部门”和“产品”进行分组,计算“销售额”总和,并自动显示总计行。
  • 可选参数丰富,包括显示/隐藏表头、控制总计行显示、排序及过滤数据。

🔗 非相邻列分组技巧

  • 核心观点:当需要分组的列在表格中不相邻时,直接选择会报错,需借助 `HSTACK` 函数进行水平堆叠。
  • 操作步骤
  • 错误做法:在 `GROUPBY` 中直接通过分隔符选择非相邻列,会导致参数错位。
  • 正确做法:在 `GROUPBY` 的行字段参数中嵌套 `HSTACK` 函数。
  • 具体操作:在 `HSTACK` 中依次选择第一个目标列(如部门)和第二个目标列(如销售经理),中间用分隔符隔开。
  • 结果:成功实现按非相邻列(部门 + 销售经理)分组并计算销售额总和。

📈 同列多指标聚合

  • 核心观点:可以对同一数值列应用多种不同的聚合函数,并在结果中并排显示。
  • 关键事实
  • 使用 `HSTACK` 函数包裹多个聚合函数作为 `GROUPBY` 的函数参数。
  • 示例组合:同时计算销售额的总和(Sum)、平均值(Average)、中位数(Median)以及占比(Percent of Total)。
  • 注意事项:由于底层单元格格式影响,结果列可能需要手动调整数字格式以符合显示需求。

🔢 唯一值计数(Distinct Count)

  • 核心观点:Excel 原生无“去重计数”函数,但可通过 Lambda 函数自定义实现。
  • 操作步骤
  • 定义 Lambda 函数:参数设为 `A`,计算逻辑为 `COUNTA(UNIQUE(A))`。
  • 应用:在 `GROUPBY` 的函数参数中调用该自定义 Lambda。
  • 结果:成功统计每个部门下的唯一产品数量(例如:Health 部门有 6 种不同产品,Productivity 部门有 3 种,总计 14 种)。
  • 注意:需正确设置表头参数以避免将标题行计入统计。

🎨 总计行格式化策略

  • 核心观点:总计行的位置固定与否决定了格式化方式,需根据需求选择静态或动态方案。
  • 关键事实
  • 静态方案:利用 `TOTAL_DEPTH` 参数将总计行移至顶部,位置固定后可直接应用常规格式(如加粗、边框)。
  • 动态方案:若总计行保持在底部且数据量可能变化,应使用条件格式。
  • 动态操作:新建基于公式的规则,公式判断单元格内容是否等于 "Total",并设置字体加粗及顶部边框,确保新增数据时格式自动适配。

📅 按月份名称排序

  • 核心观点:直接提取月份名称会导致按字母顺序排序而非时间顺序,需引入月份数字辅助排序。
  • 操作步骤
  • 问题:使用 `TEXT` 函数提取月份名称(如 "Jan", "Feb")后,`GROUPBY` 默认按字母排序,导致 1 月、2 月、10 月顺序混乱。
  • 解决方案:在 `HSTACK` 中同时提取年份、月份数字(`MONTH` 函数)和月份名称。
  • 隐藏辅助列:使用 `CHOOSE` 函数从结果数组中仅选取需要的列(如第 1、3、4 列),隐藏月份数字列。
  • 结果:数据按年份和月份时间顺序正确排列,且界面仅显示年份和月份名称。

📋 多值列差异化聚合

  • 核心观点:可对不同的数值列应用完全不同的聚合逻辑,实现复杂报表需求。
  • 操作步骤
  • 场景:按部门分组,同时计算“销售额”的平均值和“产品”的唯一计数。
  • 实现:
  • 值字段:使用 `HSTACK` 堆叠“销售额”和“产品”两列。
  • 函数参数:使用 `HSTACK` 堆叠对应的聚合逻辑,即 `AVERAGE` 和自定义的 `COUNTA(UNIQUE())` Lambda。
  • 结果:生成包含平均销售额和唯一产品数的报表,可通过 `DROP` 函数移除不需要的总计行。

📝 返回具体项目列表

  • 核心观点:`GROUPBY` 可返回分组内的具体项目列表,这是标准透视表无法直接实现的功能。
  • 操作步骤
  • 修改逻辑:将原本用于计数的 `COUNTA` 函数替换为 `ARRAYTOTEXT`。
  • 结果:在显示唯一产品数量的同时,列出每个部门具体的产品名称(如 Timeshield Planners, Green Sweep 等)。
  • 优化:隐藏无意义的总计行,并应用自动换行(Wrap Text)以提高长文本列表的可读性。

0 条评论

发表评论

请先 登录 后参与讨论。