很多人在 WPS 表格里按“部门”或“状态”筛选后,想计算当前页面的金额合计,却发现普通求和仍会把隐藏行计算在内。这是因为 SUM 只识别引用区域,并不知道哪些行被筛选隐藏。解决思路是使用 SUBTOTAL 函数;Alt+= 则可在部分表格中快速生成这种公式。
适用设备与版本
本文以 Windows 10/11 上近几年的 WPS Office 表格版本为例。macOS 版和网页版通常也能使用 SUBTOTAL,但网页浏览器或输入法可能占用 Alt+=,遇到快捷键无反应时,直接输入公式更稳妥。
iPhone、安卓手机和平板端没有 Alt 键,可以在 WPS 表格的公式或函数入口中搜索 SUBTOTAL,手动输入相同公式;不同手机版本的菜单位置可能略有差异。
先整理数据并开启筛选
假设表格中有三列:A 列为日期,B 列为部门,C 列为金额,数据位于第 2~51 行。操作前先做好以下准备:
- 第一行必须是唯一表头,数据尽量连续排列,不要在中间插入合并单元格。
- 选择 A1:C51,在“数据”选项卡中点击“筛选”,也可以使用工具栏里的筛选按钮。
- 点击 B1 的筛选箭头,只保留需要统计的部门,例如只勾选“华东区”。此时 C2:C51 并没有真正删除数据,只是第 2~51 行中的一部分被隐藏。
- 在筛选区域外准备汇总位置,例如 D1 填“筛选合计”,D2 留空。不要把汇总公式放进 C2:C51 内,以免产生循环引用。
用 Alt+= 快速生成筛选汇总
- 完成筛选后,点击 D2 这个空白汇总单元格。
- 同时按住 Alt 键和键盘上的 = 键,即可调用 WPS 的自动求和。若出现功能菜单,选择“求和”。
- 检查公式栏。如果生成的是
=SUBTOTAL(9,C2:C51),说明已经采用 SUBTOTAL,筛选隐藏的行不会再计入。若要同时排除通过“隐藏”功能手动隐藏的行,建议把代码 9 改成 109,即=SUBTOTAL(109,C2:C51)。 - 如果生成的是
=SUM(C2:C51),说明 WPS 没有自动识别当前筛选区域,需要使用下一种方法手动输入公式。 - 改变筛选条件后,D2 中的合计应自动变化;取消筛选后,则会恢复统计全部未隐藏的数据。
Alt+= 只是快速录入公式的快捷方式,最终一定要看公式栏:真正需要筛选汇总时,应确认使用的是 SUBTOTAL,而不是普通 SUM。
用 SUBTOTAL 精确汇总可见数据
- 点击 D2,输入
=SUBTOTAL(109,C2:C51)。 - 按 Enter 键确认。此时无论行是被筛选条件隐藏,还是通过右键“隐藏”手动隐藏,都不会计入合计。
- 切换到其他部门筛选,或临时隐藏一行,再观察 D2 的数值变化。
这里推荐 109,是因为 SUBTOTAL 提供两套功能代码:1~11 会排除筛选隐藏的行,但可能保留手动隐藏行;101~111 会同时忽略两类隐藏行。其中 109 对应的功能与求和相同,最符合“只合计当前可见数据”的需求。
给多个数值列批量汇总
如果既要汇总数量,又要汇总金额,可以把汇总单元格放在数据列右侧,并留出一列间隔。例如 C、D 两列分别为数量和金额,可在 J2 输入 =SUBTOTAL(109,C2:C51)。
- 输入公式后,选中 J2,拖动右下角的填充柄到 K2,WPS 会自动把引用调整为
=SUBTOTAL(109,D2:D51)。 - 如果每个工作表都要同样的统计,可以在其他工作表重新输入公式,或复制后修改引用的工作表名称。
- 后续新增数据行时,固定引用的 C2:C51 不会自动扩大,需要把范围改成新的末行,或者重新拖动填充。
核对结果与常见排查
- 切换不同筛选条件,确认合计随可见行变化,而不是始终保持不变。
- 临时隐藏一行进行测试:使用 109 时,该行金额应从结果中排除。
- 清除全部筛选后,结果应等于全部有效数据之和。
- 如果数字不更新,检查公式中是否误用了 SUM、引用范围是否覆盖完整数据区,以及公式是否位于数据区内。必要时在“公式”选项卡中执行重新计算。
- 文本形式的金额不会被正常求和,例如“¥1,200”可能无法参与计算,应先通过“分列”或其他方式转换为数值。
注意事项
- 不要把汇总单元格自身放进 SUBTOTAL 的引用范围,否则会出现循环引用或异常结果。
- 数据中如果已有“合计”行,应将引用范围限制在明细数据区,避免把原有合计再次汇总。
- SUBTOTAL 主要处理隐藏行,不会因为隐藏了某一列就自动忽略该列。
- Alt+= 在不同 WPS 版本、不同选区下可能生成 SUM 或 SUBTOTAL,不能只凭界面结果判断,必须查看公式栏。
- 对经常增加明细的表格,固定区域需要定期扩展;若工作表结构复杂,可使用 WPS 的名称管理或表格功能统一维护引用。
小结
WPS 表格中,普通 SUM 无法区分筛选前后的数据;需要“只合计当前可见行”时,可用 Alt+= 尝试快速生成 SUBTOTAL,再检查功能代码。最稳妥、最容易核对的公式是 =SUBTOTAL(109,数据区域):筛选隐藏和手动隐藏的行都会被排除,取消筛选后又会自动统计全部未隐藏数据。






