INDIRECT的用法太重要了,财务人一定要掌握

最近财务数据整理、财务分析的工作太多了,快累屁了,由于涉及分析的城市比较多,年度、月度期间的维度太多了,快速的从基础表中提取数据的方法就显得很重要了。最近几天用的最比较频繁的就是indirect这个函数了。

这个函数呢我也只是用了五六年,但是最近使用的频度尤其的高,它是干什么么的,其实可以理解为是一个组合工具,比如我想做一个表,但是数据要从各个sheet中取数,比较小白的办法就是直接等于某个sheet中的数,或用公式提取比如VLOOKUP等,但是都需要点开需要提取的工作表,但是indirect是可以很完美的解决这个问题,尤其是对于涉及部门、子分公司比较多,或产品品类比较多的数据处理时,用这个函数就很有必要了。

先看语法:

这个语法其实就是给一个单元格的地址的值,比如我想取A1单元格的值,我就输入indirect(\”A1\”)就可以了,记者这个双引号是必须的。

大家可以看到这个公式的结果是A1的值,当然这是了解这个函数的最原始的用法,我们逐步加大难度,比如下面的表:

我们合计的这个表的数据要从后面的sheet表中进行提取,如下济南的表合计列的数据,其他各城市类似。

接下来怎么做呢,跟着我来,在B5单元格输入=INDIRECT(B4&\”!B5\”),我们就得到了济南的营业收入的数据

然后向后拖动,我们就可以得到其他城市的数据了,如果向下我们把B5改为B6就行,如果觉得,麻烦我们可以把公式调整改为=INDIRECT(B$4&\”!\”&\”B\”&ROW(A5)),然后左右上下拖动公式即可。效果如下:

大家需要注意的是,变量不加\”\”,但是文本一定要加\”\”,变量可以理解为单元格的值,比如INDIRECT(B4&\”!B5\”)的B4就是变量,比如我们把B4单元格的文本济南改为南京或其他任何城市,这个公式链接就会到具体城市的单元格,但是加引号的“B5”就是常量,是一个不变的,就是B5单元格。

还有一个就是我在使用的过程中发现sheet名很关键,indirect对于一些字符是不能识别的,比如山东-济南,我们需要用山东_济南,必须是英文的下标线。如果用-,是会报错的。

大家如果喜欢我的文章,欢迎关注微信公众号:跟我学EXCEL图表

INDIRECT用不好,加班不要怪领导

小伙伴们好啊,今天咱们来学习一个比较有趣的函数——INDIRECT。

这个函数的作用,是将“具有引用样式的文本字符串,变成真正的引用”。

参数也非常简单:

INDIRECT(具有引用样式的字符串,[引用样式])

如果第二参数为TRUE或省略(包括参数值和逗号),会将第一参数中的字符串解释为A1样式的引用,如果第二参数为FALSE或是0,则将第一参数中的字符串解释为R1C1样式的引用。

具体啥是A1引用样式,啥是R1C1引用样式呢?

咱们日常使用的工作表里,默认就是A1引用样式,也就是用字母列标,用数字表示行号,两者组合到一起,来表示一个单元格的地址:

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

接下来咱们先看看这个函数的引用过程。

如下图所示,B2单元格中是具有引用样式的字符“E3”,E3单元格中的内容是“我是E3”。

G3使用以下公式,返回结果为“我是E3”。

=INDIRECT(B2)

这个公式里,INDIRECT函数的参数是B2单元格,INDIRECT函数把B2单元格中带有引用样式的字符“E3”变成了E3单元格的实际引用,最终返回E3单元格里的内容。

再看下图中G3单元格中的公式:

=INDIRECT(\”E3\”)

这个公式里,INDIRECT函数的参数“E3”带有双引号,说明“E3”仅仅是一个文本字符串,而不是单元格地址,INDIRECT函数把带有引用样式的字符“E3”变成了E3单元格的实际引用,最终返回E3单元格里的内容。

接下来看一个多表汇总的实例。

如下图所示,有名为“十里河”、“饮马井”、“大洋路”和“方 庄”的几个工作表,现在要从“汇总”工作表里,汇总这几个工作表中的H列合计数。

在“多表汇总”工作表的C3单元格输入以下公式,下拉:

=SUM(INDIRECT(\”\’\”&B3&\”\’!H:H\”))

这个公式里,INDIRECT函数的参数看起来多了一些奇怪的符号,是什么意思呢?

这里面的参数以&为间隔,分成了三段:

\”\’\” 这部分是一对双引号,中间是一个单引号。其中的单引号就是咱们要得到的字符,一对双引号是在公式中输入字符串时,在字符串外面必须要加上的。

B3 表示B3单元格的地址。

\”\’!H:H\” 这部分外侧是一对双引号,表示双引号里面是字符串,中间的字符串是\’!H:H。

这三部分组合起来,就是带有单引号的工作表名称以及具体的单元格地址了。

咱们在编辑栏中选中 \”\’\”&B3&\”\’!H:H\” 这部分,按F9键看看,得到的字符串就是:\”\’十里河\’!H:H\”

在工作表名称前后各有一个单引号,是什么意思呢?

这是因为“方 庄”这个工作表名称里带有空格了,如果引用工作表名称中包含有空格等特殊符号或以数字开头时,就需要在公式中的工作表名前后加上一对半角单引号。而工作表名称中没有空格或特殊符号的,这对单引号加或不加都可以。

INDIRECT函数把字符串\”\’十里河\’!H:H\”变成实际的引用后,再使用SUM函数求和,OK了。

接下来咱们看看INDIRECT函数结合R1C1样式的用法。

如下图所示,要在汇总工作表中,汇总出几个明细表不同月份的总额。

首先来观察一下,在十里河等几个明细表里,1月份的数据在B列,2月份的数据在C列……

在汇总工作表里,C3单元格的公式可以写成这样,然后下拉:

=SUM(INDIRECT(\”\’\”&B3&\”\’!B:B\”))

这里是根据C列的店铺名称,来引用同名工作表B列的数据,然后使用SUM函数求和。

但是其他月份的汇总公式,就要把公式中的B:B分别改成C:C、D:D、E:E……才可以。

其实咱们可以在C3单元格输入下面这个公式,然后向下、向右拖动就可以了:

=SUM(INDIRECT(\”\’\”&$B3&\”\’!C[-1]\”,))

INDIRECT函数第二参数省略了参数值,仅使用一个逗号占位,表示将字符串解释为R1C1引用样式。

再看这一段字符串\”\’\”&$B3&\”\’!C[-1]\”最终是啥结果:

“十里河”是工作表名称,这个不用说了。

字符串里面的“C”,表示列,C[-1] 则表示公式所在列左侧一列的整列引用。

咱们让公式以自身所在列为参照,根据B列指定的工作表名称,始终引用这个工作表里,公式所在位置左侧的列。这样当公式向右复制时,就不需要改变表示列的参数了。

好了,关于INDIRECT函数的用法今天咱们就分享这么多,祝各位一天好心情!

图文制作:祝洪忠

本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com

点赞 0
收藏 0

文章为作者独立观点不代本网立场,未经允许不得转载。