Excel如何以INDIRECT函数间接引用
网志图文版:
https://www.b88104069.com/archives/4387
Excel强大之处在于将工作表分成一格一格的座标方格纸,每个储存格可以方便快速地参
照引用其他储存格内容,进而将此参照设计在函数公式里。这么做衍生的好处之一,来源
资料的内容有更新时,引用储存格或函数公式也会跟着更新。
不过,实际操作常会遇到把来源资料所在的工作表删除,此时会发现,引用的参照或者函
数公式被切断,变成显示错误,这错误无法修复,即使后来补上相同名称、相同内容结构
的工作表,仍然没办法将参照修补上,必须再重新操作连结一次,徒增重工。在此要介绍
如何运用INDIRECT函数,建立相对较为稳定的储存可参照。
一、现场生产月报表,每个月都有一份,目前是一到六月,希望将其汇总。
二、最直接、最原始的方法为储存格参照:“=一月!D2”。
三、此时如果将一月份工作表删除,原来储存格参照等于被切断,显示“=#REF!”,意思
是参照失效。
四、直接参照连结被切断了,只能重新再引用,例如即使把更新后的一月再补入,仍然是
“=#REF!”。
五、设使一开始并非直接引用,而是间接引用:“=INDIRECT("'一月'"&"!D2")”,如此
即使后来“一月”工作表删除,同样会“#REF!”参照失效,但只要此活页簿中,再次补
入“一月”工作表,又会重新建立和“一月”工作表“D2”储存格的连结,因为透过
INDIRECT函数公式,这个连结是绝对建立在工作表名称和储存格位址上的,读者可自行尝
试看看。注意到如果是纯粹文字,是遵守“=INDIRECT(+"'工作表名称'"&"!储存格位址
")”这样的规律,工作表名称两旁有英文单撇号“'”,储存格位址前面有惊叹
号“!”。
六、INDIRECT函数不仅仅用简单的直接引用,它等于是开了一道大门,将参照引用由鼠标
操作切换成函数公式,因此在很多场合会都能用上,例如VLOOKUP函数:“
=VLOOKUP(B1,INDIRECT(A4&"!C:D"),2,0)”。
七、同样地,将INDIERCT函数嵌入到SUMIF函数公式中:“
=IFERROR(SUMIF(INDIRECT($A5&"!C:C"),B$1,INDIRECT($A5&"!D:D")),0)”,从这里可
以见得,INDIRECT是相对较为进阶、不容易设计阅读的函数,但在某些特定场合,没有此
函数会是相当麻烦,反过来说,巧妙使用INDIRECT函数大大提升效率,尤其是自动批量引
用参照的案例。
引用参照其他储存格时,无论相同工作表或者跨工作表,鼠标光标点选太过容易,以至于
都会忘了其实在编辑列里非常清楚,Excel是以特定文字方式表示参照连结,纵然鼠标点
选的好处是方便,然而鼠标点选如同执行指令,不能建立重复大量循环的执行规则,
INDIRECT函数刚好填补了这个空缺,能以函数公式间接引用的方式,依照工作表名称和储
存格位址建立连结。实务工作中很多场合可以设计INDIRECT函数公式达到繁琐操作的自动
化,除了这一节所介绍范例,往后再以适当范例和各位分享。
延伸阅读:
Excel如何简化图表元素成报表图像
https://www.b88104069.com/archives/4386
Excel如何更改资料排列呈现销售统计图表
https://www.b88104069.com/archives/4384
Excel利用数列重叠编制预算达成率图表
https://www.b88104069.com/archives/4378