今天要跟大家介绍的是曾被誉为Excel函数界迂回大师的INDIRECT函数。
INDIRECT函数的作用是返回由文本字符串指定的引用,它的语法结构为:
=INDIRECT(单元格的引用, [引用类型]),第一个参数也可以是代表引用的文本字符串。
下面我们通过4个案例来了解一下INDIRECT函数的妙用。
1、设置二级下拉菜单
首先进行定义名称设置:选中部门和岗位明细数据区域--公式--根据所选内容创建--勾选“首行”;接着利用数据有效性设置部门的一级下拉菜单:选中B1单元格--数据--数据验证--序列--来源输入:=$E$1:$H$1;最后设置二级下拉菜单:选中B2单元格--数据--数据验证--序列--来源输入:=INDIRECT(B1)
2、创建开始部分始终固定的区域引用
如下图所示,我们在B、C两列中分别进行业绩求和,在B6单元格中输入公式:=SUM(B2:B5) ,C6单元格中输入公式:=SUM(INDIRECT("C2"):C5)。之后在标题行下插入空白行,添加新销售员的业绩,可以发现,B列的业绩总计不变,而C列出现了变化,把新加入的销售员业绩也进行了统计。
这是因为在C列求和公式中,INDIRECT函数参数为"C2 ",返回的是C2中的内容,即固定了开始单元格为C2,不管开头增加多少数据,该公式引用区域的开始单元格始终不受影响。
3、实现一列转多列
比如我们要把表格中的一列数据转为四列,这里可以在C2单元格中输入公式:
=INDIRECT("A"&4*ROW(A1)-3 COLUMN(A1))&""
解析:
- 4*ROW(A1)-3 COLUMN(A1):返回结果为2,公式往下填充时,计算结果为6、10、14……,即生成差为4的自然数序列。公式向右填充时,计算结果为3、4、5……,即生成公差为1的自然数序列;
- INDIRECT("A"&4*ROW(A1)-3 COLUMN(A1)):和字符A结合形成一个单元格地址,用INDIRECT函数返回文本字符串指定的引用;
- 最后加上&"",目的是规避在行列转换时出现的0值。
4、实现多表数据汇总
如下图所示,需要把这6个相同结构表格中的商品销量进行汇总,这里我们框选空白区域,输入公式:=INDIRECT(B$1&"!B"&ROW()),按Ctrl Enter组合键输入。
解析:B$1&"!B"&ROW():B$1用于返回不同的月份,在公式向左复制时分别为C$1、D$1、E$1,即对应返回的值依次为1月、2月……6月;连接符&接"!B",!是表格和单元格的分界标志,这里加引号用文本表示,表示固定部分;最后ROW()返回行号,公式向下填充到哪一行就返回哪一行的行号。比如公式如果在B2单元格,这部分返回的值为1月!B2。
看完以上几个例子,相信你也明白为什么INDIRECT函数如此受高手们欢迎了,它的实际应用其实还有很多.
,