我们平常在单元格中输入公式,比如=A2,将在此单元格中直接引用A2存储的内容,这个过程叫做直接引用。
有时候,我们要引用的数据可能不是这个单元格的内容,而是这个单元格文本间接对应的内容。这种引用模式叫做间接引用,实现间接引用的函数是INDIRECT函数。
INDIRECT函数是EXCEL中的引用函数,此函数可以将一个字符表达式或名称转换为地址引用。
语法:INDIRECT(单元格地址或名称)
比如下图所示的案例中,我在C2中输入的公式是直接引用公式=A1,所以返回的结果就是A1存储的内容:1。而在C4中输入的公式是间接引用公式=INDIRECT(A4),A4中存储的内容是A2,而A2作为单元格地址存储的内容是:2,所以C4返回的结果就是:2。
这就是直接引用和间接引用的区别。INDIRECT作为间接引用函数,主要有两个应用场景:制作二级下拉菜单和多工作表引用数据。
应用场景1 制作二级下拉菜单
为了规范数据输入,提高数据的准确性,我们可以通过“数据有效性”进行限定数据输入。比如下表中,希望部门这一列中只能输入“财务部、IT部、人力资源部、销售部”这四个部门,我们可以点击“数据”选项卡中的“数据有效性(数据验证)”,在来源中选择保存有这四个单元格的数据区域。
这样我们就可以实现在输入时对部门进行限定的目的了。
但如果我们还要在此基础上实现,如果部门列中选择了财务部,那职务列中只能选择财务部的职务。
那就需要通过以下的步骤来实现了。
1、首先我们需要现在建立如下图所示的参数表:横向是一级菜单的部门,纵向是每个一级菜单对应的职务。
2、选定A-D列的数据范围,按【F5】键打开“定位条件”对话框,选择定位“常量”。
用这个方法就可以只选择A-D列有内容的单元格,不然我们就要自己手工一个个单元格进行选择了。
3、接着点击“公式”选项卡中的“根据所选内容创建”功能为这个区域定义名称。在弹出的对话框中选择“首行”。
4、当我们打开左侧的“名称管理器”的时候,就可以看到里面新增加了4个名称,分别是:财务部、IT部、人力资源部、销售部。名称引用就是单元格地址的另一种引用方式,比如以前我们要A2:A5的内容,我们只能输入单元格地址,现在就多了一种引用方式,就是用“财务部”三个字可以代表人事参数表的A2:A5的内容了。
5、最后再选择需要形成二级下拉菜单的职务所在的B2单元格,点击“数据”选项卡中的“数据有效性(数据验证)”功能,在允许输入的类型中选择“序列”,序列的来源中输入间接引用公式:=INDIRECT(A2)。
A2现在存储的值是销售部,销售部作为名称包含的数据有:销售代表、经理、总监,所以职务的下拉菜单就会显示这三个职务。当A2的内容变化了,B2的下拉菜单的内容也会随之发生变化。
当“人事参数表”的数据发生变化的时候,比如现在我在销售部的岗位中增加了新的职务:销售助理,同时调整了岗位的顺序,我们只需要重新选择这些单元格,再为其命名一次就可以更新数据了。
应用场景2 多工作表引用数据
假如我有广州、深圳、东莞、珠海四个城市的销售明细数据,这四张表的表结构都是相同的,工作表的名称也是城市的名称。
现在我需要在汇总表中引用刚刚四张表的每一个E5单元格,按照传统的做法,我们只能一张一张工作表去引用数据。
有了间接引用函数INDIRECT之后,你就可以把顶部的城市当作工作表名称来使用了。
输入公式:=INDIRECT(B1&"!E5")
以上,就是本篇文章的全部内容,总结一下:
间接引用函数INDIRECT
应用场景1:结合数据有效性,制作二级下拉菜单
应用场景2:多工作表引用数据时,让工作表名称变成动态的