Excel中VLOOKUP函式的作用是什麼?如何使用VLOO

2021-07-08 22:29:35 字數 5141 閱讀 1162

1樓:

vlookup

全部顯示

全部隱藏

在**陣列的首列查詢指定的值,並由此返回**陣列當前行中其他列的值。

vlookup 中的 v 參數列示垂直方向。當比較值位於需要查詢的資料左邊的一列時,可以使用 vlookup 而不是 hlookup。

語法vlookup(lookup_value,table_array,col_index_num,range_lookup)

lookup_value 為需要在**陣列 (陣列:用於建立可生成多個結果或可對在行和列中排列的一組引數進行運算的單個公式。陣列區域共用一個公式;陣列常量是用作引數的一組常量。

)第一列中查詢的數值。lookup_value 可以為數值或引用。若 lookup_value 小於 table_array 第一列中的最小值,vlookup 返回錯誤值 #n/a。

table_array 為兩列或多列資料。使用對區域或區域名稱的引用。table_array 第一列中的值是由 lookup_value 搜尋的值。

這些值可以是文字、數字或邏輯值。文字不區分大小寫。

col_index_num 為 table_array 中待返回的匹配值的列序號。col_index_num 為 1 時,返回 table_array 第一列中的數值;col_index_num 為 2,返回 table_array 第二列中的數值,以此類推。如果 col_index_num :

小於 1,vlookup 返回錯誤值 #value!。

大於 table_array 的列數,vlookup 返回錯誤值 #ref!。

range_lookup 為邏輯值,指定希望 vlookup 查詢精確的匹配值還是近似匹配值:

如果為 true 或省略,則返回精確匹配值或近似匹配值。也就是說,如果找不到精確匹配值,則返回小於 lookup_value 的最大數值。

table_array 第一列中的值必須以升序排序;否則 vlookup 可能無法返回正確的值。有關詳細資訊,請參閱排序資料。

如果為 false,vlookup 將只尋找精確匹配值。在此情況下,table_array 第一列的值不需要排序。如果 table_array 第一列中有兩個或多個值與 lookup_value 匹配,則使用第一個找到的值。

如果找不到精確匹配值,則返回錯誤值 #n/a。

註解在 table_array 第一列中搜尋文字值時,請確保 table_array 第一列中的資料沒有前導空格、尾部空格、直引號(' 或 ")與彎引號(‘或“)不一致或非列印字元。否則,vlookup 可能返回不正確或意外的值。有關詳細資訊,請參閱 clean 和 trim。

在搜尋數字或日期值時,請確保 table_array 第一列中的資料未儲存為文字值。否則,vlookup 可能返回不正確或意外的值。有關詳細資訊,請參閱將儲存為文字的數字轉換為數字值。

如果 range_lookup 為 false 且 lookup_value 為文字,則可以在 lookup_value 中使用萬用字元、問號 (?) 和星號 (*)。問號匹配任意單個字元;星號匹配任意字元序列。

如果要查詢實際的問號或星號,請在該字元前鍵入波形符 (~)。

示例 1

如果將示例複製到一個空白工作表中,可能會更易於理解。

如何複製示例

建立一個空白工作簿或工作表。

在幫助主題中選擇示例。

註釋 請不要選擇行或列標題。

從幫助中選擇示例

按 ctrl+c。

在工作表中,選擇單元格 a1,然後按 ctrl+v。

若要在檢視結果和檢視返回結果的公式之間切換,請按 ctrl+`(重音符),或在“公式”選項卡的“公式稽核”組中,單擊“顯示公式”按鈕。

本示例搜尋大氣特徵表的“密度”列以查詢“粘度”和“溫度”列中對應的值。(該值是在海平面 0 攝氏度或 1 個大氣壓下對空氣的測定。)

1 23 45 67 89 10

a b c

密度 粘度 溫度

0.457 3.55 500

0.525 3.25 400

0.616 2.93 300

0.675 2.75 250

0.746 2.57 200

0.835 2.38 150

0.946 2.17 100

1.09 1.95 50

1.29 1.71 0

公式 說明(結果)

=vlookup(1,a2:c10,2) 使用近似匹配搜尋 a 列中的值 1,在 a 列中找到小於等於 1 的最大值 0.946,然後返回同一行中 b 列的值。(2.17)

=vlookup(1,a2:c10,3,true) 使用近似匹配搜尋 a 列中的值 1,在 a 列中找到小於等於 1 的最大值 0.946,然後返回同一行中 c 列的值。(100)

=vlookup(.7,a2:c10,3,false) 使用精確匹配在 a 列中搜尋值 0.7。因為 a 列中沒有精確匹配的值,所以返回一個錯誤值。(#n/a)

=vlookup(0.1,a2:c10,2,true) 使用近似匹配在 a 列中搜尋值 0.

1。因為 0.1 小於 a 列中最小的值,所以返回一個錯誤值。

(#n/a)

=vlookup(2,a2:c10,2,true) 使用近似匹配搜尋 a 列中的值 2,在 a 列中找到小於等於 2 的最大值 1.29,然後返回同一行中 b 列的值。

(1.71)

示例 2

如果將示例複製到一個空白工作表中,可能會更易於理解。

如何複製示例

建立一個空白工作簿或工作表。

在幫助主題中選擇示例。

註釋 請不要選擇行或列標題。

從幫助中選擇示例

按 ctrl+c。

在工作表中,選擇單元格 a1,然後按 ctrl+v。

若要在檢視結果和檢視返回結果的公式之間切換,請按 ctrl+`(重音符),或在“公式”選項卡的“公式稽核”組中,單擊“顯示公式”按鈕。

本示例搜尋嬰幼兒用品表中“貨品 id”列並在“成本”和“漲幅”列中查詢與之匹配的值,以計算**並測試條件。

1 23 45 6a b c d

貨品 id 貨品 成本 漲幅

st-340 童車 ¥145.67 30%

bi-567 圍嘴 ¥3.56 40%

di-328 尿布 ¥21.45 35%

wi-989 柔溼紙巾 ¥5.12 40%

as-469 吸出器 ¥2.56 45%

公式 說明(結果)

= vlookup("di-328", a2:d6, 3, false) * (1 + vlookup("di-328", a2:d6, 4, false)) 漲幅加上成本,計算尿布的零售價。

(¥28.96)

= (vlookup("wi-989", a2:d6, 3, false) * (1 + vlookup("wi-989", a2:d6, 4, false))) * (1 - 20%) 零售價減去指定折扣,計算柔溼紙巾的銷售**。

(¥5.73)

= if(vlookup(a2, a2:d6, 3, false) >= 20, "漲幅為 " & 100 * vlookup(a2, a2:d6, 4, false) &"%", "成本低於 ¥20.

00") 如果某一貨品的成本大於或等於 ¥20.00,則顯示字串“漲幅為 nn%”;否則,顯示字串“成本低於 ¥20.00”。

(漲幅為 30%)

= if(vlookup(a3, a2:d6, 3, false) >= 20, "漲幅為: " & 100 * vlookup(a3, a2:

d6, 4, false) &"%", "成本為 ¥" & vlookup(a3, a2:d6, 3, false)) 如果某一貨品的成本大於或等於 ¥20.00,則顯示字串“漲幅為 nn%”;否則,顯示字串“成本為 ¥n.

nn”。(成本為 ¥3.56)

示例 3

如果將示例複製到一個空白工作表中,可能會更易於理解。

如何複製示例

建立一個空白工作簿或工作表。

在幫助主題中選擇示例。

註釋 請不要選擇行或列標題。

從幫助中選擇示例

按 ctrl+c。

在工作表中,選擇單元格 a1,然後按 ctrl+v。

若要在檢視結果和檢視返回結果的公式之間切換,請按 ctrl+`(重音符),或在“公式”選項卡的“公式稽核”組中,單擊“顯示公式”按鈕。

本示例搜尋員工表的 id 列並查詢其他列中的匹配值,以計算年齡並測試錯誤條件。

1 23 45 67 a b c d e

id 姓

名 職務 出生日期

1 李 小明 銷售代表 12/8/1968

2 林 彩瑜 銷售副總裁 2/19/1952

3 王 志東 銷售代表 8/30/1963

4 潘 金 銷售代表 9/19/1958

5 林 丹 銷售經理 3/4/1955

6 蘇 術平 銷售代表 7/2/1963

公式 說明(結果)

=int(yearfrac(date(2004,6,30), vlookup(5,a2:e7,5, false), 1)) 針對 2004 財政年度,查詢 id 為 5 的員工的年齡。使用 yearfrac 函式,以此財政年度的結束日期減去出生日期,然後使用 int 函式將結果以整數形式顯示。

(49)

=if(isna(vlookup(5,a2:e7,2,false)) = true, "未發現員工", vlookup(5,a2:e7,2,false)) 如果有 id 為 5 的員工,則顯示該員工的姓氏;否則,顯示訊息“未發現員工”。

(林)當 vlookup 函式返回錯誤值 #na 時,isna 函式返回值 true。

=if(isna(vlookup(15,a3:e8,2,false)) = true, "未發現員工", vlookup(15,a3:e8,2,false)) 如果有 id 為 15 的員工,則顯示該員工的姓氏;否則,顯示訊息“未發現員工”。

(未發現員工)

當 vlookup 函式返回錯誤值 #na 時,isna 函式返回值 true。

=vlookup(4,a2:e7,3,false) & " " & vlookup(4,a2:e7,2,false) & "是" & vlookup(4,a2:

e7,4,false) & "。" 對於 id 為 4 的員工,將三個單元格的值連線為一個完整的句子。(潘金是銷售代表。)

如何運用excel中的VLOOKUP函式比對資料

1 開啟兩張需要進行資料比對的excel 一張母表代表作為參照的資料表,一張子表代表需要比對的資料表。2 點選與第一個比對物件對齊的空白處,單擊 插入 選擇 函式 3 選擇vlookup,點選確定。4 函式視窗的第一空點選子表需要進行比對查詢的第一項,第二空選擇母表中需要比對的範圍值。比如需要將子表...

EXCEL中的資料引用VLOOKUP函式

vlookup函式的書寫格式應該是這樣的 vlookup lookup value,table array,col index num,range lookup 預設情況下,如果你沒有填寫range lookup引數的話,它會預設為true,此時要求你填寫table array的區域中的資料是以升序...

EXCEL函式vlookup巢狀if的疑問

這是vlookup逆序引用的典型方法。我們知道,vlookup只能在首列搜尋指定條件,但實際資料排列是條件列不在區域 d e 的首列,if e2 e9,d2 d9 就是起到將e列資料放在陣列首列的作用。if函式普通用法時,條件只有一個,因而返回一個結果 而這裡是陣列用法,條件有兩個,應分別以條件1 ...