ADDRESS函數和INDIRECT函數的綜合利用
之前,在這個平台上講過INDIRECT函數,很多的讀者反饋這個函數不是讓人理解的很透徹,讓我再結合一下實例再講解一下,今天就滿足讀者的要求。我們再複習一下這個函數:
INDIRECT函數是 Excel 中的公式,此函數立即對引用進行計算,並顯示其內容。INDIRECT為間接引用。
語法INDIRECT(ref_text,[a1])。參數Ref_text 為對單元格的引用,一種加引號,一種不加引號。加引號,文本引用,不加引號,地址引用。
怎麼理解上面的函數意義呢?今日將用一個實例來講解。為此我們再引入一個與相對應用和絕對引用相關的函數ADDRESS函數。我們先看看這個函數的作用是什麼
ADDRESS 函數:按照給定的行號和列標,建立文本類型的單元格地址。
語法:ADDRESS(row_num,column_num,abs_num,A1,sheet_text)
其中:Row_num 在單元格引用中使用的行號;Column_num 在單元格引用中使用的列標。
ABS_num 返回的引用類型,有以下幾種情況:
值為1或省略,表示絕對引用;
值為2,表示絕對行號,相對列標;
值為3,表示相對行號,絕對列標;
值為4,表示相對引用。
A1 用以指定 A1 或 R1C1 引用樣式的邏輯值。如果 A1 為 TRUE 或省略,函數 ADDRESS 返回 A1 樣式的引用;如果 A1 為 FALSE,函數 ADDRESS 返回 R1C1 樣式的引用。
Sheet_text 為一文本,指定作為外部引用的工作表的名稱,如果省略 sheet_text,則不使用任何工作表名。
舉例:ADDRESS(2,3)絕對引用($C$2)
ADDRESS(2,3,2)絕對行號,相對列標(C$2)
ADDRESS(2,3,2,FALSE)在R1C1引用樣式中的絕對行號,相對列標(R2C[3])
ADDRESS(2,3,1,FALSE,"[Book1]Sheet1")對其他工作表的絕對引用([Book1]Sheet1!R2C3)
ADDRESS(2,3,1,FALSE,"ETSHEET")對其他工作表的絕對引用(ETSHEET!R2C3)
我們看下面的一個簡單的求和公式及截圖:
上面的公式中出現了A2和E2,
由於ADDRESS(2,1,4)=「A2」ADDRESS(2,5,4)=」E2」,那麼公式中用後面的兩個ADDRESS的公式來代替A2,和E2,公式變成:
= =SUM(ADDRESS(2,1,4):ADDRESS(2,5,4))是否可以呢?如果有跟著我的講解實際操作的朋友,可以馬上將上述的公式複製粘貼到EXCEL中,你會發現是不可以的,為什麼呢?
這是因為=SUM(ADDRESS(2,1,4):ADDRESS(2,5,4))在做下一步運算時變成SUM(「A2」:」E2」)而公式無法識別此地址。這也是ADDRESS的一個坑。為了解決這個問題,就要用到INDIRECT函數:
將公式變成=SUM(INDIRECT(ADDRESS(2,1,4)):INDIRECT(ADDRESS(2,5,4)))
將上面的公式錄入到EXCEL中你會發現問題解決了,這就是INDIRECT函數的作用所住,將上面的地址轉標識換成了實際的地址。
看下面的截圖:
返回值:
今日內容迴向:
- ADDRESS 函數的意義是什麼?
2. INDIRECT函數 的返回值如何區分是地址的引用還是地址值的引用。
我從事管理工作多年,這一系列文章是根據多年的經驗編寫的,也是一直在利用的工具,非常方便好用。現在分享出來,希望能對同樣在職場打拚的朋友有些許的幫助。
我的公眾號「VBA與GOLANG語言學習」或「NZ_9668」和「VBA學習交流社群」里有更多的內容分享。對數據分析有需要的公司、組織或個人可以直接加入聯繫我,為你提供專業的技術支持。朋友們有問題請隨時提出來,我們一起探討學習。目的就是玩轉Excel、VBA,提高工作效率,能有更多的時間和精力享受生活。
推薦閱讀: