【Excel函數教程】如何用INDIRECT函數實現動態跨表引用數據
公眾號回復2016 下載
問題說明
本文所說的跨表引用指的是同一個文件中引用不同中的數據,具體效果如圖所示:
數據特點說明:若干工資表,動畫中的是匯總表,另有若干分表,每個表格的結構都是完全相同的。
匯總表的A1單元格利用數據有效性設置了下拉選項,就是每個分表的名稱。
關于有效性的設置方法可以參閱以前的教程,最終實現的效果就是通過匯總表中選擇下拉菜單,引用所選內容對應中的數據。
要實現這個目的,只需要一個公式就夠了:
=($A$1&"!r"&ROW()&"c"&(),0)
今天就通過這個實例再來與大家一同領略函數的妙處。
公式解讀
函數的基本作用就是按照指定的引用(或者說是地址、位置都行)得到對應的數據,函數一共兩個參數,第一個參數引用的具體信息,第二個參數是具體的引用方式。
例如,當我們選中了B公司,匯總表中的B3單元格就應該對應顯示B公司這個中B3單元格的數據:
當我們選擇了D公司,匯總表中的B3單元格就應該對應顯示D公司這個中B3單元格的數據,以此類推,這一點很好理解,關鍵的問題是B公司這個中B3單元格如何表示?
我們可以直接在單元格輸入=進行引用,編輯欄就可以看到具體的引用內容:=B公司!B3
如果使用了函數的話,公式就可以寫成=("B公司!B3"),注意這里的引用位置要加上引號。
但是當公式右拉下拉我們會發現一個問題,全部都是B3這個單元格的數據,并沒有變成B公司的C3、D3等等……
這是因為引號中使用的地址是一個固定不變的內容,要想根據位置進行變化,就需要在引用地址中加入變量(可能有那么一點點不好理解)~~
更不好理解是,為了適應這種需求,還得放棄我們熟悉的A1引用模式,使用另一種叫做RC引用模式的方法。
讓人困惑的引用方式
A1引用:用字母表示列,用數字表示行,行列交叉位置的單元格就是引用所表示的單元格。例如D3excel如何實現跨表引用數據,表示D列第三行的單元格,這是我們非常熟悉的一種表示方式。
RC引用:也叫R1C1引用,R代表行,C代表列,分別用數字表示對應行列交叉處的單元格。例如D3用RC表示的話就是R3C4(表示第三行第四列,好像不是那么難以理解,更多的感覺是不習慣)
使用RC模式的話,"B公司!B3"就是"B公司!r3c2","B公司!C3"就是"B公司!r3c3","B公司!B4"就是"B公司!r4c2"等等……(感覺暈的話自己慢慢體會吧)
對比這幾個引用的特點,發現變化的就是R后面和C后面的數字,因此就考慮用row和兩個函數作為變量。
常量部分加引號,通過&與變量進行連接,就得到了:
"B公司!r"&ROW()&"c"&()
完整的公式為:
=("B公司!r"&ROW()&"c"&(),0)
當使用RC模式時,第二參數要使用0,第二參數為1或者省略時表示使用A1模式。
此時公式實現了整個區域的引用,但是還不能切換工作表,需要將“B公司”這部分內容從A1單元格獲得。
于是就有了公式:
=($A$1&"!r"&ROW()&"c"&(),0)
注意這里的A1要加$鎖定
理解上的痛點
關于這個函數,比較難以理解的通常有兩點:
1、作為一個引用函數,新手們往往對應“引用”這個概念本身理解的比較模糊excel如何實現跨表引用數據excel如何實現跨表引用數據,因此就不容易理解中什么時候要加引號,什么時候又不加引號。這是對函數本身的原理不了解所致,同時也說明了自身的基礎知識比較薄弱。
2、對于RC引用模式的不習慣,這個概念解釋一下很好理解,但是用的時候就是不習慣,需要一個熟練的過程。
但是不管有多么難以理解,這個函數在跨表(包括跨文件)引用方面都是無可取代的。
強烈推薦菜鳥系統學習函數的寶典,也就是下面這本,非常適合新手學習。
出版社的主編說“第一次看到這本書的時候感覺非常好,這么多年能把函數用這種風格的語言講出來的,幾乎沒有”。
不夸張地說,看了肯定能受益,畢竟書里的內容,都是我自己踩過的坑。
而且有小伙伴說他解決工作中的問題基本上都是拿書里的示例直接套用,點擊文末閱讀原文可以免費閱讀,覺得不錯再購買。
聲明:本站所有文章資源內容,如無特殊說明或標注,均為采集網絡資源。如若本站內容侵犯了原著者的合法權益,可聯系本站刪除。