Indirect的使用方法

322 阅读3分钟

Indirect函数入门篇

  1. 作用

    返回文本字符串所指定的引用

    所谓文本字符串,是指看似是引用,却是文本类型的。如:两边带双引号的引用地址。

    ="A1"

    ="Sheet!A1"

    ="[工资表.xlsx]Wifi信息图!JJ3"'

    返回引用,是把上面文本类型的转换为可以返回值的引用

    下面的公式返回的是字符 "A1",并不是A1单元格的值100

    ="A1"

image.png

而外面套上indirect函数则可以把字符串A1转换为引用A1

=INDIRECT("A1")

image.png

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")

image.png

也可以表示为:

=INDIRECT("R5C3",FALSE)

=INDIRECT("R5C3",0)

image.png

Indirect函数初级篇

地址字符串可以插入变量

  1. 在单元格引用的地址中插入变量 [例2]如下图所示,根据D2单元格的行数,从A列提取数字

    E2公式:=INDIRECT("A"&D2)

    这字母后不再是固定的数字,而是一个可变的值(根据D2的值变量而变化)

image.png

[例3]设置公式从A列随机抽出一位幸运者

=INDIRECT("A"&RANDBETWEEN(1,18))

image.png

使用Indirect创建一级,二级,三级联动下拉菜单

一. 创建一级下拉菜单:点击【数据】-【数据验证】-【序列】

二. 创建二级下拉菜单:二级下拉的关键就是“联动”,就是二级的下拉选项需要根据一级的下拉结果变化而变化。

源数据部分一般有两种常见的形式,一种是一级菜单在上方。

image.png

一种是一级菜单在左侧。

image.png

那么一级菜单的做法和上面的方法是一样的。

先设置好一级下拉菜单。

接下来选中左侧数据源表格,点击【公式】-【根据所选内容创建】 ,在弹出的对话框中,取消勾选【最左列】(如果是左侧是一级菜单,则取消“首行”)。

点击左上角的名称框下拉按钮,每选择一个省份,相应省份的市就会被选中。为什么会这样呢?……当我们点击【名称管理器】就知道原因了。原来刚刚的操作其实就是用一级菜单的名字赋值给相应区域,当在左上角的名称框中选择省份的时候,相应的单元格区域就会被选中。

接下来进行到最关键的“联动”部分。

如何让二级菜单的数据源自动调用一级菜单的结果,而不是我手动输入?

这里需要用到一个函数,叫做“INDIRECT函数”。

英文直接翻译的意思是“间接的”,函数的意思是“返回所指的引用”。

然后我们将刚刚手动输入省份的步骤用这个INDIRECT函数来替代。

需要注意的是函数中的D7需要按下两次F4取消锁定,因为是相对引用(如果不理解,后面我专门讲解)。

然后二级菜单的下拉选项就可以实现根据一级菜单的变化而变化了。

image.png