Note: The other languages of the website are Google-translated. Back to English
登入  \/ 
x
or
x
註冊  \/ 
x

or

VLOOKUP函數以及Excel中的一些基本和高級示例

在Excel中,VLOOKUP函數是大多數Excel用戶的強大功能,用於在數據范圍的最左側查找值,並在您指定的列的同一行中返回匹配值,如下面的屏幕快照所示。 。 本教程通過Excel中的一些基本示例和高級示例討論如何使用VLOOKUP函數。

目錄:

1. VLOOKUP函數的介紹–語法和參數

2.基本的VLOOKUP示例

3.高級VLOOKUP示例

4. VLOOKUP匹配值保持單元格格式

5.下載VLOOKUP示例文件


VLOOKUP函數的介紹–語法和參數

VLOOKUP函數的語法:

=VLOOKUP (lookup_value, table_array, col_index_num, [range_lookup])

參數:

查找值:您要搜索的值。 它必須在table_array範圍的第一列中。

表格數組:查找值列和結果值列所在的數據范圍或表。

Col_index_num:將從中返回匹配值的列數。 它從表數組的最左列開始以1開頭。

Range_lookup:確定此VLOOKUP函數將返回完全匹配還是近似匹配的邏輯值。

  • 近似匹配 - 1 /是:如果未找到完全匹配,則公式將搜索最接近的匹配-小於查找值的最大值。 在這種情況下,您應該按升序對查找列進行排序。
    = VLOOKUP(lookup_value,table_array,col_index,TRUE)
    = VLOOKUP(lookup_value,table_array,col_index,1)
  • 完全符合 - 0 /假:用於搜索與查找值完全相等的值。 如果找不到完全匹配的內容,則將返回錯誤值#N / A。
    = VLOOKUP(lookup_value,table_array,col_index,FALSE)
    = VLOOKUP(lookup_value,table_array,col_index,0)

筆記:

  • 1. Vlookup函數僅從左到右查找值。
  • 2.如果基於查找值存在多個匹配值,則使用Vlookup函數將僅返回第一個匹配的值。
  • 3.如果找不到查找值,它將返回#N / A錯誤值。

VLOOKUP基本示例

1。 進行完全匹配Vlookup和近似匹配Vlookup

在Excel中進行完全匹配的Vlookup

通常,如果您正在尋找與Vlookup函數的完全匹配,則只需在最後一個參數中使用FALSE。

例如,要根據特定的ID號獲得相應的數學分數,請執行以下操作:

1. 將以下公式應用於要獲取結果的空白單元格:

=VLOOKUP(F2,$A$2:$D$7,3,FALSE)

2。 然後,將填充手柄向下拖動到要填充此公式的單元格,您將根據需要獲得結果。 看截圖:

筆記:

  • 1.在上式中 F2 是您要返回其匹配值的值, A2:D7 是表數組,數字 3 是從中返回匹配值的列號,並且 指完全匹配。
  • 2.如果在數據范圍內未找到您的標準值,將顯示錯誤值#N / A。

在Excel中進行近似匹配Vlookup

近似匹配對於在數據范圍之間搜索值很有用。 如果找不到精確匹配,則近似Vlookup將返回小於查找值的最大值。

例如,如果您具有以下範圍數據,則“訂單”列中沒有指定的訂單,如何在B列中獲得最接近的折扣?

1。 在要放置結果的單元格中輸入以下公式:

=VLOOKUP(D2,$A$2:$B$9,2,TRUE)

2。 然後,將填充手柄向下拖動到單元格以應用此公式,您將根據給定的值獲得近似匹配項,請參見屏幕截圖:

筆記:

  • 1.在上式中 D2 是您要返回其相對信息的值, A2:B9 是數據范圍,數字 2 指示您返回匹配值的列號,並且 TRUE 指近似匹配。
  • 2.近似匹配將返回小於您的特定查找值的最大值。
  • 3.要使用Vlookup函數獲取近似匹配值,必須按升序對數據范圍的最左列進行排序,否則將返回錯誤的結果。

2。 在Excel中執行區分大小寫的Vlookup

默認情況下,Vlookup函數執行不區分大小寫的查找,這意味著它將小寫和大寫字符視為相同。 有時,您可能需要在Excel中進行區分大小寫的查找,Index,Match和Exact函數或Lookup和Exact函數可以幫您一個忙。

例如,我具有以下數據范圍,其中ID列包含具有大寫或小寫字母的文本字符串,現在,我想返回給定ID號的相應數學分數。

公式1:使用EXACT,INDEX,MATCH函數

1。 請輸入以下數組公式或將其複製到要獲取結果的空白單元格中:

=INDEX($C$2:$C$10,MATCH(TRUE,EXACT(F2,$A$2:$A$10),0))

2。 然後按 Ctrl + Shift + Enter 同時獲得兩個鍵以獲取第一個結果,然後選擇公式單元格,將填充手柄向下拖動到要填充此公式的單元格上,您將獲得所需的正確結果。 看截圖:

筆記:

  • 1.在上式中 A2:A10 是包含您要查找的特定值的列, F2 是查找值, C2:C10 是要從中返回結果的列。
  • 2.如果找到多個匹配項,則此公式將始終返回第一個匹配項。

公式2:使用查閱和精確函數

1. 請將以下公式應用到要獲取結果的空白單元格中:

=LOOKUP(2,1/EXACT(F2,$A$2:$A$10),$C$2:$C$10)

2. 然後,將填充手柄向下拖動到要復制此公式的單元格,您將獲得匹配的值,並區分大小寫,如下圖所示:

筆記:

  • 1.在上式中 A2:A10 是包含您要查找的特定值的列, F2 是查找值, C2:C10 是要從中返回結果的列。
  • 2.如果找到多個匹配項,則此公式將始終返回最後一個匹配項。

3。 在Excel中從右到左的Vlookup值

Vlookup函數始終在數據范圍的最左列中查找值,並從右列返回相應的值。 如果要進行反向Vlookup,這意味著要在右側查找特定值,然後在左側欄中返回其對應的值,如下所示:

單擊以逐步了解有關此任務的詳細信息…


4。 Vlookup Excel中的第二個,第n個或最後一個匹配值

通常,如果在使用Vlookup函數時找到多個匹配值,則僅返回第一個匹配的記錄。 在本節中,我將討論如何使用Vlookup函數獲取第二個,第n個或最後一個匹配值。

Vlookup並返回第二個或第n個匹配值

假設您在A列中有一個名稱列表,在B列中有他們購買的培訓課程,現在,您正在尋找給定客戶購買的第二或第n個培訓課程。 看截圖:

1。 要根據給定的標準獲取第二個或第n個匹配值,請將以下數組公式應用於空白單元格:

=INDEX($B$2:$B$14,SMALL(IF(E2=$A$2:$A$14,ROW($A$2:$A$14)-ROW($A$2)+1),2))

2。 然後按 Ctrl + Shift + Enter 鍵在一起以獲得第一個結果,然後選擇公式單元格,將填充手柄向下拖動到要填充此公式的單元格,並且基於給定名稱的所有第二個匹配值都已立即顯示,請參見屏幕截圖:

備註:

  • 在這個公式中, A2:A14 是包含所有查找值的範圍, B2:B14 是您要從中返回的匹配值的範圍, E2 是查找值,最後一個數字 2 表示要獲取的第二個匹配值,如果要返回第三個匹配值,只需將其更改為3即可。

Vlookup並返回最後一個匹配值

如果要進行vlookup並返回最後匹配的值(如下面的屏幕截圖所示),則此 Vlookup並返回最後一個匹配值 本教程可以幫助您詳細了解最後匹配的值。


5。 Vlookup在兩個給定值或日期之間匹配值

有時,您可能希望在兩個值或日期之間查找值並返回相應的結果,如下圖所示,在這種情況下,可以使用LOOKUP函數和排序表。

Vlookup將兩個給定值或日期之間的值與公式匹配

1。 首先,您的原始表應為已排序的數據范圍。 然後,將以下公式複製或輸入到空白單元格中:

=LOOKUP(2,1/($A$2:$A$6<=E2)/($B$2:$B$6>=E2),$C$2:$C$6)

2。 然後,拖動填充手柄以將該公式填充到所需的其他單元格中,現在,您將基於給定的值獲取所有匹配的記錄,請參見屏幕截圖:

筆記:

  • 1.在上式中 A2:A6 是較小值的範圍,並且 B2:B6 是您數據范圍內較大數字的範圍, E2 是要獲取其對應值的給定值, C2:C6 是要從中提取的列數據。
  • 2.此公式還可用於提取兩個日期之間的匹配值,如下圖所示:

Vlookup在兩個給定值或日期之間匹配具有有用功能的值

如果您對上述公式感到不滿意,在這裡,我將介紹一個簡單的工具- Kutools for Excel,其 在兩個值之間查找 功能,您可以根據兩個值或日期之間的特定值或日期返回相應的項目,而無需記住任何公式。   點擊立即下載Kutools for Excel!


6。 在Vlookup函數中使用通配符進行部分匹配

在Excel中,可以在Vlookup函數中使用通配符,從而可以對查找值執行部分匹配。 例如,您可以使用Vlookup根據一部分查找值從表中返回匹配的值。

假設,我有一系列數據,如下圖所示,現在,我想根據名字(不是全名)提取分數。 如何在Excel中解決此任務?

1。 正常的Vlookup函數無法正常工作,您需要使用通配符將文本或單元格引用連接起來,請複製或在空白單元格中輸入以下公式:

=VLOOKUP(E2&"*", $A$2:$C$11, 3, FALSE)

2。 然後,拖動填充手柄以將該公式填充到所需的其他單元格中,並且所有匹配的分數都已返回,如下圖所示:

筆記:

  • 1.在上式中 E2&“ *” 是查找值,其中的值 E2* 通配符(“ *”表示一個或多個字符), A2:C11 是查詢範圍,數字 3 包含要返回的值的列。
  • 2. Vlookup使用通配符時,必須在Vlookup函數的最後一個參數中將精確匹配模式設置為FALSE或0。

提示:

1.查找並返回以特定值結尾的匹配值,請應用以下公式: =VLOOKUP("*"&E2, $A$2:$C$11, 3, FALSE)

2.要基於部分文本字符串查找並返回匹配值,無論指定的文本位於文本字符串的前面,後面還是中間,您只需要在單元格引用或文本周圍連接兩個*字符即可。 請使用以下公式: =VLOOKUP("*"&D2&"*", $A$2:$B$11, 2, FALSE)


7。 來自另一個工作表的Vlookup值

通常,您可能必須使用多個工作表,Vlookup函數可用於從另一工作表中查找數據,就像在一個工作表上一樣。

例如,您有兩個工作表,如下圖所示,要從指定的工作表中查找並返回相應的數據,請執行以下步驟:

1. 請輸入以下公式或將其複製到要獲取匹配項的空白單元格中:

=VLOOKUP(A2,'Data sheet'!$A$2:$C$15,3,0)

2. 然後,將填充手柄向下拖動到要應用此公式的單元格上,您將根據需要獲得相應的結果,請參見屏幕截圖:

備註: 在上面的公式中:

  • A2 代表查詢值;
  • 數據表 是您要從中查找數據的工作表的名稱,(如果工作表名稱包含空格或標點符號,則應在工作表名稱周圍加上單引號,否則,可以直接使用工作表名稱,例如= VLOOKUP(A2,數據表!$ A $ 2:$ C $ 15,3,0));
  • A2:C15 是數據表中我們要搜索數據的數據范圍;
  • 3 是包含您要從中返回匹配數據的列號。

8。 來自另一個工作簿的Vlookup值

本節將討論查找,並使用Vlookup函數從其他工作簿中返回匹配值。

例如,第一個工作簿包含產品和成本清單,現在,您要根據產品項在第二個工作簿中提取相應的成本,如下圖所示。

1。 要從另一個工作簿中檢索相對成本,請首先打開要使用的兩個工作簿,然後將以下公式應用到要放入結果的單元格中:

=VLOOKUP(B2,'[Product list.xlsx]Sheet1'!$A$2:$B$6,2,0)

2。 然後,將此公式拖放到所需的其他單元格中,請參見屏幕截圖:

筆記:

  • 1.在上式中:
    B2 代表查詢值;
    [產品列表.xlsx] Sheet1 是您要從中查找數據的工作簿和工作表的名稱(對工作簿的引用用方括號括起來,整個工作簿+工作表用單引號括起來);
    A2:B6 是我們要搜索數據的另一個工作簿的工作表中的數據范圍;
    2 是包含您要從中返回匹配數據的列號。
  • 2.如果關閉了查找工作簿,則查找工作簿的完整文件路徑將在公式中顯示,如以下屏幕截圖所示:

9。 Vlookup並返回空白或特定文本,而不是0或#N / A錯誤值

通常,應用vlookup函數返回相應的值時,如果匹配的單元格為空,則將返回0,如果找不到匹配的值,則會顯示錯誤#N / A值,如下圖所示。 而不是顯示0或#N / A值以及空白單元格或您喜歡的其他值,這是 Vlookup返回空白或特定值,而不是0或N / A 本教程可能會逐步幫助您。


高級VLOOKUP示例

1。 具有Vlookup功能的雙向查找(行和列中的Vlookup)

有時,您可能需要進行二維查找,這意味著同時在行和列中對Vlookup進行查找。 假設有以下數據范圍,現在,您可能需要獲取指定季度中特定產品的價值。 本節將介紹一些在Excel中處理此工作的公式。

公式1:使用VLOOKUP和MATCH函數

在Excel中,您可以結合使用VLOOKUP和MATCH函數進行雙向查找,請將以下公式應用於空白單元格,然後按 Enter 獲得結果的關鍵。

=VLOOKUP(H1, $A$2:$E$6, MATCH(H2, $A$1:$E$1, 0), FALSE)

備註: 在上面的公式中:

  • H1:您要根據其獲取相應值的列中的查找值;
  • A2:E6:包含行標題的數據范圍;
  • H2:要基於其獲取相應值的行中的查找值;
  • A1:E1:列標題的單元格。

公式2:使用INDEX和MATCH函數

這是另一個公式,也可以幫助您執行二維查找,請應用以下公式,然後按 Enter 獲得所需結果的關鍵。

=INDEX($B$2:$E$6, MATCH(H1, $A$2:$A$6, 0), MATCH(H2, $B$1:$E$1, 0))

備註: 在上面的公式中:

  • B2:E6:要從中返回匹配項的數據范圍;
  • H1:您要根據其獲取相應值的列中的查找值;
  • A2:A6:行標題包含您要查找的產品。
  • H2:要基於其獲取相應值的行中的查找值;
  • B1:E1:列標題包含您要查找的季度。

2。 基於兩個或多個條件的Vlookup匹配值

您可以輕鬆地基於一個條件查找匹配值,但是如果您有兩個或多個條件,該怎麼辦? Excel中的LOOKUP或MATCH和INDEX函數可以幫助您快速輕鬆地解決此任務。

例如,我有下面的數據表,以根據特定的產品和尺寸返回匹配的價格,以下公式可能會對您有所幫助。

公式1:使用LOOKUP函數

請將以下公式應用於要獲取結果的單元格,然後按Enter鍵,請參見屏幕截圖:

=LOOKUP(2,1/($A$2:$A$12=G1)/($B$2:$B$12=G2),($D$2:$D$12))

筆記:

  • 1.在上式中:
    A2:A12 = G1:表示在A1:A2範圍內搜索G12的標準;
    B2:B12 = G2:用於在範圍B2:B2中搜索G12的標準;
    D2:D12:要返回相應值的範圍。
  • 2.如果您有兩個以上的條件,則只需將其他條件連接到公式中,例如: =LOOKUP(2,1/($A$2:$A$12=G1)/($B$2:$B$12=G2)/($C$2:$C$12=G3),($D$2:$D$12))

公式2:使用INDEXT和MATCH函數

Index和Match函數的組合還可以用於基於多個條件返回匹配值。 請複製或輸入以下公式:

=INDEX($D$2:$D$12,MATCH(1,($A$2:$A$12=G1)*($B$2:$B$12=G2),0))

然後,同時按Ctrl + Shift + Enter鍵以獲取所需的相對值。 看截圖:

筆記:

  • 1.在上式中:
    A2:A12 = G1:表示在A1:A2範圍內搜索G12的標準;
    B2:B12 = G2:用於在範圍B2:B2中搜索G12的標準;
    D2:D12:要返回相應值的範圍。
  • 2.如果您有兩個以上的條件,則只需將新條件加入公式中,例如: =INDEX($D$2:$D$12,MATCH(1,($A$2:$A$12=G1)*($B$2:$B$12=G2)*($C$2:$C$12=G3),0))

3。 Vlookup返回具有一個或多個條件的多個匹配值

在Excel中,Vlookup函數搜索一個值,並且如果找到多個對應的值,則僅返回第一個匹配的值。 有時,您可能想返回一行,一列或單個單元格中的所有相應值。 本節將討論如何在工作簿中使用一個或多個條件返回多個匹配值。

Vlookup水平地基於一個或多個條件的所有匹配值

Vlookup根據一個條件水平地匹配所有匹配值:

要使用Vlookup並水平返回基於一個特定值的所有匹配值,通用公式為:

=IFERROR(INDEX(return_range, SMALL(IF(lookup_value = lookup_range, ROW(return_range) - m, ""), COLUMN() - n)), "")
備註: m 是返回範圍減去1的第一個單元格的行號。
      n 是第一個公式單元格的列號減去1。

1。 請將以下公式應用於空白單元格,然後按 Ctrl + Shift + Enter 鍵一起獲得第一個匹配的值,請參見屏幕截圖:

=IFERROR(INDEX($C$2:$C$20, SMALL(IF($F1=$A$2:$A$20, ROW($C$2:$C$20)-1,""), COLUMN()-5)),"")

2。 然後,選擇第一個公式單元格,並將填充手柄拖動到右側單元格,直到顯示空白單元格,並且所有對應項均已提取,請參見屏幕截圖:

提示:

如果返回的列表中有重複的匹配值,請使用以下公式來忽略重複的值,然後按 Enter 得到第一個結果: =IFERROR(INDEX($C$2:$C$20,MATCH($F1,$A$2:$A$20,0)),"")

繼續輸入以下公式: =IFERROR(INDEX($C$2:$C$20,MATCH(1,($F1=$A$2:$A$20)*ISNA(MATCH($C$2:$C$20,$F2:F2,0)),0)),"") 放入第一個結果旁邊的單元格,然後按 Ctrl + Shift + Enter 鍵一起獲得第二個結果,然後將此公式拖動到右側單元格以獲取所有其他匹配的值,直到顯示空白單元格為止,請參見屏幕截圖:


Vlookup水平基於兩個或多個條件的所有匹配值:

要使用Vlookup並水平返回基於特定值的所有匹配值,通用公式為:

=IFERROR(INDEX(return_range, SMALL(IF(1 = ((--(lookup_value1=lookup_range1)) * (--(lookup_value2 = lookup_range2))), ROW(return_range) - m, ""), COLUMN() - n)),"")
備註: m 是返回範圍減去1的第一個單元格的行號。
      n 是第一個公式單元格的列號減去1。

1。 將以下公式應用於要輸出結果的空白單元格:

=IFERROR(INDEX($C$2:$C$20, SMALL(IF(1=((--($F1=$A$2:$A$20)) * (--($F2=$B$2:$B$20))), ROW($C$2:$C$20)-1,""), COLUMN()-5)),"")

2。 然後,選擇公式單元格並將填充手柄拖動到右側單元格,直到顯示空白單元格,並且已返回基於特定條件的所有匹配值,請參見屏幕截圖:

備註:有關更多條件,您只需要將lookup_value和lookup_range連接到公式中,例如: =IFERROR(INDEX(return_range, SMALL(IF(1 = ((--(lookup_value1=lookup_range1)) * (--(lookup_value2 = lookup_range2) * (--(lookup_value3 =lookup_range3)))), ROW(return_range) - m, ""), COLUMN() - n)),"").


Vlookup垂直基於一個或多個條件的所有匹配值

Vlookup垂直基於一個條件的所有匹配值:

要進行Vlookup並垂直返回基於一個特定值的所有匹配值,通用公式為:

=IFERROR(INDEX(return_range, SMALL(IF(lookup_value = lookup_range, ROW(return_range )- m ,""), ROW() - n )),"")
備註: m 是返回範圍減去1的第一個單元格的行號。
      n 是第一個公式單元格的行號減去1。

1。 將以下公式複製或鍵入到要獲取結果的單元格中,然後按 Ctrl + Shift + Enter 鍵一起獲得第一個匹配的值,請參見屏幕截圖:

=IFERROR(INDEX($C$2:$C$20, SMALL(IF(E$2=$A$2:$A$20, ROW($C$2:$C$20)-1,""), ROW()-1)),"")

2。 然後,選擇第一個公式單元格,然後將填充手柄向下拖動到其他單元格,直到顯示空白單元格,並且所有相應項都已列在列中,請參見屏幕截圖:

提示:

要忽略返回的匹配值中的重複項,請使用以下公式: =IFERROR(INDEX($C$2:$C$20,MATCH(0,COUNTIF($F$1:F1,$C$2:$C$20)+($A$2:$A$20<>$E$2),0)),"")

然後按 Ctrl + Shift + Enter 鍵一起獲得第一個匹配的值,然後將此公式單元格向下拖動到其他單元格,直到顯示空白單元格,您將根據需要獲得結果:


Vlookup垂直基於兩個或多個條件的所有匹配值:

要Vlookup並垂直返回基於更具體值的所有匹配值,通用公式為:

=IFERROR(INDEX(return_range, SMALL(IF(1=((--(lookup_value1=lookup_range1)) * ( --(lookup_value2=lookup_range2))), ROW(return_range)-m,""), ROW()-n)),"")
備註: m 是返回範圍減去1的第一個單元格的行號。
      n 是第一個公式單元格的行號減去1。

1。 將以下公式複製到一個空白單元格,然後按 Ctrl + Shift + Enter 鍵一起獲得第一個匹配項。

=IFERROR(INDEX($C$2:$C$20, SMALL(IF(1=((--($E$2=$A$2:$A$20)) * (--($F$2=$B$2:$B$20))), ROW($C$2:$C$20)-1,""), ROW()-1)),"")

2。 然後將公式單元格向下拖動到其他單元格,直到顯示空白單元格,請參見屏幕截圖:

備註:有關更多條件,您只需要將lookup_value和lookup_range連接到公式中,例如: =IFERROR(INDEX(return_range, SMALL(IF(1 = ((--(lookup_value1=lookup_range1)) * (--(lookup_value2 = lookup_range2) * (--(lookup_value3 =lookup_range3)))), ROW(return_range) - m, ""), ROW() - n)),"").


Vlookup將基於兩個或多個條件的所有匹配值放入單個單元格

如果要Vlookup並將多個匹配的值返回到具有指定分隔符的單個單元格中,則TEXTJOIN的新功能可以幫助您快速輕鬆地解決此工作。

Vlookup根據一個條件將所有匹配值放入單個單元格:

請將以下簡單公式應用於空白單元格,然後按 Ctrl + Shift + Enter 鍵一起得到結果:

=TEXTJOIN(",",TRUE,IF($A$2:$A$20=F1,$C$2:$C$20,""))

提示:

要忽略返回的匹配值中的重複項,請使用以下公式: =TEXTJOIN(",", TRUE, IF(IFERROR(MATCH($C$2:$C$20, IF(F1=$A$2:$A$20, $C$2:$C$20, ""), 0),"")=MATCH(ROW($C$2:$C$20), ROW($C$2:$C$20)), $C$2:$C$20, ""))


Vlookup將基於兩個或多個條件的所有匹配值放入單個單元格:

要在將所有匹配值返回到單個單元格中時處理多個條件,請應用以下公式,然後按 Ctrl + Shift + Enter 鍵一起得到結果:

=TEXTJOIN(",",TRUE,IF(($A$2:$A$20=F1)*($B$2:$B$20=F2),$C$2:$C$20,""))

筆記:

1. TEXTJOIN函數僅在Excel 2019和Office 365中可用。

2.如果使用Excel 2016和更早版本,請使用以下文章的用戶定義函數:


4。 Vlookup返回匹配單元格的整個或整個行

在本節中,我將討論如何使用Vlookup函數檢索匹配值的整個行。

1。 請將以下公式複製或鍵入到要輸出結果的空白單元格中,然後按 Enter 獲得第一個值的關鍵。

=VLOOKUP($F$2,$A$1:$D$12,COLUMN(A1),FALSE)

2。 然後,將公式單元格拖動到右側,直到顯示整行的數據為止,請參見屏幕截圖:

備註:在以上公式中, F2 是您要基於其返回整行的查找值, A1:D12 是您要使用的數據范圍, A1 指示數據范圍內的第一列號。

提示:

如果根據匹配的值找到了多行,要返回所有對應的行,請應用以下公式: =IFERROR(INDEX(A:A,SMALL(IF(ISNUMBER(SEARCH($F$2,$A$2:$A$12)),ROW($A$2:$A$12),""),ROW()-1)),""),然後按 Ctrl + Shift + Enter 鍵一起獲得第一個結果,然後將填充手柄向右拖動到單元格,請參見屏幕截圖:

然後在單元格中向下拖動填充手柄,以獲取所有匹配的行,如下圖所示:


5。 在Excel中執行多個Vlookup功能(嵌套Vlookup)

有時,您可能想在多個表中查找值,如果任何一個表包含給定的查找值,如下面的屏幕截圖所示,在這種情況下,您可以將一個或多個Vlookup函數與IFERROR函數組合在一起以執行多個查找。

嵌套Vlookup函數的通用公式為:

=IFERROR(VLOOKUP(lookup_value,table1,col,0),IFERROR(VLOOKUP(lookup_value,table2,col,0),VLOOKUP(lookup_value,table3,col,0)))

備註:

  • Lookup_Array中:您正在尋找的價值;
  • Table1, Table2, Table3,...:存在查找值和返回值的表;
  • 捲心菜:要從中返回匹配值的表中的列號。
  • 0:用於完全匹配。

1。 請將以下公式應用於要放入結果的空白單元格:

=IFERROR(VLOOKUP(J3,$A$3:$B$7,2,0),IFERROR(VLOOKUP(J3,$D$3:$E$7,2,0),VLOOKUP(J3,$G$3:$H$7,2,0)))

2。 然後,將填充手柄向下拖動到要應用此公式的單元格上,並且所有匹配的值都已返回,如下圖所示:

筆記:

  • 1.在上式中 J3 是您正在尋找的價值; A3:B7, D3:E7, G3:H7 查找值和返回值所在的表範圍; 號碼 2 是要從中返回匹配值的範圍內的列號。
  • 2.如果找不到查找值,則會顯示一個錯誤值,用可讀文本替換錯誤,請使用以下公式: =IFERROR(VLOOKUP(J3,$A$3:$B$7,2,0),IFERROR(VLOOKUP(J3,$D$3:$E$7,2,0),IFERROR(VLOOKUP(J3,$G$3:$H$7,2,0),"can't find")))

6。 Vlookup根據另一列中的列表數據檢查值是否存在

Vlookup函數還可以幫助您檢查值是否基於另一個列表,例如,如果您要在C列中查找名稱,並且如果在A列中找到了該名稱,則只返回Yes或No,如下圖所示。如圖所示。

1。 請將以下公式應用於空白單元格:

=IF(ISNA(VLOOKUP(C2,$A$2:$A$10,1,FALSE)), "No", "Yes")

2。 然後,將填充手柄向下拖動到要填充此公式的單元格,您將根據需要獲得結果,請參見屏幕截圖:

備註:在以上公式中, C2 是您要檢查的查找值; A2:A10 是從中查找值的範圍列表; 號碼 1 是您要從中獲取範圍值的列號。


7。 Vlookup並對行或列中的所有匹配值求和

如果使用數字數據,有時,從表中提取匹配值時,可能還需要將幾列或多行中的數字求和。 本節將介紹一些公式來完成Excel中的這項工作。

Vlookup並對一行或多行中的所有匹配值求和

假設您有一個具有幾個月銷售量的產品列表,如下圖所示,現在,您需要根據給定產品匯總所有月份的所有訂單。

Vlookup並將行中的第一個匹配值求和:

1。 請複製或在空白單元格中輸入以下公式,然後按 Ctrl + Shift + Enter 鍵在一起以獲得第一個結果。

=SUM(VLOOKUP(H2, $A$2:$F$9, {2,3,4,5,6}, FALSE))

2。 然後,向下拖動填充手柄以將該公式複製到所需的其他單元格中,並且第一個匹配值所在行中的所有值都已累加在一起,請參見屏幕截圖:

備註:在以上公式中: H2 是包含您要查找的值的單元格; A2:F9 是包含查找值和匹配值的數據范圍(無列標題); 號碼 2,3,4,5,6 {} 是用於計算範圍總數的列號。


Vlookup並求和多行中所有匹配的值:

上面的公式只能對第一個匹配值的行中的值求和。 如果要對多行中的所有匹配項求和,請使用以下公式,然後將填充手柄向下拖動到要應用此公式的單元格,您將獲得所需的結果,請參見屏幕截圖:

=SUMPRODUCT(($A$2:$A$9=H2)*$B$2:$F$9)

備註:在以上公式中: H2 是您要查找的查找值; A2:A9 是包含查找值的行標題; B2:F9 要求和的數值的數據范圍。


Vlookup並對一列或多列中的所有匹配值求和

Vlookup並對列中的第一個匹配值求和:

如果要匯總特定月份的總價值,如下面的屏幕快照所示。

將以下公式應用到空白單元格中,然後向下拖動填充手柄以將此公式複製到其他單元格中,現在,已將基於列中特定月份的第一個匹配值相加,請參見屏幕截圖:

=SUM(INDEX($B$2:$F$9,0,MATCH(H2,$B$1:$F$1,0)))

備註:在以上公式中: H2 是您要查找的查找值; B1:F1 是包含查找值的列標題; B2:F9 要求和的數值的數據范圍。


Vlookup並對多個列中的所有匹配值求和:

若要Vlookup並對多列中的所有匹配值求和,應使用以下公式:

=SUMPRODUCT($B$2:$F$9*(($B$1:$F$1)=H2))

備註:在以上公式中: H2 是您要查找的查找值; B1:F1 是包含查找值的列標題; B2:F9 要求和的數值的數據范圍。


Vlookup並使用功能強大的功能對第一個匹配或所有匹配的值求和

也許上面的公式很難記住,在這種情況下,我將推荐一個方便的功能- 查找和總和 of Kutools for Excel,使用此功能,您可以盡可能輕鬆地獲得結果。    點擊立即下載Kutools for Excel!


Vlookup並對行和列中的所有匹配值求和

例如,如果您想在需要同時匹配列和行時對值求和,以獲取XNUMX月月份產品Sweater的總值,如下圖所示。

請將以下公式應用到單元格中,然後按Enter鍵以獲取結果,請參見屏幕截圖:

=SUMPRODUCT(($B$2:$F$9)*($B$1:$F$1=I2)*($A$2:$A$9=H2))

備註:在以上公式中: B2:F9 是要求和的數值的數據范圍; B1:F1 is 列標題包含您要求和的查找值; I2 是您要查找的列標題中的查找值; A2:A9 行標題包含您要求和的查找值; H2 是要查找的行標題內的查找值。


8。 Vlookup合併基於一個或多個鍵列的兩個表

在日常工作中,分析數據時,您可能需要根據一個或多個關鍵列將所有必要的信息收集到一個表中。 為了解決此問題,Vlookup函數也可以幫您一個忙。

Vlookup合併基於一個鍵列的兩個表

例如,您有兩個表,第一個表包含產品和名稱數據,第二個表包含產品和訂單,現在,您想通過將公共產品列匹配到一個表中來組合這兩個表。

公式1:使用VLOOKUP函數

要將兩個表基於一個鍵列合併為一個表,請將以下公式應用於要獲取結果的空白單元格中,然後將填充手柄向下拖動到要應用此公式的單元格中,獲得一個合併的表,其中order列基於鍵列數據連接到第一個表數據。

=VLOOKUP($A2,$E$2:$F$8,2,FALSE)

備註:在以上公式中, A2 是您想要的價值, E2:F8 是要搜索的表,數字 2 是表中要從中檢索值的列號。

公式2:使用INDEX和MATCH函數

如果您的常用數據在第二個表的右側,而返回的數據在左側,則為了合併訂單列,Vlookup函數將無法完成此工作。 要從右向左查找,可以使用INDEX和MATCH函數替換Vlookup函數。

請複制以下公式或將其輸入到空白單元格中,然後將該公式複製到該列的下方,並且訂單列已加入到第一張表中,請參見屏幕截圖:

=INDEX($E$2:$E$8, MATCH($A2, $F$2:$F$8, 0))

備註:在以上公式中, A2 是您要查找的查找值, E2:E8 是您要返回的數據范圍, F2:F8 是包含查找值的查找範圍。


Vlookup合併基於多個鍵列的兩個表

如果要連接的兩個表具有多個鍵列,要基於這些公共列合併表,則INDEX和MATCH函數可以為您提供幫助。

基於多個鍵列合併兩個表的通用公式為:

=INDEX(lookup_table, MATCH(1, (lookup_value1=lookup_range1) * (lookup_value2=lookup_range2), 0), return_column_number)

1。 請將以下公式應用於要放入結果的空白單元格,然後按 Ctrl + Shift + Enter 鍵一起獲得第一個匹配的值,請參見屏幕截圖:

=INDEX($E$2:$G$9, MATCH(1, ($A2=$E$2:$E$9) * ($B2=$F$2:$F$9), 0), 3)

備註:在以上公式中,單元格引用表示的內容如下所示:

2然後,選擇第一個公式單元格,然後拖動填充手柄以根據需要將此公式複製到其他單元格中:

保養竅門:在Excel 2016及更高版本中,您還可以使用 電源查詢 該功能可根據鍵列將兩個或多個表合併為一個表。 請點擊以了解詳細信息.

9。 跨多個工作表的Vlookup匹配值

您是否嘗試過在多個工作表中使用Vlookup值? 假設我具有以下三個具有數據范圍的工作表,現在,我想根據這三個工作表中的條件獲取部分相應的值,以得到如下所示的結果。 在這種情況下, 跨多個工作表的Vlookup值 本教程可能會逐步幫助您。


VLOOKUP匹配值保持單元格格式

1。 Vlookup獲取單元格格式(單元格顏色,字體顏色)以及查找值

眾所周知,普通的Vlookup函數只能幫助我們從另一個數據范圍返回匹配的值,但是有時,您可能希望返回相應的值以及單元格格式,例如填充顏色,字體顏色,字體樣式如下圖所示。 本節將討論如何在Excel中使用返回值獲取單元格格式。

請執行以下步驟以查找並返回其對應的值以及單元格格式:

1。 在工作表中包含您要Vlookup的數據,右鍵單擊工作表選項卡,然後選擇 查看代碼 從上下文菜單中。 看截圖:

2。 在開 Microsoft Visual Basic for Applications 窗口,請將下面的VBA代碼複製到“代碼”窗口中。

VBA代碼1:Vlookup,以獲取單元格格式以及查找值

Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim I As Long
    Dim xKeys As Long
    Dim xDicStr As String
    On Error Resume Next
    Application.ScreenUpdating = False
    xKeys = UBound(xDic.Keys)
    If xKeys >= 0 Then
        For I = 0 To UBound(xDic.Keys)
            xDicStr = xDic.Items(I)
            If xDicStr <> "" Then
                Range(xDic.Keys(I)).Interior.Color = _
                Range(xDic.Items(I)).Interior.Color
                Range(xDic.Keys(I)).Font.FontStyle = _
                Range(xDic.Items(I)).Font.FontStyle
                Range(xDic.Keys(I)).Font.Size = _
                Range(xDic.Items(I)).Font.Size
                Range(xDic.Keys(I)).Font.Color = _
                Range(xDic.Items(I)).Font.Color
                Range(xDic.Keys(I)).Font.Name = _
                Range(xDic.Items(I)).Font.Name
                Range(xDic.Keys(I)).Font.Underline = _
                Range(xDic.Items(I)).Font.Underline
            Else
                Range(xDic.Keys(I)).Interior.Color = xlNone
            End If
        Next
        Set xDic = Nothing
    End If
    Application.ScreenUpdating = True
End Sub

3。 仍在 Microsoft Visual Basic for Applications 窗口中,單擊 插入 > 模塊,然後將下面的VBA代碼2複製到“模塊”窗口中。

VBA代碼2:Vlookup,以獲取單元格格式以及查找值

Public xDic As New Dictionary
Function LookupKeepFormat (ByRef FndValue, ByRef LookupRng As Range, ByRef xCol As Long)
    Dim xFindCell As Range
    On Error Resume Next
    Set xFindCell = LookupRng.Find(FndValue, , xlValues, xlWhole)
    If xFindCell Is Nothing Then
        LookupKeepFormat = ""
        xDic.Add Application.Caller.Address, ""
    Else
        LookupKeepFormat = xFindCell.Offset(0, xCol - 1).Value
        xDic.Add Application.Caller.Address, xFindCell.Offset(0, xCol - 1).Address
    End If
End Function

4。 插入以上代碼後,然後單擊 工具 > 參考Microsoft Visual Basic for Applications 窗口。 然後檢查 Microsoft腳本運行時 中的複選框 參考– VBAProject 對話框。 查看屏幕截圖:

5。 然後,點擊 OK 關閉對話框,然後保存並關閉代碼窗口,現在,返回工作表,然後應用以下公式: =LookupKeepFormat(E2,$A$1:$C$10,3) 放入要輸出結果的空白單元格,然後按Enter鍵。 看截圖:

備註:在以上公式中, E2 是您將要尋找的價值, A1:C10 是表格範圍和數字 3 是您要返回匹配值的表的列號。

6。 然後,選擇第一個結果單元格,然後向下拖動填充手柄以獲取所有結果及其格式。 查看截圖。


2。 保留Vlookup返回值的日期格式

通常,使用Vloook函數查找並返回匹配的日期格式值時,將顯示一些數字格式,如下圖所示。 為了避免返回結果中的日期格式,應將TEXT函數包含在Vlookup函數中。

請將以下公式應用到空白單元格中,然後拖動填充手柄以將此公式複製到其他單元格中,並且所有匹配的日期都已返回,如下圖所示:

=TEXT(VLOOKUP(E2,$A$2:$C$9,3,FALSE),"mm/dd/yyyy")

備註:在以上公式中, E2 是外觀價值, A2:C9 是查詢範圍,數字 3 是您要返回值的列號, mm/dd/yyy 是您要保留的日期格式。


3。 Vlookup並返回帶有單元格註釋的匹配值

您是否曾經嘗試過Vlookup不僅返回匹配的單元格數據,還返回Excel中的單元格註釋,如下面的屏幕快照所示? 要解決此任務,請使用下面的用戶定義功能。

1。 按住 ALT + F11 鍵打開 Microsoft Visual Basic for Applications 窗口。

2。 點擊 插入 > 模塊,然後將以下代碼複製並粘貼到“模塊窗口”中。

VBA代碼:Vlookup並返回帶有單元格註釋的匹配值:

Function VlookupComment(LookVal As Variant, FTable As Range, FColumn As Long, FType As Long) As Variant
'Updateby Extendoffice
    Application.Volatile
    Dim xRet As Variant 'could be an error
    Dim xCell As Range
    xRet = Application.Match(LookVal, FTable.Columns(1), FType)
    If IsError(xRet) Then
        VlookupComment = "Not Found"
    Else
        Set xCell = FTable.Columns(FColumn).Cells(1)(xRet)
        VlookupComment = xCell.Value
        With Application.Caller
            If Not .Comment Is Nothing Then
                .Comment.Delete
            End If
            If Not xCell.Comment Is Nothing Then
                .AddComment xCell.Comment.Text
            End If
        End With
    End If
End Function

3。 然後保存並關閉代碼窗口,輸入以下公式: =vlookupcomment(D2,$A$2:$B$9,2,FALSE) 放入空白單元格中以找到結果,然後拖動填充手柄以將該公式複製到其他單元格中,現在,匹配的值以及註釋將立即返回,請參見屏幕截圖:

備註:在以上公式中, D2 是您要返回其對應值的查找值, A2:B9 是您要使用的數據表,數字 2 是包含您要返回的匹配值的列號。


4。 在Vlookup中處理文本和實數

例如,我有一個數據范圍,原始表中的ID號是數字格式,在存儲為文本的查找單元格中,應用常規的Vlookup函數時,顯示以下錯誤#N / A錯誤結果如圖所示。 在這種情況下,如果表中的查找號和原始號具有不同的數據格式,如何獲得正確的信息?

要在Vlookup函數中處理文本和實數,請將以下公式應用於空白單元格,然後向下拖動填充手柄以復制此公式,您將獲得正確的結果,如下圖所示:

=IFERROR(VLOOKUP(VALUE(D2),$A$2:$B$8,2,0),VLOOKUP(TEXT(D2,0),$A$2:$B$8,2,0))

筆記:

  • 1.在上式中 D2 是您要返回其對應值的查找值, A2:B8 是您要使用的數據表,數字 2 是包含您要返回的匹配值的列號。
  • 2.如果您不確定在哪裡有數字和在哪裡有文本,則此公式也很好用。

下載VLOOKUP示例文件

Vlookup_basic_examples.xlsx

Advanced_Vlookup_examples.xlsx

Vlookup_keep_cell_formatting.zip



  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 和保存數據; 拆分單元格內容; 合併重複的行和總和/平均值...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 收藏并快速插入公式,範圍,圖表和圖片; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 數據透視表分組依據 週號,週幾等 顯示未鎖定的單元格 用不同的顏色 突出顯示具有公式/名稱的單元格...
kte選項卡201905
  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 每天將您的工作效率提高50%,並減少數百次鼠標單擊!
officetab底部
Say something here...
symbols left.
You are guest
or post as a guest, but your post won't be published automatically.
Loading comment... The comment will be refreshed after 00:00.

Be the first to comment.