學無止境,情獨“EXCEL”

循序漸進學數據查詢(介紹三種查找方法)

用了幾年的EXCEL,總感覺查找是一個很重要的應用,但往往初學者總是不知道用什麼方式法完成查找,這裡根據自己的使用習慣,循序漸進介紹三種方法:①VLOOKUP(初級)②VLOOKUP+MATCH(中級)③INDEX+MATCH(高級)

希望能對朋友們有所幫助:

一. 創設情境:有如圖的兩張表格。

學無止境,情獨“EXCEL”

學無止境,情獨“EXCEL”

表1

表2

現在要將表1中的"語文成績"和"數學成績"兩項補充完整,數據來自表2。

二.問題延伸:如果真只是這麼幾個數據和這麼兩個字段,就算是一個個手動找也是快的,但現在我們要把學生信息放大到幾千甚至上萬條,要把需要補充的項目放大到幾十甚至幾百列。這時,你還會考慮用手動的方法去查嗎?顯然不會!

三.問題分析:我們先看看兩張表中,有一個共同項——"姓名",那麼就可以利用"姓名"這項作為溝通兩張表格的橋樑。例如:到表2中的"姓名"列查找表1中的"王小二",如果找到了,就把對應的語數成績填到表1相應的單元格內。

四.應用公式:

1.初級應用:

根據這一思路,我們會想到一個函數:VLOOKUP(參數1,參數2,參數3,參數4);標準的說明我們可以教參EXCEL的幫助,這裡按我自己的理解,簡單介紹一下:

參數2:是指定需要查找的區域。如題應該是表2的A1:C9,而且一般情況下這個區域是固定不變的(特別情況除外),所以區域應該是絕對引用,應該寫成"表2!$A$1:$C$9"

參數1:是要在參數2所指定的區域首列中查找的值。如題應該是表1中的姓名,如:"A2"

參數3:是指定找到對應的姓名後需要在區域中提取的對應的列。如題語文成績應該是表2中的第2列,即"2"

參數4:是查找時的匹配方式,這個參數為可選參數,可以不寫,同時與本題無關,不再說明。

根據上面的分析,表1的C2中應該填入的公式為:=VLOOKUP(A2,表2!$A$1:$C$9,2);我完整的解釋一下公式的執行思路:從表1中讀取一個A2的值"王小二",去跟表2中從A1到A9的9個值進行一一比較,值到找到第一個與"王小二"一樣的值或是沒有找到。當找到與"王小二"一樣的值之後,就鎖定本條數據,然後返回本條數據相應列的值,如題設置就是返回第2列的值。

同理,在D2中應該填入的公式為:=VLOOKUP(A7,表2!$A$1:$C$9,3);

2.中級應用:

分析上面的的公式就會發現,"語文成績"和"數學成績"的公式不同,雖然只需要改一個參數,但如果字段一多,工作量也不小。有辦法解決嗎?當然!我們再來分析兩張表,發現字段的名稱是完全一樣的,即表1中的"語文成績"和"數學成績"兩個字段名跟表2中的完全一樣。那是不是可以通過公式來自動獲取列號呢?可以,這時我們會想到另一個函數,用它來替代VLOOKUP的參數3,就可以解決問題:MATCH(參數1,參數2,參數3);標準的說明我們可以教參EXCEL的幫助,這裡按我自己的理解,簡單介紹一下:

參數2:指定要查找的行(或列)。如題應該是行,即表2中的A1:C1, 而且一般情況下這個區域是固定不變的(特別情況除外),所以區域應該是絕對引用,應該寫成"表2!$A$1:$A$9"

參數1:是要在參數2所指定的區域首列中查找的值。如題應該是表1中的"語文成績",如:"C1"

參數3:是查找時的匹配方式,本題中填"0",意思為完全匹配。

根據上面的分析,表1的C2中應該填入的公式升級為:

=VLOOKUP($A2,表2!$A$1:$C$9,MATCH(C$1,表2!$A$1:$C$1,0)),由於單元格的引用方式(絕對引用、相對引用、混合引用)不同,會引起不同的效果。因此,公式升級後在引用方式上有所就動。如果你的引用方式不是很瞭解,那得補一下這方面的知識,這裡不再細說。下面我解釋一下公式中:MATCH(C$1,表2!$A$1:$C$1,0)的執行思路:從表1中讀取一個C1的值"語文成績",去跟表2中從A1到C1的3個值進行一一比較,值到找到第一個與"語文成績"一樣的值或是沒有找到。當找到與"語文成績"一樣的值之後,即返回該單元格在區域中的序號。

3.高級應用:

分析VLOOKUP這個函數我們發現,它只能在指定區域的首列中查找指定的值(HLOOKUP,這個函數只能在指定區域的首行中查找指定的值),在處理實際問題時會帶來一定的侷限性。現在介紹兩個函數的合組應用,可以實現在區域的任何行和任何列中進行同時查詢,最終確定返回單元格的行列座標。這項應該的主函數就是:INDEX(參數1,參數2,參數3);標準的說明我們可以教參EXCEL的幫助,這裡按我自己的理解,簡單介紹一下:

參數1:是指定需要查找的區域。如題應該是表2的A1:C9,而且一般情況下這個區域是固定不變的(特別情況除外),所以區域應該是絕對引用,應該寫成"表2!$A$1:$C$9"

參數2和參數3:是相對於參數1指定區域的返回單元格行列座標。如題如果要返回表1中"王小二"的"語文成績",應該在表1的C1中填入:=INDEX(表2!$A$1:$C$9,6,2),但很顯然,如果座標需要手動指定,那麼這個函數幾乎沒什麼用。現在就要請中級應用中的MATCH這個函數來幫忙了。用它來替代參數2和參數3。公式升級如下:

=INDEX(表2!$A$1:$C$9,MATCH($A2,表2!$A$1:$A$9,0),MATCH(D$1,表2!$A$1:$C$1,0))


分享到:


相關文章: