Excel函式大明星-VLOOKUP函式閃亮登場

函式介紹

Excel函式大明星-VLOOKUP函式閃亮登場

1。lookup_value : 需要查詢的值

2。table_array:需要查詢的區域

3。col_index_col: 返回資料在查詢區域的第幾列數, 不能理解為工作表中實際的列號,而是指定要返回查詢區域中的第幾列值。

4。range_lookup: 模糊匹配 0:精確匹配 1:模糊匹配

注意事項:

1。

VLOOKUP函式的查詢值要求必須位於查詢區域中的首列,如果被查詢值不在資料表的首列時,需要先將目標資料進行特殊的轉換。

根據學號查詢學生姓名

首先準備一份學生資訊:

Excel函式大明星-VLOOKUP函式閃亮登場

在B4單元格中輸入=Vl,在下拉可以看到VLOOKUP ,按一下tab鍵完成函式的輸入,接著按Crl +A 組合鍵開啟引數對話方塊,如下圖

Excel函式大明星-VLOOKUP函式閃亮登場

Excel函式大明星-VLOOKUP函式閃亮登場

四個引數介紹如下:

1。確定要找的學號

2。確定要查詢的學生資訊區域,

學號

必須處於首列

3。確定要找的結果在區域的第幾列。因為要找的結果在區域的第二列,所以第三個引數

應該

輸入數字2

4。確定匹配方式,0-FALSE表示精確查詢,1-TRUE表示大致匹配,這裡是精確匹配。

VLOOKUP 匹配多列資料

比如根據姓名查詢 年齡和身份證資訊

Excel函式大明星-VLOOKUP函式閃亮登場

每一列都可以使用VLOOKUP 函式進行匹配

年齡:=VLOOKUP($A$4,學生資訊!$B$1:$D$20,2,0)

身份證:=VLOOKUP($A$4,學生資訊!$B$1:$D$20,3,0)

這個公式除了第三個引數不同,其他引數都一樣,如果公式向右複製,第三個引數不會變化。

那麼怎麼使第三個引數向右複製 變化呢?

我們可以使用COILUN函式配合完成,COLUMN(B1) 會得到2,向右複製就會變成 3,4,5等。

年齡:=VLOOKUP($A$4,學生資訊!$B$1:$D$20,COLUMN(B2),0)

身份證:=VLOOKUP($A$4,學生資訊!$B$1:$D$20,COLUMN(C2),0)

模糊查詢

VLOOKUP 的第四個引數是匹配方式,對於精確匹配很好理解,查詢值和資料區域中的內容完全一樣,就會得到匹配的資料。

那麼什麼是模糊匹配呢?先看下面的例子

(1) 使用萬用字元查詢

需求: 透過公司簡稱匹配公司全稱

Excel函式大明星-VLOOKUP函式閃亮登場

如上,我們可以透過公司簡稱獲取公司的全稱,可以使用公式

=VLOOKUP("*"&$A5&"*",$D$5:$D$7,1,0)

在公式中,在第一個引數A5的兩邊接了萬用字元,表示從D5:D7列找到包含A5內容的資料後,返回D列對應的全名。

在Excel 中一個常用的輔助符號,它有3種:

(1) 問號 ? , 表示任意一個字元

(2) 星號 * ,表示長度不固定的任意字元

(3) 波浪號 ~ ,將萬用字元轉為普通字元

(2) 根據成績確定成績的等級

Excel函式大明星-VLOOKUP函式閃亮登場

可以使用公式:

=VLOOKUP(C4,$H$8:$I$12,2,1)

在上面公式中,第四個引數用了1,也就是模糊匹配。需要注意的是,公式中H列為首列的,並且下限是按升序排列。查詢值C列(成績) 中的每個值都不再查詢區域的首列,但是卻能得到正確的結果,這種查詢方式就是模糊匹配。

模糊匹配和精確匹配的區別?

(1) 部分匹配使用的是精確匹配方式,查詢值兩邊連線萬用字元,並且查詢值必須是連續存在的字元。

(2) 模糊匹配必須保證查詢區域首列是升序排列的,如果設計數字區間,則以數字區間的下限作為首列內容。

精確匹配使用的遍歷方法原理

,對資料來源的順序沒有要求,會從資料來源的第一個值開始與查詢值進行比較,如果不同,則繼續向下,直到發現一致的資料,則返回所需的結果,查詢任務結束。遍歷發的準確性無疑是很高的,但是查詢效率相對較低,當資料量比較多的時候,運算就會比較費時間。

模糊匹配使用的是二分法原理

,二分法原理很重要的一點是預設資料來源是按升序排列,預設的意思就是不管資料實際是以任何方式排列的,都會認為是升序的。每次會和資料來源中間位置的資料比較大小,如果查詢值比較大,則向下繼續找中間位置的資料去比較,直到找到目標值,反之則向上查詢,對於非數字內容的大小,可以參考升序排序的方法去判斷。

如果資料不是升序排序的,那麼結果很有可能都是錯誤的,同樣的公式,只是資料來源方式不同,結果卻完全變了。

由此可見,模糊匹配的本質並不是比較資料

是否一致,而是按照資料之間的大小關係進行判斷,每一次都是和中間位置的資料進行比較,這樣一次就能排除一半的資料。

反向查詢

Excel函式大明星-VLOOKUP函式閃亮登場

上面的例子,

用學號去查詢姓名,會報錯。

錯誤原因:資料來源中學號位於姓名的左側,這樣就無法保證查詢值在區域首列的要求。

遇到這種情況的時候,可以在姓名的前面插入一列,並把學號複製過去,或者使用

VLOOKUP + IF 函式來解決。

使用公式如下:

= =VLOOKUP(I4,IF({1,0},B4:B20,A4:A20),2,0)

Excel函式大明星-VLOOKUP函式閃亮登場

那麼上面的IF語句,可能大家比較陌生,是什麼意思呢?

IF的第一個引數有用到了常量陣列{1,0},會分別進行判斷,首先透過IF(1,B4:B20,A4:A20)

得到B4:B20, 然後由IF(0,B4:B20,A4:A20)得到A4:A20,最後合併為一個新的陣列,在這個新的陣列中,B4:B20(學號列) 就移動到了A4:A20(姓名列)的前面。完成兩列資料的位置互動。經過這樣轉換後的區域只包含兩列。因此,VLOOKUP的第三列引數只能為2。

我們透過F9除錯看一下結果:

Excel函式大明星-VLOOKUP函式閃亮登場

使用這個方法進行反向查詢時,不需要選擇目標區域嗎,只需要用IF將條件區域與結果區域進行對調即可,可使用IF({0,1},A:A,B:B)可以實現同樣的效果。

注: 在數字與邏輯的對應關係中,0對應FALSE,1對應TRUE,對比這兩種寫法中1和0的順序關係,有助於理解這種用法的原理。

多條件查詢

Excel函式大明星-VLOOKUP函式閃亮登場

上面的資訊,如果透過姓名 + 學號 查詢年齡,怎麼辦麼?有以下三種方法

(1) 新增輔助列,合併姓名和學號

=VLOOKUP(H4&I4,A3:D20,4,0)

Excel函式大明星-VLOOKUP函式閃亮登場

(2) 使用VLOOKUP +IF,將不同條件用&連線起來,使多個條件變一個條件

=VLOOKUP(G4&H4,IF({1,0},A4:A20&B4:B20,C4:C20),2,0)

Excel函式大明星-VLOOKUP函式閃亮登場

IF部分,先將A列的姓名和B列的學號進行連線,再使用IF({1,0}的方式,構造出

姓名

學號在前、年齡在後的記憶體陣列。

VLOOKUP函式在IF函式構造出的記憶體陣列首列中查詢姓名+學號字串的位置,返回對應的年齡。

陣列公式,不要忘了按<Ctrl+Shift+Enter>組合鍵。

在這個用法中,IF的作用不是交換兩列的資料,而是構造一個合併條件後的陣列A4:A20&B4:B20,與C4:C20共同構成VLOOKUP的查詢區域。同樣,這個查詢區域只有兩列,第三個引數只能為2。

一對多查詢

當有多條記錄與查詢值相同時,VLOOKUP只能找到第一個與條件一致的結果,如果將要將這些結果都匹配出來,可以使用輔助列實現。

Excel函式大明星-VLOOKUP函式閃亮登場

Excel函式大明星-VLOOKUP函式閃亮登場

上面圖中,如果我們用部門查詢下面員工該怎麼辦?

可以藉助輔助列,在輔助列中為每條記錄加一個唯一值、用於區分不同記錄的字元。

=COUNTIF($E4:E4,I4)

公式統計 $E4:E4 使用的混合引用,其引用區域會逐行遞增,

COUNTIF

函式返回的結果也會發生改變。

下面我們使用公式為:

=VLOOKUP(ROW(1:1),A4:$E$22,COLUMN(D1),0)

ROW(1:1)

查詢值是ROW函式的返回結果,ROW(1:1) 返回第1行的行號1,當向下填充公式時,會隨之變化 ROW(2:2)…即找1,找2,再找3,直到找不到為止。

在表格中可以看到返回有 #N/A, 這是表示已經找不到了,不影響最終的查詢效果。