Excel Indirect函數引用方法及與Address和Match組合批量提取數據

2020-12-12 電腦技術角

在 Excel 中,Indirect函數用於返回文本字符串指定的單元格引用;它共有兩個參數,第一個參數是文本字符串,第二個參數是引用類型,特別要注意第一個參數必須為文本,否則會返回錯誤。它既能在同一工作簿中引用又能跨工作簿引用,但引用不能超過 Excel 允許的最大行數和最大列數;另外,Indirect函數通常與Address、Match、Row、Column函數組合使用實現在同一表格按條件批量提取數據和把數據從多個表格提取到一個表格;以下就是Excel用Indirect函數引用單元格和提取數據的具體操作方法,共有6個實例,實例操作中所用版本均為 Excel 2016。

一、Excel Indirect函數語法

1、表達式:INDIRECT(Ref_Text, [A1])

中文表達式:INDIRECT(引用文本, [引用類型])

2、說明:

A、Ref_Text 既可以是內部引用(在本工作簿中引用)又可以是外部引用(對另一工作簿的引用),如果是外部引用,所引用的工作簿必須打開,否則將返回引用錯誤 #Ref!;另外,Excel Web App 不支持外部引用。

B、Ref_Text 引用的單元格區域不能超出 Excel 允許的最大行數 1048576 或最大列數 16384(XFD),否則也返回 #REF! 錯誤;但 Excel 早期版本會忽略這一限制且返回一個值。

C、A1 有兩個可選值,即 True(或省略)和 False;如果為 True,則解釋為如 A1 這樣的引用;如果為 False,解釋為 R1C1,R 表示「行」,C 表示「列」,R1C1 表示對第一行第一列的引用,即 A1。無論哪種引用方式,如果引用單元格不存在,都將返回錯誤。

二、Excel Indirect函數的使用方法及實例

(一)A1 為 True(或省略)的實例

1、假如要返回任意指定單元格的內容。雙擊 A8 單元格,輸入公式 =Indirect(a4),按回車,返回 #REF! 錯誤;雙擊 A8,把公式改為 =INDIRECT("A"&4),按回車,返回 A4 中的內容「沙糖桔」;再次雙擊 A8,在公式後輸入 True,按回車,返回與上次一樣的結果;操作過程步驟,如圖1所示:

圖1

2、公式說明:

A、公式 =Indirect(a4) 之所以會返回引用錯誤 #REF!,是因為Indirect函數的第一個參數 Ref_Text 必須為文本,而 a4 是對具體單元格的引用,a4 在公式中會解析為它的內容「沙糖桔」,按住 Alt,分別按 M 和 V 打開「公式求值」窗口後求值可知,演示如圖2所示:

圖2

B、而公式 =INDIRECT("A"&4) 能返回正確的值,是因為 "A"&4 為文本,因此要使Indirect函數返回正確的值,它的第一個參數必須為文本。

(二)A1 為 False 的實例

1、雙擊 D8 單元格,輸入公式 =INDIRECT("R"&ROW(A5)&"C"&COLUMN(D1),FALSE),如圖3所示:

圖3

2、按回車,返回第五行第四列(即 D5)中的數值 1558,如圖4所示:

圖4

3、公式說明:ROW(A5) 返回 A5 的行號 5;COLUMN(D1) 返回 D1 的列號 4;則公式變為 =INDIRECT("R"&5&"C"&4,FALSE),進一步計算把每個字符連接起來,即 "R5C4",也就是引用第 5 行第 4 列,即 D5; R 和 C 分別代表行和列。

(三)引用 Excel 允許的最大行數或列數實列

1、雙擊 B2 單元格,把公式 =INDIRECT("A"&1048576) 複製到 B2,按回車,返回第一列最後一行的值 1048576;選中 A1,按快捷鍵 Ctrl +「向下方向鍵」定位到最後一行,可以看到 A1048576 中值正是返回值,當往下移動時,再也沒有出現空行,說明已到 Excel 允許的最大行數;再按 Ctrl +「向上方向鍵」重新回到第一行,雙擊 B3,輸入公式 =INDIRECT("XFD"&1),按回車,返回第一行最後一列的值 16384,按 Ctrl +「向右方向鍵」定位到最後一列,XFD1 的值恰好是返回值,並且 XFD 已經是 Excel 允許的最後一列,按 Ctrl +「向左方向鍵」定位回第一列;操作如圖5所示:

圖5

2、上面的公式也可以用 R1C1 的樣式,例如返回 Excel 允許的最大行數和列數所對應的單元格中的值,公式可以這樣寫 =INDIRECT("R"&1048576&"C"&16384,FALSE),把公式複製到 XEY1048576 單元格,如圖6所示:

圖6

按回車,返回 XFD1048576 中的數值 10065536,如圖7所示:

圖7

(四)Indirect函數跨表引用實例

1、假如要在一個工作表(水果表1)中引用另一個工作表(水果表2)的 A2。雙擊「水果表1」的 B8 單元格,把公式 =INDIRECT("水果表2!"&"A2") 複製到 B8,按回車,返回「香蕉」,單擊標籤「水果表2」切換到它,A2 中的文字正是返回值;操作如圖8所示:

圖8

2、用Indirect函數跨表引用(即外部引用),只需在所要引用的單元格前多加工作表名稱和感嘆號 !,並且要用雙擊引號把它們括起來,如演示中的「"水果表2!"&"A2"」。

三、Excel用Indirect函數批量提取數據

(一)Indirect + Row + Address + Column 組合實現把多個表格中指定行的數據提取到一個表格

1、假如要把三個表格(4月、5月和6月)中的第 5 行 B 到 D 列提取到「總表」。雙擊 B2 單元格,把公式 =INDIRECT(ROW(A4)&"月!"&ADDRESS(ROW($A$5),COLUMN(B$1))) 複製到 B2,按回車,返回表格「4月」中 B2 的名稱「紅色雪紡T恤」,選中 B2,把滑鼠移到 B2 右下角的單元格填充柄上,滑鼠變為粗體加號後,按住左鍵,往右拖,一直拖到 C2,則返回「紅色雪紡T恤」的價格和銷量;再把滑鼠移到 C2 的單元格填充柄上,往下拖,則返回表格「5月和6月」第 5 行 B 列至 D 列的數據;操作步驟,如圖9所示:

圖9

2、公式 =INDIRECT(ROW(A4)&"月!"&ADDRESS(ROW($A$5),COLUMN(B$1))) 說明:

A、ROW(A4) 返回 A4 的行號 4,這裡用於返回工作表「4月」中的 4,因為要提取數據的表格前面是 4、5、6,當往下拖時,A4 會變為 A5、A6,也就是自動變為其餘表格的名稱。

B、$A$5 中的 $ 表示絕對引用,A 和 5 前都有它,說明對列和行都是絕對引用,即無論是往右還是往下拖,A5 都不會變;ROW($A$5) 返回 A5 的行號 5,並且無論往哪拖,始終返回行號 5。

C、B$1 表示對列相對引用而對行絕對引用,往右拖時,B1 會變為 C1、D1 等,在這裡用於實現返回不同列的列號;COLUMN(B$1) 返回 B1 的列號 2,當拖到 C1 時,返回 C1 的列號 3,其它的以此類推。

D、則公式變為 =INDIRECT(4&"月!"&ADDRESS(5,2));ADDRESS(5,2) 中,5 為行號、2 為列號,其作用是返回第五行第二列的引用,即返回 $B$5;則公式變為 =INDIRECT(4&"月!"&$B$5),也就是返回工作表「4月」中 B5 的內容。

(二)Indirect + Match + Column 組合實現按條件批量提取數據

1、有一個月份銷量表,假如要求提取任意月份的銷量。雙擊 B12,把公式 =INDIRECT("r"&MATCH($A12,$A$1:$A$9,)&"c"&COLUMN(),0) 複製到 B12,按回車返回「T恤」「1月」的銷量 567;選中 B12,用往右拖的方法提取「1月」剩餘服裝的銷量,再用往下拖的方法提取「3月和7月」的銷量;操作步驟如圖10所示:

圖10

2、公式 =INDIRECT("r"&MATCH($A12,$A$1:$A$9,)&"c"&COLUMN(),0) 說明

A、MATCH($A12,$A$1:$A$9,) 用於返回 A12(即「1月」) 在 A1:A9 中的位置,Match函數省略了最後一個參數,默認查找小於等於查找值「1月」的最小值,「1月」在 A1:A9 的第二個位置,因此返回 2,但 A1:A9 需要按升序排序,否則可能返回不正確的位置。

B、COLUMN() 返回公式所在列的列號,當公式在 B12,返回列號 2;當公式在 C12 時,返回列號 3;其它的以此類推。

C、則公式變為 =INDIRECT("r"&2&"c"&2,0),繼續計算變為 =INDIRECT("r2c2",0);r2c2 表示返回第二行第二列對應單元格的引用,即返回 B2 中的數值;參數 0 相當於 False,即把 "r2c2" 解釋為 R1C1 的樣式。

相關焦點

  • Excel引用函數indirect教程
    原創作者 | 李銳微信公眾號 | Excel函數與公式(ID:ExcelLiRui)個人微信號 | (ID:ExcelLiRui520)關鍵字:indirectExcel引用函數indirect教程Excel中的引用函數indirect應用極其廣泛,很多問題的解決都離不開這個她的神奇助攻
  • Excel如何跨工作表動態引用數據(合併匯總必備)
    這裡介紹一個常用函數:indirect(以下都不解釋函數原理,反正寫了也沒人看^ ^)*但這種方法Link的話無法通過追溯公式直接定位到對應單元格,推薦使用建立工作表的超連結替代1、Indirect的簡單使用2、Indirect配合match/Lookup使用3、其他配套事項簡單來說,當使用indirect跨工作表引用時
  • excel中indirect函數使用方法和應用實例
    內容提要:本文通過實例詳細介紹excel中indirect函數的使用方法和在數據有有效性和三維引用的應用
  • Excel中雙向查找,除Index和Match組合,還有3種組合,你用過嗎
    ,包含4個參數,即vlookup(本表查找目標,他表查找區域,他表查找區域裡的目標所在的列數,邏輯值),用match函數查找3月(D12數據)所在列數,即MATCH(D12,$C$4:$I$4,0)=4,作為Vlookup函數的第3個參數。
  • 函數index與函數column、match組合用法在實際操作中的應用
    excel在上一篇文章中,我們詳細介紹了函數left、函數right、函數if和函數mod組合用法在實際操作中的應用,具體解決的問題是提取身份證號碼中的性別位號碼,並根據性別位號碼判斷性別今天我們來介紹函數index和函數column、函數index和match這兩組組合在實際操作中的應用。(對於函數left、函數right、函數if和函數mod的組合用法感興趣的朋友可以看完該篇文章之後參考文章
  • excel中index—match查找函數實例講解
    在excel中,運用查找函數是excel中進行數據統計分析最常用的操作之一,說起查找函數,很多人首先會想到vlookup函數,其實excel中的查找函數有很多種
  • 人見人怕的Indirect函數【Excel分享】
    B:B"作為sumif函數第2參數由於indirect構建了多維,這裡sumif函數有降維的作用最後為什麼還要在外嵌套一個sum函數呢,因為一個工作表有一個求和結果,3個表就有3個求和結果,所以最後還要把這3個結果相加第3個案例:提取取連連的字母
  • excel中使用vlookup函數查找老出錯?試試index—match函數吧
    在excel中,運用查找函數是excel中進行數據統計分析最常用的操作之一,說起查找函數,很多人首先會想到vlookup函數,其實excel中的查找函數有很多種,比如lookup、index-match等,尤其是index—match函數的使用範圍比vlookup函數更加廣泛,在反向查找、橫向查找等方面能夠克服vloolup函數的不便,提供更加容易理解的查找思路
  • Excel跨表查詢:vlookup+indirect函數組合,你都不知道有多強大
    江湖傳聞在excel查找界頗有名氣的vlookup函數即將退休,微軟官方也公布將迎來的是xlookup函數,據說功能也是強大的一批!目測感覺有些用法就是vlookup函數和lookup函數的結合體啊,但在目前形勢來看普及該函數可能還需要一段時間,因為還需要考慮各個excel版本版的兼容性!
  • Excel函數公式教程:index+match函數組合實戰案例分享
    ↑ 加入Excel微信群學習 ↑第一,excel整行整列求和公式
  • Excel應用技巧:組合函數index+match
    上一篇,我們講到了index函數的語法和基本用法,今天我們再來說說match函數以及組合函數index+match的用法。
  • Excel教程:index+match函數組合實戰案例分享
    ↑ 加入Excel微信群學習 ↑第一,excel整行整列求和公式
  • excel教程:index+match函數組合實戰案例分享
    如果想對第2行數據求和可以用:=SUM(A3:D3)  但這是理想狀態,如果行數可以變動,總不能每次都去修改區域吧。Index的列號設置為0,就是忽略列號,直接引用整行數據,這樣就可以獲取動態行號,最後再嵌套SUM就行。   =SUM(INDEX(A2:D10,F2,0))  同理,行號為0,就是對整列數據的引用。
  • Excel中的最佳函數組合:INDEX-MATCH應用實例解讀
    我們結合如圖的表格來學習index+match函數組合在excel中的應用: (數據可以複製在Excel自行模擬)在學習之前我們首先需要了解index和match的作用,對於初次接觸這兩個函數的朋友來說,通過生活中的例子去理解會更容易。
  • Excel函數:提取數據透視表數據的方法
    在遇到複雜數據需要做統計分析的時候,我們會經常使用到excel的一個絕密武器,那就是數據透視表。如果在做完數據透視表之後,需要單獨提取數據透視表中的其中的單個數據應該怎麼辦呢?包含要檢索的數據的數據欄位的名稱,需要用引號引起來。(即需要提取的數據所在的欄位名稱)Pivot_table:必需。對數據透視表中任何單元格、單元格區域或單元格已命名區域的引用。此信息用於確定包含要檢索數據的數據透視表。(可直接選擇數據透視表第一個單元格)field1,item1,field2,item2……:可選。
  • Excel如何用函數提取長短不一的數據?
    如果在excel表格中的數據是長短不一的,如何提取出我們需要的數據呢?如何批量提取數據,一起來看看吧。1.首先我們要將銷售員中的店名和人名都提取出來。6.然後在後面再新建兩個空白列,分別命名為店名和人名。(未完待續...)
  • Excel批量提取指定數據——函數篇
    上一節課中我們分享了利用數據分列功能,批量提取QQ號,那麼今天我們將分享如何利用函數對指定數據進行批量提取;同樣通過觀察發現,每行數據裡每個QQ號碼都由一對括號包括,如果左括號前面的字符數量固定,那麼我們直接用mid()函數和len()函數組合,即可提取數據,但是左括號前面的字符數是不固定的……
  • INDEX函數 和 MATCH函數,Excel數據查詢好基友,功能簡直不要太強大!
    INDEX 和 MATCH 是 Excel 中比較常用的兩個查找函數,堪稱數據查詢的好兄弟,這兩個函數組合,能夠完成 VLOOKUP 函數和 HLOOKUP
  • Excel函數學習1:MATCH函數
    微信公眾帳號:excelperfectMATCH函數返回指定值在數組中的位置,如果在數組中沒有找到該值則返回#N/A。數組可以已經排序或沒有排序,並且MATCH函數不區分大小寫。例如:在未經排序的列表中找到數據項的位置 和CHOOSE一起使用獲取學生成績和VLOOKUP一起使用來靈活選擇列和INDEX一起使用來顯示獲勝者的姓名MATCH函數語法MATCH函數的語法如下:
  • excel數據處理技巧:對任意數字進行提取的方法匯總
    今天我們要給大家分享5種不用函數公式的Excel數字提取技巧。不管是從有規律的文本、還是沒有規律的文本中提取手機號、金額、尺寸等數據,都可以用兩端對齊法、快速填充法、Power Query法、Word替換法等5種方法進行提取,特別適合Excel小白使用。趕緊來看看具體操作吧!學習更多技巧,請收藏關注部落窩教育excel圖文教程。