tft每日頭條

 > 圖文

 > excelvlookup查找值不在第一列

excelvlookup查找值不在第一列

圖文 更新时间:2024-09-18 14:13:43

在 Excel 中,VLookUp和LookUp函數用于堅直查找,而HLookUp函數用于水平查找,它通常在表格第一行查找,但如果選定區域不包括表格第一行,則不在表格第一行查找。HLookUp函數的參數與VLookUp函數一樣也有四個,它們三個參數相同,隻有一個參數不同,即一個是返回行号,另一個是返回列号當對數值、字母和邏輯值進行查找且匹配選項設置為模糊匹配時,需要對查找範圍的第一行排序,否則HLookUp函數可能返回不正确的結果;當找不到值,HLookUp函數返回錯誤值。HLookUp函數可與Match函數組合使用,以動态返回不同行的值。

一、Excel HLookUp函數語法

1、表達式:HLOOKUP(LookUp_VALUE, Table_Array, Row_Index_Num, [Range_LookUp])

中文表達式:=HLOOKUP(查找值, 查找區域, 返回行号, [匹配選項])

2、說明:

A、LookUp_Value 需要在選定區域的第一行查找,如果選定區域不包括表格的第一行,則不是在表格第一行查找;例如選定區域為 B2:C9,則應該在 B2:C2 查找 LookUp_Value,也就是 B2:C2 為第一行,因此千萬不要把表格第一行認為是查找行。

B、如果 Range_Lookup 設置為 True,Table_Array 第一行的數值、字母和邏輯值必須從左到右按升序排列,否則 HLookUp 可能返回不正确的數值;如果 Range_LookUp 設置為 FALSE,Table_Array 不需排序;Table_Array 中的文本不區分大小寫。

C、當 Row_Index_Num 為 1 時,返回 Table_Array 第一行的值;當 Row_Index_Num 為 2 時,返回 Table_Array 第二行的值;其它的以此類推。如果 Row_Index_Num 小于 1,則 HLookUp 返回值錯誤 #VALUE!;如果 Row_Index_Num 大于 Table_Array 的行數,則 HLookUp 返回引用錯誤值 #REF!。

D、Range_LookUp 為可選項,它有兩個選項,一個為 True(近似匹配),另一個為 False(精确匹配);如果 Range_LookUp 省略或為True,若找不到 LookUp_Value,則返回小于 LookUp_Value 的最大值。 如果 Range_LookUp 為 False,若找不到 LookUp_Value,則返回錯誤值 #N/A。

E、如果 Range_LookUp 設置為 False 且 LookUp_Value 為文本,則在 LookUp_Value 中可以使用通配符問号(?)和星号(*);問号匹配任意一個字符,星号匹配任意一個或一串字符;如果要查找問号或星号,需要加轉義字符~,例如查找問号,應該這樣寫 ~?,星号應該這樣寫 ~*。

二、Excel HLookUp函數的使用方法及實例

(一)省略參數 Range_LookUp 的實例

1、假如要在第一行查找“姓名”。雙擊 A9 單元格,把公式 =HLOOKUP("姓名",A1:C9,5) 複制到 A9,按回車,返回“财務部”;雙擊 A9,在 5 後加逗号(,),按回車,返回“李秀麗”;雙擊 A9,在逗号後輸入 true,按回車,返回“财務部”;再次雙擊 A9,把 true 改為false,按回車,返回“李秀麗”;操作過程步驟,如圖1所示:

excelvlookup查找值不在第一列(HLookUp函數的使用方法及實例)1

圖1

2、公式說明:

A、公式 =HLOOKUP("姓名",A1:C9,5) 中,“姓名”為查找值,A1:C9 為查找區域,5 為返回行号,公式省略了參數 Range_LookUp;公式的意思是,在第一行(指選區域 A1:C9 的第一行)查找“姓名”,返回第 5 行的值。

B、公式 =HLOOKUP("姓名",A1:C9,5) 與 =HLOOKUP("姓名",A1:C9,5,True) 都返回“财務部”,說明第三個參數 5 後不加逗号,參數Range_LookUp 默認選擇 True;公式 =HLOOKUP("姓名",A1:C9,) 與 =HLOOKUP("姓名",A1:C9,5,False) 都返回“李秀麗”,說明第三個參數 5 後加逗号,Range_LookUp 默認選擇 False。

(二)參數 Row_Index_Num 小于 1 與大于查找範圍行數的實例

1、雙擊 A9 單元格,把公式 =HLOOKUP("姓名",A1:C9,0,1) 複制到 A9,按回車,返回值錯誤 #VALUE!;雙擊 A9,把 0 改為 9,按回車,返回 0;再次雙擊 A9,把 9 改為 10,按回車,返回引用錯誤 #REF!;操作過程步驟,如圖2所示:

excelvlookup查找值不在第一列(HLookUp函數的使用方法及實例)2

圖2

2、公式說明:

公式 =HLOOKUP("姓名",A1:C9,0,1) 中,返回行号 Row_Index_Num 為 0,返回值錯誤 #VALUE!,說明 Row_Index_Num 小于 1 返回值錯誤;當把 0 改為 9 後,返回第 9 行的值,也就是返回公式所在行的值,即返回 0;當把 9 改為 10 後,Row_Index_Num 已經超過選定區域的最大行數,因而返回引用錯誤。

(三)找不到 LookUp_Value,返回小于 LookUp_Value 的最大值實例(查找範圍第一行需要排序)

1、假如要查找銷量 589。雙擊 B8 單元格,把公式 =HLOOKUP(589,B2:E7,4,TRUE) 複制到 B8,按回車,返回 679;雙擊 B2,把 539 改為 639,B8 中的返回值變為 512;操作過程步驟,如圖3所示:

excelvlookup查找值不在第一列(HLookUp函數的使用方法及實例)3

圖3

2、公式 =HLOOKUP(589,B2:E7,4,TRUE) 說明:

B2:E7 為查找範圍,這裡的第一行是指 B2:E2(即非表格的首行),也就是在表格的第二行查找 589;由于找不到 589,所以選擇小于等于 589 的最大值 551,然後返回該列第 4 行的值 679;由于這裡的 Range_LookUp 參數設置為 True,所以查找行 B2:E2 需要從左到右按升序排列,否則可能返回不正确的值,如把 539 改為 639 後,返回值變 512,因為 589 小于 639,返回小于 589 的值隻有 467,再返回同列第 4 行的值,所以返回 512。

(四)找不到 LookUp_Value,返回錯誤值 #N/A 實例(查找範圍第一行不需排序)

1、同樣要查找銷量 589。雙擊 B8 單元格,把公式 =HLOOKUP(589,B2:E7,4,FALSE) 複制到 B8,按回車,返回數字錯誤值 #N/A;雙擊 B2,把 639 改為 539,B8 中的值仍是 #N/A;操作過程步驟,如圖4所示:

excelvlookup查找值不在第一列(HLookUp函數的使用方法及實例)4

圖4

2、公式 =HLOOKUP(589,B2:E7,4,FALSE) 說明:

第一次執行時,查找行 B2:E2 沒有從左到右按升序排列,公式返回錯誤值 #N/A;當把 639 改為 539 後,查找行 B2:E2 已經按升序排列,但 B8 仍然返回錯誤值 #N/A,說明查找行不管按不按升序排列,當 Range_LookUp 參數設置為 False 時,找不到查找值,HLookUp函數都返回錯誤值 #N/A,即精确匹配時,查找行不需排序。

(五)查找值有通配符問題(?)和星号(*)的實例

1、查找值有通配符問題(?)

A、假如要查找以任意兩個字開頭且以“襯衫”結束的銷量。雙擊 B4 單元格,把公式 =HLOOKUP("??襯衫",B1:F3,3,FALSE) 複制到 B4,按回車,返回 962,操作過程步驟,如圖5所示:

excelvlookup查找值不在第一列(HLookUp函數的使用方法及實例)5

圖5

B、公式 =HLOOKUP("??襯衫",B1:F3,3,FALSE) 中“??襯衫”為查找值,一個問号表示一個字符,意思是以任意兩個字開頭且以“襯衫”結尾;查找值中有通配符,Range_LookUp 參數需要設置為 False。

2、查找值有通配符星号(*)

A、假如要查找以任意字符任意個字開頭且以“T恤”結尾的銷量。雙擊 B4 單元格,把公式 =HLOOKUP("*T恤",B1:F3,3,FALSE) 複制到 B4,按回車,返回 640;再次雙擊 B4,把“*T恤”改為“*白*”,按回車,返回 458;操作過程步驟,如圖6所示:

excelvlookup查找值不在第一列(HLookUp函數的使用方法及實例)6

圖6

B、公式 =HLOOKUP("*T恤",B1:F3,3,FALSE) 中“*T恤”為查找值,意思是以任意一個或多個字符開頭且以“T恤”結尾,D1 和 E1 中的值都符合條件,但 HLookUp函數選擇第一個符合條件的值,因此返回 640;把“*T恤”改為“*白*”後,B1 和 D1 中的值都符合條件,也選擇第一符合條件的值,所以返回 458。

三、Excel HLookUp Match 組合與非首行實例

1、假如要查找“白色T恤”的“2月銷量(件)”。雙擊 F8 單元格,把公式 =HLOOKUP($F$7,A1:D5,MATCH($E$8,A1:A5,0),0) 複制到 F8,按回車,返回 543;右鍵第一行行号 1,在彈出的菜單中選擇“插入”,則在首行插入一行,公式所在的行也自動下移,F8 變 F9,公式中的各引用單元格也自動加 1,F9 中的值仍為 543;操作過程步驟,如圖7所示:

excelvlookup查找值不在第一列(HLookUp函數的使用方法及實例)7

圖7

2、公式 =HLOOKUP($F$7,A1:D5,MATCH($E$8,A1:A5,0),0) 說明:

A、$F$7 為對 F7 單元格的絕對引用,即無論是往下拖還是往右拖,F7 都不會變為 F8、F9、……或 G8、H8、……,但插入行時,$F$7 會自動變為 $F$8;$E$8 與 $F$7 是一個意思。

B、MATCH($E$8,A1:A5,0) 是在 A1:A5 中查找 E8(即“2月銷量(件)”),0 表示精确匹配,最後返回 4。

C、則公式變為 =HLOOKUP("白色T恤",A1:D5,4,0),接着在第一行查找“白色T恤”,在 D1 單元格找到,返回該列第 4 行的值,正好是543;HLOOKUP 公式最後一個參數 0 表示精确匹配。

D、在首行插入一行後,公式變為 =HLOOKUP($F$8,A2:D6,MATCH($E$9,A2:A6,0),0),此時查找區域變為 A2:D6,第一行也随之變為 A2:F2,也就是在表格的第二行查找。

提示:如果要往下拖,公式的 A1:D5 要變為絕對引用,即 $A$1:$A$5,公式變為 =HLOOKUP($F$7,$A$1:$D$5,MATCH($E$8,A1:A5,0),0)。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved