Excel中如何对筛选后区域内的仅负数求和?
筛选后区域内负数求和解决方案(无VBA/辅助列)
方法1:使用AGGREGATE函数(Excel 2010及以上版本适用)
直接用AGGREGATE函数结合条件判断,实现忽略隐藏行的负数求和:
=AGGREGATE(9,6,Total_Range*(Total_Range<0))
公式说明:
9:指定AGGREGATE执行求和操作6:设置忽略筛选/手动隐藏的行以及错误值Total_Range*(Total_Range<0):将区域内的负数保留原值,正数/0转为0(正数满足<0为FALSE,运算时等价于0)- 最终结果仅对筛选后可见的负数求和
方法2:SUMPRODUCT+SUBTOTAL组合(兼容早期Excel版本)
如果使用Excel 2010之前的版本,可通过以下公式实现:
=SUMPRODUCT(Total_Range*(Total_Range<0)*(SUBTOTAL(103,OFFSET(Total_Range,ROW(Total_Range)-MIN(ROW(Total_Range)),0,1))))
公式说明:
Total_Range*(Total_Range<0):筛选出负数(正数/0转为0)SUBTOTAL(103,OFFSET(...)):对每个单元格单独判断是否可见(103代表忽略隐藏行的COUNTA,可见单元格返回1,隐藏返回0)SUMPRODUCT:将三个数组对应元素相乘后求和,仅保留可见且为负数的单元格值
注意事项
- 替换公式中的
Total_Range为实际的数据区域(如A2:A100) - 两种方法均无需启用宏、无需添加辅助列,完全满足限制条件
内容的提问来源于stack exchange,提问作者Shashank Shet
相关产品推荐
相关产品推荐

