介绍indirect函数的经典应用场景:跨数据表求和。
我用的版本是excel2016,其他版本的界面可能略有不同。
案例:
沿用昨天的表,如果我们需要对每个人的奖金求和,即跨表调用并求和,怎么实现?
解决方案:
方案1.也许有人抖机灵,说在昨天已经多表调用的结果上,横向sum求和。嗯,不能说不对,但是如果表数据列特别多,sheet特别多,且总表只需要显示求和数据时,这显然不是最优方法。
方案2.假如总表的人员排名跟所有月表的人员排名完全一致,可以用以下公式:
sum(*!b2)
回车后,公式会自动变成sum(1月:3月!b2),即读取所有sheet的b2单元格并求和
*请注意:这个方法很简单,但是对表格要求比较高,但凡人员列稍有差异,结果就出错。比如,郭德纲2月休假,没有奖金,2月的表里就没有放他的名字,本方案就不适用
方案3.输入以下数组公式,按ctrlshiftenter生效:
sum(sumif(indirect(row($1:$3)amp