怎样用indirect进行跨表求和
来源:网络收集 点击: 时间:2024-07-23打开如图所示excel文件,
包括四个表格:1月销售,2月销售,3月销售,1季度业务
现在需要把:1月销售,2月销售,3月销售中的业务员的销售数据在1季度业务表中跨表求和。




我们首先使用sumif函数,因为sumif能使用跨表的数组。
在查询表的B3单元格输入:=sumif(
会出现提示:SUMIF(range,criteria,)

SUMIF(range,criteria,)就是SUMIF函数的格式
range是指条件的范围,
在当前表格中,这个范围就是:“1月销售”,“2月销售”,“3月销售”三个表格的A列
这个跨表的范围要怎样表示,在这里我们需要使用间接引用函数indirect
indirect(row(1:3)月销售!A:A)
row(1:3)是一个数组,相当于{1,2,3},通过与“月销售!A:A”相连,
因为indirect 中的参数必须是文本,所以用引起来。
row(1:3)月销售!A:A也就相当于:“1月销售”,“2月销售”,“3月销售”三个表格的A列

criteria就是指要查询的对象:姓名A
也就是单元格A3,
sum_range是指求和范围,
这个范围也是跨表的
这个跨表的范围是:“1月销售”,“2月销售”,“3月销售”三个表格的B列
表示为:indirect(row(1:3)月销售!B:B)


这样就完成了sumif函数,如下所示:
SUMIF(INDIRECT(ROW(1:3)月销售!A:A),A3,INDIRECT(ROW(1:3)月销售!B:B))
在任务栏单击,然后按F9
就可以看到最后结果,结果是一个数组{34,26,29}


我们需要对这个数组求和
所以添加SUM函数
=SUM(SUMIF(INDIRECT(ROW(1:3)月销售!A:A),A3,INDIRECT(ROW(1:3)月销售!B:B)))
因为它是数组公式,所以需要按 Ctrl+Shift+Enter确认
最终得到
={SUM(SUMIF(INDIRECT(ROW(1:3)月销售!A:A),A3,INDIRECT(ROW(1:3)月销售!B:B)))}
计算结果为69


因为需要往下拖动复制,所以把ROW(1:3)转换成绝对位置ROW($1:$3)
把A3转换成$A3
=SUM(SUMIF(INDIRECT(ROW($1:$3)月销售!A:A),$A3,INDIRECT(ROW($1:$3)月销售!B:B)))
再次按Ctrl+Shift+Enter确认
然后拖动单元格右下角往下复制


谢谢您的阅读,希望能给您带来一点收获,麻烦您 “点赞”和“投票”,谢谢!
如果“关注我”,不懂的可以联系我,详细解答。
版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_993562.html