INDIRECT用不好 indirect

小伙伴们好啊 , 今天咱们来学习一个比较有趣的函数——INDIRECT 。
这个函数的作用 , 是将“具有引用样式的文本字符串 , 变成真正的引用” 。
参数也非常简单:
INDIRECT(具有引用样式的字符串,[引用样式])
如果第二参数为TRUE或省略(包括参数值和逗号) , 会将第一参数中的字符串解释为A1样式的引用 , 如果第二参数为FALSE或是0 , 则将第一参数中的字符串解释为R1C1样式的引用 。
具体啥是A1引用样式 , 啥是R1C1引用样式呢?
咱们日常使用的工作表里 , 默认就是A1引用样式 , 也就是用字母列标 , 用数字表示行号 , 两者组合到一起 , 来表示一个单元格的地址:

INDIRECT用不好 indirect

文章插图
如果在Excel选项里选中了“R1C1”引用样式 , 工作表中的行号、列标就会都变成数值 。此时使用“R行号C列号”的形式来表示一个单元格的地址:
INDIRECT用不好 indirect

文章插图
接下来咱们先看看这个函数的引用过程 。
如下图所示 , B2单元格中是具有引用样式的字符“E3” , E3单元格中的内容是“我是E3” 。
G3使用以下公式 , 返回结果为“我是E3” 。
=INDIRECT(B2)
INDIRECT用不好 indirect

文章插图
在“多表汇总”工作表的C3单元格输入以下公式 , 下拉:
=SUM(INDIRECT("'"&B3&"'!H:H"))
这个公式里 , INDIRECT函数的参数看起来多了一些奇怪的符号 , 是什么意思呢?
这里面的参数以&为间隔 , 分成了三段:
"'" 这部分是一对双引号 , 中间是一个单引号 。其中的单引号就是咱们要得到的字符 , 一对双引号是在公式中输入字符串时 , 在字符串外面必须要加上的 。
B3 表示B3单元格的地址 。
"'!H:H" 这部分外侧是一对双引号 , 表示双引号里面是字符串 , 中间的字符串是'!H:H 。
这三部分组合起来 , 就是带有单引号的工作表名称以及具体的单元格地址了 。
咱们在编辑栏中选中 "'"&B3&"'!H:H" 这部分 , 按F9键看看 , 得到的字符串就是:"'十里河'!H:H"
INDIRECT用不好 indirect

文章插图
在工作表名称前后各有一个单引号 , 是什么意思呢?
这是因为“方 庄”这个工作表名称里带有空格了 , 如果引用工作表名称中包含有空格等特殊符号或以数字开头时 , 就需要在公式中的工作表名前后加上一对半角单引号 。而工作表名称中没有空格或特殊符号的 , 这对单引号加或不加都可以 。
INDIRECT函数把字符串"'十里河'!H:H"变成实际的引用后 , 再使用SUM函数求和 , OK了 。
接下来咱们看看INDIRECT函数结合R1C1样式的用法 。
如下图所示 , 要在汇总工作表中 , 汇总出几个明细表不同月份的总额 。
INDIRECT用不好 indirect

文章插图
首先来观察一下 , 在十里河等几个明细表里 , 1月份的数据在B列 , 2月份的数据在C列……
在汇总工作表里 , C3单元格的公式可以写成这样 , 然后下拉:
=SUM(INDIRECT("'"&B3&"'!B:B"))
INDIRECT用不好 indirect