也许没听说过INDIRECT函数,但你一定听说过穿越,穿越是从一个地方直接就能到另外一个地方,另外一个世界,说起来到有点像地道战,从这个口进去,从另外一个口冒出来。Excel里面就有这样的函数会穿越,能够从一个单元格穿越到另外一个单元格,你相信吗?
你可以先试一下,在单元格B5中输入一个字“穿越”,然后在任意一个单元格如A6中输入下面的公式:
=INDIRECT("B5")
你会发现,A6中出现了和B5单元格一模一样的数据内容,就好像是B5单元格的内容发生了穿越,直接从A6冒出来了一样,怎么样,好玩吧?
说到这里,你可能也大概了解了这个函数的功能,就是在参数里设定一个单元格地址,然后这个函数就能把这个地址所指示的单元格内的数据给显示出来。
这还只是一般的用法,最近又发现这个函数有个比较巧妙的用途
以往当我们在一张Excel表格当中引用另外一张表格某个单元格的内容的时候,通常都会输入公式
=sheet2!B5
然而当你不小心或者为了更新数据而删除了sheet2工作表的时候,你会发现,你输入公式的那个单元格出现了可怕的引用错误符号#REF!,公式也变成了这个样子
=#REF!B5
也许你后悔了,重新建立一张表,并且把表的名字设置的跟原来的一模一样,可惜参照错误还是不会改变,这个时候你也许会重写公式,但是有了INDIRECT函数,你就不用这么烦恼了。
你可以把公式写成:
=INDIRECT("sheet2!B5")
这个时候如果你删除了Sheet2表,照样会出现引用错误,不过现在你不必担心,只要你再建立一个名字为Sheet2的表格,那么引用错误就会消失,并且会找到Sheet2里面的B5单元格的值显示出来。
这特别适合需要整张表资料都要替换掉的情况,不用重写公式,只需把原表删除,然后再把新表复制进来,改成对应的名字就好了。