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函數的作用所住,將上面的地址轉標識換成了實際的地址。

看下面的截圖:

返回值:

今日內容迴向:

  1. ADDRESS 函數的意義是什麼?

2. INDIRECT函數 的返回值如何區分是地址的引用還是地址值的引用。

我從事管理工作多年,這一系列文章是根據多年的經驗編寫的,也是一直在利用的工具,非常方便好用。現在分享出來,希望能對同樣在職場打拚的朋友有些許的幫助。

我的公眾號「VBA與GOLANG語言學習」或「NZ_9668」和「VBA學習交流社群」里有更多的內容分享。對數據分析有需要的公司、組織或個人可以直接加入聯繫我,為你提供專業的技術支持。朋友們有問題請隨時提出來,我們一起探討學習。目的就是玩轉Excel、VBA,提高工作效率,能有更多的時間和精力享受生活。


推薦閱讀:

TAG:Excel公式 | Excel函數 |