查詢引用也是資料分析中常用的操作之一,如果要在Excel中查詢引用,則必須掌握Vlookup函式,它才是Excel工作表函式的No1,查詢之王!
一、功能及語法結構。
功能:根據指定的查詢條件和區域,返回指定列的值。
語法結構:=Vlookup(查詢值,資料範圍,返回值的相對列數,匹配模式)。
解讀:
1、“查詢值”即查詢條件。
2、“資料範圍”指包括查詢值和返回值的一個相對資料範圍,最少包括2列,而且“資料範圍”的第一列必須是“查詢值”所在的列。
3、“返回值的相對列數”是根據“資料範圍”的情況而決定的,並不是根據資料表的情況而決定的。
4、“匹配模式”分為“0”和“1”兩種,“0”為精準匹配,即100%相同;“1”為模糊匹配,即包含或等於“查詢值”均可。
二、Vlookup函式用法解讀。
1、根據“姓名”查詢對應的“月薪”(從左到右順序查詢)。
方法:
在目標單元格中輸入公式:=VLOOKUP(K3,C3:H12,6,0)。
解讀:
1、公式中K3單元格的值為“查詢值”,C3:H12為“資料範圍”,而且此範圍的第一列(即C列)必須包含了K3單元格的值;因為返回值為“月薪”,而在資料範圍C3:H12中“月薪”位於第6列,所以Vlookup函式的第三個引數為6;“0”就是精準查詢,100%匹配。
2、此方法也是Vlookup函式最常用、最簡單的用法,是Vlookup函式的基礎用法。
2、根據“姓名”查詢對應的“工號”(從右向左逆向查詢)。
方法:
在目標單元格中輸入公式:=VLOOKUP(K3,IF({1,0},C3:C12,B3:B12),2,0)。
解讀:
1、此用法為Vlookup函式的特殊用法,逆向查詢。
2、公式的引數從總體上還是分為4個部分,“資料範圍”部分為:IF({1,0},C3:C12,B3:B12),其目的就是重組組成新的資料查詢範圍,使查詢值在左,返回值在右。
3、根據“姓名”、“性別”查詢對應的“月薪”(從左向右逆向查詢)。
方法:
1、在“備註”列中用&符號合併“姓名”和“性別”,公式為:=C3&D3。
2、在目標單元格中輸入公式:=VLOOKUP(K3&L3,IF({1,0},I3:I12,H3:H12),2,0)。
解讀:
其本質為從右向左的逆向查詢。
4、根據“姓名”、“性別”查詢對應的“工號”(從右向左逆向查詢)。
方法:
1、在“備註”列中用&符號合併“姓名”和“性別”,公式為:=C3&D3。
2、在目標單元格中輸入公式:=VLOOKUP(K3&L3,IF({1,0},I3:I12,B3:B12),2,0)。
解讀:
本質為從右向左的逆向查詢。
5、批次查詢(+Column)。
目的:根據“工號”查詢對應的“姓名”、“性別”、“學歷”等資訊。
方法:
在目標單元格中輸入公式:=VLOOKUP($K$3,$B$3:$H$12,COLUMN(B1),0)。
解讀:
1、引數查詢值K3、資料範圍B3:H12為什麼絕對引用?
答:在相對引用情況下,當用滑鼠拖動從左向右填充時,其公式中的單元格(資料範圍)地址也會相對改變,而在此例中,無論範圍那一列的值,其查詢值和資料範圍都是固定不變,所以採用絕對引用的方式。
2、引數“返回值的相對列數”:Column(B1),其作用就是動態返回對應值的相對列數。首先要理解Column函式的作用(返回指定單元格地址的列數),從A列開始依次為1、2、3……;在資料範圍B3:H12中,“姓名”在第2列,所以Column函式的引數為B1(或B2等,只要是B列即可),而“性別”在第3列,當用公式查詢完“姓名”後,拖動填充式,Column函式的引數也會發生變化(C1,依次為D1、E1、……),因為此處必須採用相對引用。
6、精準查詢(+Match)。
目的:根據“姓名”和“季度”查詢對應的“銷售額”。
方法:
在目標單元格中輸入公式:=VLOOKUP(K3,C3:H12,MATCH(L3,C2:H2,0),0)。
解讀:
1、Match函式的作用為:返回指定值在指定範圍中的相對位置,語法結構為:=Match(定位值,定位範圍,[匹配模式]),其中“匹配模式”分為-1、0、1三種,分別為:“大於”、“精準”、“小於”。
2、公式中用Match函式定位出季度的相對列數,並作為Vlookup的第三個引數,從而達到精準查詢的目的。
7、隱藏錯誤值得查詢!
此處的“錯誤值”並不是真正意義上的錯誤值,而是指在公式正確的情況下,部分查詢值沒有對應的返回值,返回#N/A 的情況,可以借用Iferror函式巧妙的隱藏錯誤程式碼或者返回指定的值。
目的:根據員工“姓名”查詢對應的“月薪”,如果未能查詢到員工資訊,返回“未查詢到此員工,請確認!”。
方法:
在目標單元格中輸入公式:=IFERROR(VLOOKUP(K3,C3:H12,6,0),"未查詢到此員工,請確認!")。
解讀:
1、Iferror函式的作用為:檢測指定的表示式是否存在錯誤,如果存在錯誤,則返回指定的值,否則返回表示式的執行結果;語法結構為:=Iferror(表示式,表示式存在錯誤時的返回值)。
2、公式在查詢”李明明、杜莎“時,未能在指定的資料範圍中查詢到此資訊,所以返回#N/A, 並將此結果返回Iferror函式,經過Iferror函式執行後,返回“未查詢到此員工,請確認!”。
8、製作工資條。
工資條大家並不陌生,但是如何根據工資表製作工資條呢?
方法:
1、在工資表的最左側插入一列,命名為序號或No,並進行填充(如果已經有此列,則可以省略此步驟)。
2、根據序號查詢對應的其它列資訊,在目標單元格中輸入公式:=VLOOKUP($K3,$A$3:$H$12,COLUMN(B1),0)。
3、選定標題行以及查詢的資料行,拖動右下角的填充柄向下填充即可。
解讀:
1、公式中的第一個引數查詢值的引用方式為混合引用,$K3,而不能是絕對引用($k$3)或相對引用(K3),Why???原因是列不變,行要變,所以要細細體會哦!
2、利用填充柄填充時根據需要可以隔行,也可以不隔行。
9、批次查詢並求和(+Sum)。
目的:根據“姓名”查詢全年的銷售額。
方法:
在目標單元格中輸入公式:=SUM(VLOOKUP(K3,C3:H12,{3,4,5,6},0))並用Ctrl+Shift+Enter填充。
解讀:
公式中返回值的相對列數為{3,4,5,6}並配合組合快捷鍵Ctrl+Shift+Enter就是依次查詢指定範圍中第3、4、5、6列的值並返回,最後用Sum函式求和。
10、一對多查詢(+Countif)。
一對多查詢,顧名思義,就是根據一個查詢值,返回對應的所有結果。
目的:根據“姓名”查詢對應的“地區”和“銷售額”。
方法:
1、在查詢值的左側新增輔助列,並在輔助列目標單元格中輸入公式:=COUNTIF(C$3:C3,H$3)。
2、在“地區”列目標單元格(可以批次選擇和填充)中輸入公式中輸入公式:=IFERROR(VLOOKUP(ROW(A1),B:E,3,0),"")。
3、在“銷售額”列第一個目標單元格中輸入公式:=IFERROR(VLOOKUP($H$3&$I3,IF({1,0},C3:C12&D3:D12,E3:E12),2,0),""),並用組合快捷鍵Ctrl+Shift+Enter填充,然後拖動填充柄向下填充即可。
解讀:
1、新增的輔助列建議在查詢值所在列的左側,以方便後續使用;輔助列中公式的作用為:統計查詢值(姓名)在查詢列的個數。
2、公式=IFERROR(VLOOKUP(ROW(A1),B:E,3,0),"")中查詢值為Row(A1),其目的就在於使查詢值隨之填充柄的拖動逐漸增加,每拖動一個單元格,其值增加1。
3、公式=IFERROR(VLOOKUP($H$3&$I3,IF({1,0},C3:C12&D3:D12,E3:E12),2,0),"")就是多條件查詢,具體可以參閱前文中的解讀!