首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

它才是Excel函数的No.1,Indirect的使用方法(入门+初级篇)

前言:如果评谁是Excel最牛X的函数,兰色肯定推选Indirect函数,因为其他函数大多可以被某他函数替代,而indirect独特的作用在Excel中独此一个,无可替代。而且它应用非常广泛。兰色这次花费了三天时间,整理出了indirect函数从入门+初级+进阶+高级应用的全系列教程,希望对想全面学习indirect函数的同学们有所帮助。今天是入门篇+初级篇。

一、Indirect函数入门篇

1、作用

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

所谓文本字符串,是指看似是引用,却是文本类型的。如:

两边带双引号的引用地址。

="A1"

="Sheet!A1"

="[工资表.xlsx]Wifi信息图!$J$3"

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

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

="A1"

而外面套上indiect函数则可以把字符串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函数初级篇

引用单元格这么简单的公式,被indirect弄的这么复杂,有什么用?原因就在于:地址字符串中可以插入变量

1、在单元格引用地址中插入变量

【例2】如下图所示,根据D2单元格行数,从A列提取数字。

E2公式:

=INDIRECT("A"&D2)

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

如果借用随机函数,就可以实现随机出题/抽奖的功能了。

【例3】设置公式从A列随机抽出一位幸运者。

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

2、在工作表名称中插入变量

如果把工作表名称作为变量,那么就可以利用indirect动态引用不同的工作表的值。前天兰色分享的Vlookup多表取值是不是也懂了?

【例4】Vlookup从多表取值

B3公式:

=IFERROR(VLOOKUP($A3,INDIRECT(B$2&"!A:B"),2,0),"")

公式向右复制时,B$2会变为C$2, D$2.....这样就可以根据第2行的值,从对应名称的工作表中区域中查找。

3、在工作簿名称中插入变量

如果把工作簿名称设置为变量,就可以从不同的Excel文件中动态取数了。

【例5】如下图所示,用vlookup根据A列的月份和产品,从本路径下的1~3月销售的文件中查找销量。

=VLOOKUP(B2,INDIRECT("["&A2&"销量.xlsx]Sheet1!$A:$B"),2,0)

4、把定义的名称作为变量

当字符串是定义的名称时,用inidect函数也可以把字符串转换为定义的名称。

还记得那个已为大众所熟悉的二级下拉菜单公式吗?

【例6】根据A列的品牌名称,在B列生成对应的型号下拉菜单。

先定义名称

然后选取要设置二级下拉菜单的区域,设置数据有效性公式

=indirect(a2)

这儿a2的值只是字符串,用indirect可以把字符串转换为定义的名称。

兰色说:如果你以为掌握了今天的内容就学会了indirect函数,就太天真了。本篇只是indirect函数的初级用法,在下一集“进阶+高级”篇中,你才会见识这个Excel中最牛函数的强大之处。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OpXldh-K4IEM62jhibIpAhMA0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券