Indirect函数入门篇
-
作用
返回文本字符串所指定的引用
所谓文本字符串,是指看似是引用,却是文本类型的。如:两边带双引号的引用地址。
="A1"
="Sheet!A1"
="[工资表.xlsx]Wifi信息图!3"'
返回引用,是把上面文本类型的转换为可以返回值的引用
下面的公式返回的是字符 "A1",并不是A1单元格的值100
="A1"
而外面套上indirect函数则可以把字符串A1转换为引用A1
=INDIRECT("A1")
2.语法
=indirect(ref_text,[a1])
语法说明:
ref_text:就是前面提到的文本型引用字符串
a1:引用的字符串样式。Excel单元格引用有两种方式,一种是字母+行数,另一种是R1C1样式(R后数字是行数,C后数字是列数)。当[a1]的值为true、1或省略时表示为A1样式引用,当值为FALSE或0时表示R1C1引用样式。
[ ] :带中括号的参数表示它可以有,也可以省略。
[例 1]引用单元格C5的值
=INDIRECT("C5",TRUE)
或
=INDIRECT("C5",1)
或
=INDIRECT("C5")
也可以表示为:
=INDIRECT("R5C3",FALSE)
或
=INDIRECT("R5C3",0)
Indirect函数初级篇
地址字符串可以插入变量
-
在单元格引用的地址中插入变量 [例2]如下图所示,根据D2单元格的行数,从A列提取数字
E2公式:=INDIRECT("A"&D2)
这字母后不再是固定的数字,而是一个可变的值(根据D2的值变量而变化)
[例3]设置公式从A列随机抽出一位幸运者
=INDIRECT("A"&RANDBETWEEN(1,18))
使用Indirect创建一级,二级,三级联动下拉菜单
一. 创建一级下拉菜单:点击【数据】-【数据验证】-【序列】
二. 创建二级下拉菜单:二级下拉的关键就是“联动”,就是二级的下拉选项需要根据一级的下拉结果变化而变化。
源数据部分一般有两种常见的形式,一种是一级菜单在上方。
一种是一级菜单在左侧。
那么一级菜单的做法和上面的方法是一样的。
先设置好一级下拉菜单。
接下来选中左侧数据源表格,点击【公式】-【根据所选内容创建】 ,在弹出的对话框中,取消勾选【最左列】(如果是左侧是一级菜单,则取消“首行”)。
点击左上角的名称框下拉按钮,每选择一个省份,相应省份的市就会被选中。为什么会这样呢?……当我们点击【名称管理器】就知道原因了。原来刚刚的操作其实就是用一级菜单的名字赋值给相应区域,当在左上角的名称框中选择省份的时候,相应的单元格区域就会被选中。
接下来进行到最关键的“联动”部分。
如何让二级菜单的数据源自动调用一级菜单的结果,而不是我手动输入?
这里需要用到一个函数,叫做“INDIRECT函数”。
英文直接翻译的意思是“间接的”,函数的意思是“返回所指的引用”。
然后我们将刚刚手动输入省份的步骤用这个INDIRECT函数来替代。
需要注意的是函数中的D7需要按下两次F4取消锁定,因为是相对引用(如果不理解,后面我专门讲解)。
然后二级菜单的下拉选项就可以实现根据一级菜单的变化而变化了。