=Indirect("a2")
=Indirect(a2)
以上两个公式究竟哪个对哪个错?现实中该怎么用?相信很多刚才开始学习Indirect的同学都被迷惑过。
其实,只要A2里输入恰当的内容,两个都对,只不过结果不同而已,是不是更迷惑了?
我们还是先从Indirect的身世说起吧:Indirect是个间接引用函数,说白了,他就是个引用,比如我们要引用A2单元格里的内容,最简单的直接引用,就是直接“=A2”,除此之外,还有一种间接引用的方式,就是用函数公式来引用A2这个单元格的地址。
好吧,既然要用函数公式,那就得遵守函数公式的规则:等号&函数名&左括号&参数&右括号,那么在这里,间接引用的函数名是“Indirect”,参数是“A2”这个单元格的地址,注意啊,这里是“地址”,所以在函数中是要用一对引号引起来,不能因为他长得像单元格引用就拿他当单元格引用来用。完整的函数公式就应该写成:
=Indirect("a2")
这个,才是Indirect行号列标间接引用的原型!
不用引号又会怎么样呢?那就完全变味了:
=Indirect(A2)
excel生成动态的规律序列(Row/Column与Indirect函数)
因为Row和Column的特殊性,我们可以利用此来生成有规律的序列,比如:=Row(a1)下拉=Column(a1)右拉但这样的公式不利于再在外面套公式,所以我们利用数组的特性,将参数里的一个地址扩展成一
看看,这一溜8个公式,只有最后两个出结果了,而且还是稀奇古怪的结果,这又是怎么来的呢?大脑思考有难度那就换用膝盖思考吧:
Indirect的参数必须是单元格地址,而A2里的内容是一个数字15,很明显和单元格地址扯不上任何关系嘛,所以就错了,后面的几个也是同样的道理,谁的工作表一打开,里面会有个叫“甲”的单元格?除非设置了自定义。
当公式引用到A8时,A8单元格里的内容是F5,所以这公式就是间接引用了A8单元格里的地址“F5”的内容,不幸的是F5里没内容,所以就0了。
最后一个,公式是间接引用了A9单元格里的地址C8,而C8里的内容刚才是“F5”……嘿嘿,所以就F5了。要不您试试公式求值(公式》公式审核》公式求值),看看结果是什么,是不是由“Indirect(A9)”变成了“Indirect("C8")”?
至于Indirect的以下变种:
=INDIRECT("A"&公式)
=INDIRECT("R"&公式&"C"&公式,)
=INDIRECT(TEXT(11,"R0C0"),)
归根结底,都是要制造出一堆长得像单元格地址的字符串出来,这样才好作为Indirect的参数,把那个地址里的内容给引出来。
Excel中可以引用自身的函数
在不抽风的情况下,一个函数如果引用自身单元格是要报循环的,例如:在A1输入=sum(a1:a10)但也有特例,那就是:有请今天光辉灿烂的主角:ROWCOLUMN先说ROW,这是个低调的函数,总是返回数