匹配結果不正確主要是以下2個方面入手:
- 是否是精確匹配(range_lookup 參數為 FALSE或0)
- 檢查所有的數據是否帶空格等
[官方幫助文檔]Microsoft Excel 中 VLOOKUP 函數的語法和用法
語法
VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
VLOOKUP 函數語法具有下列參數 (參數:為操作、事件、方法、屬性、函數或過程提供信息的值。):
- lookup_value 必需。要在表格或區域的第一列中搜索的值。lookup_value 參數可以是值或引用。如果為 lookup_value 參數提供的值小於 table_array 參數第一列中的最小值,則 VLOOKUP 將返回錯誤值 #N/A。
- table_array 必需。包含數據的單元格區域。可以使用對區域(例如,A2:D8)或區域名稱的引用。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 查找精確匹配值還是近似匹配值:
- 如果 range_lookup 為 TRUE 或被省略,則返回精確匹配值或近似匹配值。如果找不到精確匹配值,則返回小於 lookup_value 的最大值。
要點 如果 range_lookup 為 TRUE 或被省略,則必須按升序排列 table_array 第一列中的值;否則,VLOOKUP 可能無法返回正確的值。
如果 range_lookup 為 FALSE,則不需要對 table_array 第一列中的值進行排序。
- 如果 range_lookup 參數為 FALSE,VLOOKUP 將只查找精確匹配值。如果 table_array 的第一列中有兩個或更多值與 lookup_value 匹配,則使用第一個找到的值。如果找不到精確匹配值,則返回錯誤值 #N/A。
- 如果 range_lookup 為 TRUE 或被省略,則返回精確匹配值或近似匹配值。如果找不到精確匹配值,則返回小於 lookup_value 的最大值。
注解
- 在 table_array 的第一列中搜索文本值時,請確保 table_array 第一列中的數據不包含前導空格、尾部空格、非打印字符或者未使用不一致的直引號(' 或 ")與彎引號(‘ 或 “)。否則,VLOOKUP 可能返回不正確或意外的值。
在搜索數字或日期值時,請確保 table_array 第一列中的數據未存儲為文本值。否則,VLOOKUP 可能返回不正確或意外的值。
- 如果 range_lookup 為 FALSE 且 lookup_value 為文本,則可以在 lookup_value 中使用通配符 - 問號 (?) 和星號 (*)。問號匹配任意單個字符;星號匹配任意字符序列。如果要查找實際的問號或星號,請在字符前鍵入波形符 (~)。