工作中,我们经常碰到多表运算。你是否想到indirect函数?
首先,我们看下indirect这个单词翻译为汉语的含义:间接的,拐弯抹角的,迂回的,间接法。总之,可以理解为“间接”,“迂回”。
我们通过下面的这个小测试,先理解下。
A1,B1的单元格内容,如上图所示
第一种用法:
直接在C1单元格输入公式=INDIRECT(B1),得出的结果为A1单元格的内容
“函数名称”,不要着急,我们可以用F9抹黑这个公式理解下。
F9抹黑后,变为=INDIRECT('A1')---->='函数名称'得出结果----函数名称。
第二种用法:
直接在C2单元格输入公式=INDIRECT('B1'),得出结果为B1单元格的内容,即
A1.
这两个公式的区别在于是否有引号。
不加引号,可以理解为调用B1单元格的内容,并且还要赋予给调出来的内容一定的属性。
加上引号,就可以理解为直接把B1单元格内的内容揪出来。
看到这里,您可能还不理解,没关系,你按照上面的做法,亲自做一遍,看能否加深理解,小编当初在学习这个函数时,也是非常“迂回”,亲自操作两遍,您还不能理解,可以在公众号直接回复小编。
indirect,如果只是这么用,就大材小用了,下面我们看一个案例。
如下工作簿,sheet1为总表,sheet2到sheet10均为明细表,我们在总表中用公式算出各明细表的数量。
明细表的格式如下:
此问题可以理解为在J列调出个明细表的F6单元格的数字。
作为表弟表妹,我们绝对不能每个单元格都要输入=Sheet2!F6、=Sheet3!F6。。。。。如果表很多的话,我们岂不是要累死在键盘上。
这个时候我们就要用到indirect迂回了。
J2输入公式=INDIRECT('sheet'&ROW(2:2)&'!F6'),
结果为Sheet2!F6,依次下拉即可得出我们想要的结果。
拆解一下:
indirect里面分别用&链接了三个字符串sheet,ROW(2:2),!F6。
STEP1:sheet代表工作表
STEP2:ROW(2:2),代表通过row函数得到数字2,以此类推ROW(3:3)就是数字3.
STEP3:!F6代表单元格F6,注意一定要有感叹号。
看到这里,你或许还没有理解,没关系按照这个案例亲自做一遍,相信会加深你的理解程度。一定要亲自练一遍。这个教训是小编用血和泪得到的。
如果对你有帮助,你也可以分享给你的同事,免得她每次不会的问题都要问你,你可以大胆的给他说,你直接问这个公众号的小编就好了。
联系客服