今天介紹一下Indirect函數。這個函數屬于特別有用的一個函數,但是很多人并不太了解它的作用。今天我們就詳細介紹一下。 01 這個函數的語法特別簡單: INDIRECT(ref_text,[a1]) 一般可以不用管第二個參數(缺省即可,表示單元格引用樣式),起作用的就是第一個參數。 這個函數的作用就是返回一個引用,這個引用的地址就是第一個參數的文本字符串告訴我們的。 例如: =INDIRECT("A1") 這個公式返回的是對單元格A1中的引用,顯示的是A1中的值 =INDIRECT(A2) 這個公式返回的是對一個地址的引用,這個地址寫在A2單元格中。 第一個參數的文本可以是單元格或者單元格區(qū)域,以及名稱,可以是手工輸入的字符串,比如“A1:B20",也可以是其他公式返回的字符串,比如vlookup,或者使用"A" & 20。 需要特別強調一下的是,這個函數返回的是個地址(要么是單元格或者單元格區(qū)域,要么是名稱),不是一個值。 例如,下面的公式: =SUM(INDIRECT("A1:A20")) 中INDIRECT("A1:A20")實際上返回的是單元格區(qū)域A1:A20,所以該公式等價于” =SUM(A1:A20) 02 下面我們介紹一些經常用到INDIRECT函數的場景和示例。 利用其他函數生成地址 =SUM(INDIRECT("A1:A"&ROW())) 這個公式是計算A1開始的一列區(qū)域的合計,到哪個單元格是根據當前公式所在的單元格的行號決定的,如果公式在C100,那么這個求和區(qū)域就是A1:A100。 這里的Row()可以換成其他函數,例如Match返回一個索引位置。 引用其他工作表的地址 =INDIRECT("'[你的Excel文件.xlsx]你的工作表'!你的地址") 這里你的Excel文件,你的工作表,你的地址三部分都可以是動態(tài)生成的。 例如: =INDIRECT("'[" & C1 &"]Sheet1'!A1:A100") 返回的是某個文件的工作表Sheet1的A1:A100區(qū)域的引用。這個文件的名字由C1單元格的內容確定。 引用名稱 假設,我們有以下數據: 可以定義名稱: 就可以根據選擇的區(qū)域動態(tài)求合計: 其實,引用名稱還有一個最常見的場景,在做級聯下拉列表時,第二個列表必須是: =INDIRECT(B2) 其中B2是第一個列表,返回的是個字符串,比如“財務部”,于是,這個公式就返回對財務部這個名稱的引用(前提是我們必須先定義財務部這個名稱)。 具體可見文章:創(chuàng)建級聯列表選擇 |
|