sum 函数应该是大多数人的 Excel 启蒙函数,别看它很简单,但也有些情况下,一不注意就踩坑,比如今天的案例。
案例:
下图是个简单的数据表,“总计”行用的是最基础的 sum 公式。
需求:
当我们在“总计”上方新增月份时,需要总计结果自动加入新增行的数值,怎么实现?
解决方法:
1. 就目前的表格,我们试一下增加新行后,总计结果到底会不会变?
2. 从上述实验结果来看,sum 函数对“订单数”实现了自动添加新增行的智能统计,但是对“奖金”却不奏效,为什么?
这是因为“奖金”单元格本身也是公式,sum 函数遇到公式就不那么智能了。
3. 正确答案其实很简单,将“订单数”的总计改为以下公式,向右拖动公式复制到 C 列即可:
=SUM(B2:INDEX(B:B,ROW()-1))
公式释义:
同样是 sum 公式,我们只是将原先的第二个参数 B4 替换成了 INDEX(B:B,ROW()-1)
INDEX 函数表示返回区域中的第几行:INDEX(array,row_num)
index 使用方法可参见 Excel 如何多条件查询?即同时查询行、列并返回值?
ROW()-1:当前的行数-1,即求和项的上一行
因此 INDEX(B:B,ROW()-1) 的含义就是:始终取 B 列求和项的上一行,从而实现本例需求
以下是演示效果: