我们在统计各项数据的时候,经常会碰到一个问题就是,当跨工作表的时候我们应该怎么去处理。如何对多个工作表里面的数据按照对应的条件进行求和,或者是按照对应的条件求平均,这里我们就需要用到一个万能函数indirect。下面我们来讲解具体使用方法。 iindirect函数讲解 语法=INDIRECT(ref_text,[a1]) 含义:引用所在的区域内容 表现形式: 1、加引号:代表引用对应单元格文本,如indirect('A1'),当出现引号时代表的是引用文本A1; 2、不加引号:代表引用对应的值,如A1单元格为10,indirect(A1)代表的是10. 求出1-6号个人销售总金额 如上图,表格中有1号-6号人员每天的数据,怎么求出6天这个人的销售总金额? 函数:=SUM(SUMIF(INDIRECT(ROW($1:$6)&'!A:A'),A2,INDIRECT(ROW($1:$6)&'!g:g'))) 1、此处运用条件求和的方式,因为每天每人的数据都是有不一样的情况,所以最开始用sumif条件求和; 2、INDIRECT(ROW($1:$6)&'!A:A')代表将1-6号每天的人名提取出来; 3、INDIRECT(ROW($1:$6)&'!g:g'),代表将提前出来的人名=A2时,提取出1-6号G列的销售数据。 4、用sumif函数与indirect函数查找出每一个符合条件的销售金额后,最后用sum函数进行求和即可。 求出1-6号个人平均销售额 函数:=AVERAGE(IFERROR(AVERAGEIF(INDIRECT(ROW($1:$6)&'!A:A'),A2,INDIRECT(ROW($1:$6)&'!g:g')),'')) 1、此处运用条件求平均的方式来计算,如上因为每天每人的数据都是有不同,所以最开始用averageif条件求平均; 2、INDIRECT(ROW($1:$6)&'!A:A')代表将1-6号每天的人名提取出来; 3、INDIRECT(ROW($1:$6)&'!g:g'),代表将提前出来的人名=A2时,提取出1-6号G列的销售数据。 4、用averageif函数与indirect函数查找出每一个符合条件的销售金额后; 5、因为每天可能会有人没有数据,数据出来的时候会显示错误值,此时就需要用iferror函数来进行判断,当匹配出的数据有错误时,用空值代替。 6、最后用average函数对剔除错误值后的数据进行求平均即可。 文章声明:本文发布于作者公众号:excel实例,未经允许,如有抄袭,责任必究。 |
|