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单元格的内容。引用工作表通常使用感叹号连接,并且引用的单元格需要加上双引号。
二:indirect函数查找数据
indirect函数可以用来进行二维数据表的查找。在下表中,要根据姓名查找相应人员的性别、学历、身份证号等信息,利用indirect函数进行查找甚至要比vlookup函数和index—match函数更简单。只要先对A1到F9的数据源区域根据首行和最左列定义名称后,在B14单元格中输入函数公式=INDIRECT($A14) INDIRECT(B$13),然后向右,向下拖动鼠标填充公式即可完成查找。
因为利用函数之前已经定义了行或者列的名称,所以用indirect函数可以引用一行或者一列的数据。这里用了2个indirect函数,中间用空格隔开,表示交叉运算符,返回两个函数引用数据的交集。第一个indirect函数对A14单元格的列A列采用绝对引用,因为我们向右拖动查找信息时,人名始终保持不变。同理,第二个indirect函数B13单元格对行采用绝对引用,向下拖动时始终根据信息类别查找,即固定“姓名”、“学历”等单元格。
动图操作如下:
三:制作二级下拉菜单
制作二级下拉菜单属于indirect函数的经典用法了,主要思路是利用数据验证(数据有效性),操作步骤如下:
Ctrl+A全选数据源区域,按F5定位到“常量”,然后选择【公式】选项卡中的【根据所选内容创建】,选择【首行】,然后打开【名称管理器】可以看到定义好的名称。
选择G2到G6单元格,选择【数据】选项卡下的【数据验证】,【允许】中选择【序列】,【来源】选择A1到E1单元格。
选择H2到H6单元格,选择【数据】选项卡下的【数据验证】,【允许】中选择【序列】,【来源】输入函数公式=INDIRECT(G2),按确定关闭后就完成下拉菜单的制作了。
动图操作如下:
四: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单元格表示的工作表中查找姓名。
这就是Excel中indirect函数的几种常见用法,快快试一下吧