[心得] Excel如何以INDIRECT函數間接引用

作者: moodyblue   2019-05-11 22:15:07
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

Links booklink

Contact Us: admin [ a t ] ucptt.com