在职场办公中EXCEL的函数有太多太多了,今天我要给各位介绍一个你可能名字都很少知道但是特别实用的一个函数INDIRECT函数,一起来看看吧,记得点赞收藏关注~持续更新职场Excel知识。
一、indirect函数的含义
indirect函数的含义,引用,并显示其内容
二、indirect函数的语法格式
indirect函数的语法格式=INDIRECT(ref_text,[a1])
三、用途
第一种作用:创建固定的数值组
我们想求列B中最大的3个数值的平均值。
在公式中,可以输入数值
=AVERAGE(LARGE(B1:B8,{1,2,3}))
如果需要更多的一组数值,那么可能不想输入这些数值。此时,可以使用ROW函数,
=AVERAGE(LARGE(B1:B8,ROW(1:3)))
还可以将ROW函数和INDIRECT函数联合使用
=AVERAGE(LARGE(B1:B8,ROW(INDIRECT(“1:3″))))
然而,如果在工作表的顶部插入行,第二个公式返回不正确的结果,因为行数被调整了。现在,显示了
第3、第4、第5个最大数值的平均值,而不是求最大的3个数值的平均值。
使用INDIRECT函数,第3个公式保持正确的行引用,并继续显示正确的结果。
第二种作用:从工作表、行、列信息创建引用
在INDIRECT函数中使用FALSE作为第二个参数容易创建基于行号和列号的引用。在本例中,创建R1C1样式的引用,还包括了工作表名—‘MyLinks’!R2C2。
=INDIRECT(“’” & B3 & “’!R” & C3 & “C” & D3,FALSE)
第三种作用:创建对静态命名区域的引用
INDIRECT函数也可以创建对命名区域的引用。在本例中,蓝色单元格区域被命名为NumList,在列B中也有一个基于该列的数值数的动态区域。
通过在SUM函数中使用区域名称,每个单元格都能够计算总和,正如在单元格E3和E4中所看到的。
=SUM(NumList) 或 =SUM(NumListDyn)
代替在SUM公式中输入名称,可以指向工作表单元格区域名称。例如,使用在单元格D7中显示的名称NumList,单元格E7中的公式是: =SUM(INDIRECT(D7))
不巧的是,INDIRECT函数不能够解决对动态区域的引用,因此当公式向下复制到单元格E8中时,结果显示#REF!错误。
第四种作用:创建开始部分固定的引用
在第一个示例中,列C和列E有相同的数字,使用SUM函数求得的和也是相同的。然而,所使用的公式稍微有点不同。在单元格C8中,公式为:=SUM(C2:C7)
在单元格E8中,INDIRECT函数创建对开始单元格E2的引用:=SUM(INDIRECT(“E2″):E7)
如果在列表的顶部插入一行,例如输入January的数量,列C中的和不会改变,但公式发生了变化,根据被插入的行进行了调整:=SUM(C3:C8)
然而,INDIRECT函数锁定开始单元格为E2,因此January的数量被自动包括在E列的汇总单元格中。结束单元格改变,但是开始单元格没有受影响。
=SUM(INDIRECT(“E2″):E8)
四、INDIRECT陷阱
INDIRECT函数是易失的,因此如果在许多公式中使用,它会使工作簿变慢。
如果INDIRECT函数创建对另一个工作簿的引用,那么该工作簿必须打开,否则公式的结果为#REF!错误。
如果INDIRECT函数创建所限制的行和列之外的区域的引用,公式将出现#REF!错误。INDIRECT函数不能对动态命名区域进行引用
关于INDIRECT函数你学会了吗?喜欢记得点赞收藏关注,Excel更多内容持续更新中~~~
,