前不久兰色分享一个跨多个表的条件求和公式,用INDIRECT+ROW生成30个表再求和。
=SUMPRODUCT(SUMIF(INDIRECT(ROW($1:$30)&"日!a:a"),A2,INDIRECT(ROW($1:$30)&"日!b:b")))
有同学留言说如果名称不规律该如何办?
答案是和宏表函数生成所有工作表名称。
【例】如下动图所示,有多个分公司的数据(后续可能会增加或减少N个分公司),如果按产品类别汇总所有分公司数据。
操作步骤:
1、定义名称sh,获取所有工作表名称
=get.workbook(1)
在单元格中输入=sh并按F9键后,就会获取所有工作表名称。
2、添加条件求和公式
=SUMPRODUCT(SUMIF(INDIRECT(sh&"!b:b"),D2,INDIRECT(sh&"!c:c")))
公式说明:
INDIRECT(sh&"!b:b"): 生成所有工作表的B列区域
SUMIF:按条件求和
SUMPRODUCT:因为是数组运算,所以需要用sumproduct进行求和
这个是一个可以智能公式,当增加新的工作表时,它会把新表的数据也进行求和,删除后也不会出错,数据自动减掉。
领取专属 10元无门槛券
私享最新 技术干货