Excel中的引用函数——indirect函数实例介绍

Excel中查找引用函数在使用上十分灵活,很多强大的功能都是利用查找引用函数进行函数嵌套实现的,而indirect函数算是查找引用函数中参数最少的函数,但是它的用法并不比其他函数简单,与其他Excel功能结合非常神奇,现在就一起看看indirect函数的用法吧

一:indirect函数基本含义

indirect函数的参数有两个,即=indirect(引用的单元格,引用方式)。我们平时使用的工作表行都是用阿拉伯数字表示,列都是英文大写字母表示,所以这里的第二个参数往往都会省略。所以平时使用indirect函数时只考虑一个参数即可。

在下图中的C1单元格输入函数=INDIRECT(A1),计算结果是“疏木excel”,因为A1单元格的内容是A7,表示工作表中的一个单元格,所以会返回A7单元格的数据,即“疏木excel”。

但是如果在函数参数中的A1加上双引号,即输入函数=INDIRECT("A1"),那么这里的A1就是一个文本,不会引用到A7单元格的数据。

如果利用indirect函数实现跨表引用,那么输入函数公式=INDIRECT(A2&"!B2"),表示引用的是A2单元格中表示的工作表中B2单元格的数据,即“五班”这个工作表B5单元格的内容。引用工作表通常使用感叹号连接,并且引用的单元格需要加上双引号。

7a9b899ad869464fb41c9bc990ef8b71.png

二:indirect函数查找数据

indirect函数可以用来进行二维数据表的查找。在下表中,要根据姓名查找相应人员的性别、学历、身份证号等信息,利用indirect函数进行查找甚至要比vlookup函数和index—match函数更简单。只要先对A1到F9的数据源区域根据首行和最左列定义名称后,在B14单元格中输入函数公式=INDIRECT($A14) INDIRECT(B$13),然后向右,向下拖动鼠标填充公式即可完成查找。

因为利用函数之前已经定义了行或者列的名称,所以用indirect函数可以引用一行或者一列的数据。这里用了2个indirect函数,中间用空格隔开,表示交叉运算符,返回两个函数引用数据的交集。第一个indirect函数对A14单元格的列A列采用绝对引用,因为我们向右拖动查找信息时,人名始终保持不变。同理,第二个indirect函数B13单元格对行采用绝对引用,向下拖动时始终根据信息类别查找,即固定“姓名”、“学历”等单元格。

7206286093604e349d37ced2ab7a09ad.png

动图操作如下:

cc3726838d01475299c0e01a056dbd20.gif

三:制作二级下拉菜单

制作二级下拉菜单属于indirect函数的经典用法了,主要思路是利用数据验证(数据有效性),操作步骤如下:

Ctrl+A全选数据源区域,按F5定位到“常量”,然后选择【公式】选项卡中的【根据所选内容创建】,选择【首行】,然后打开【名称管理器】可以看到定义好的名称。

选择G2到G6单元格,选择【数据】选项卡下的【数据验证】【允许】中选择【序列】【来源】选择A1到E1单元格。

选择H2到H6单元格,选择【数据】选项卡下的【数据验证】【允许】中选择【序列】【来源】输入函数公式=INDIRECT(G2),按确定关闭后就完成下拉菜单的制作了。

动图操作如下:

934e6f72efa741bcb8a5715f97b102cc.gif

四:indirect函数的跨表引用

在文章的开始提到了indirect函数可以引用工作表,用感叹号隔开以示区分,所以我们可以利用indirect函数的跨表引用功能可以查找多个工作表的数据。

在下图中,有“一组”、“二组”、“三组”三个工作表,现在我们要在一个新的工作表中进行查找这三个工作表的数据,那么在C2单元格中输入公式=INDEX(INDIRECT(A2&"!C:C"),MATCH(B2,INDIRECT(A2&"!B:B"),0)),然后向下拖动即可。

这个函数整体是一个index—match函数的组合进行查找,只是在查找中利用indirect函数根据A列单元格表示的工作表实现跨表查找。其中INDIRECT(A2&"!C:C")表示的是查找结果返回A2单元格表示的工作表的C列数据,即销量列。INDIRECT(A2&"!B:B")表示在A2单元格表示的工作表中查找姓名。

23f30a367a5b40e1b3e233755f00a51f.png

这就是Excel中indirect函数的几种常见用法,快快试一下吧

打开APP阅读更多精彩内容