知识就是力量

当前位置:首页 > 技巧


Excel数据难以跨表计算怎么办?间接函数有效解决您的问题

2022-10-19

比如在工作中,我们会以日、周、月、年等形式统计各种数据,然后在汇总表中对所有工作表页面中的数据进行平均或汇总。本节将解释如何使用函数跨工作表执行条件求和。下一课将解释如何使用函数在指定条件下对工作表进行平均。

案例1:在表中求出12个月内人员的总销售额。

我们都知道条件求和函数sumif,但是这个函数只能使用单个条件,sumfis可以使用多个条件求和,但是当条件太多时,函数会很长。如何避免这些问题,下面将介绍一个新的函数INDIRECT引用函数。

条件求和函数:

=SUM(SUMIF(间接(行($1:$12)&"!B:B"),$B3,INDIRECT(行($1:$12)&"!F:F")))

这里的思路和 sumif 条件求和是一样的。使用函数嵌套,间接函数引用月条件区域。当 sumif 函数条件满足时,每月条件求和区域被引用。

功能分析:

1、ROW($1:$12):指每张纸页的下标数字,1-12个月。

2. SUMIF(INDIRECT(ROW($1:$12)&"!B:B"),$B3,INDIRECT(ROW($1:$12)&"!F:F")):这里的函数主要是参考每个月数据有资格获得 $B3。选择这个功能区iferror函数的使用方法,按F9我们可以看到如下:

3、由于sumif和Indirect函数引用的函数都是合格的月值,所以以数组的形式体现。所以最后在使用SUM对数组求和的时候,需要使用:ctrl+shift+enter 三个键进行分组。

案例2:在表中求12个月人员的月平均销售额。

与求和类似,averageif的条件区域走向条件值。这里我们也使用间接来参考。

条件区域:INDIRECT(ROW($1:$12)&"!B:B")

条件参数值:INDIRECT(ROW($1:$12)&"!F:F")

条件求和函数:

=AVERAGE(IFERROR(AVERAGEIF(INDIRECT(ROW($1:$12)&"!B:B"),$B3,INDIRECT(ROW($1:$12)&"!F:F")),""))

功能分析:

1:AVERAGEIF(INDIRECT(ROW($1:$12)&"!B:B"),$B3,INDIRECT(ROW($1:$12)&"!F:F")):当前的条件区域month 等于 B3 时,对每个月的 F:F 列中的参数进行平均;

2:IFERROR(AVERAGEIF, ""):与求和函数相比,这里多了一个IFerror函数来做判断。当我们的AVERAGEIF函数判断每个月的参数时,如果这个人这个月没有数据,我们判断的区域会显示错误值,如下图:

因此,必须使用 IFEEROR 函数进行判断。当得到的值为误差值时,计算为空,不计入平均值;

3:和求和一样iferror函数的使用方法,需要用:ctrl+shift+enter 三个键找到组。

现在您学习如何根据实际情况使用Indirect函数进行数据处理了吗?