2015-02-06 100 views
3

以下電子表格顯示Google Spreadsheets查找功能的非常奇怪的行爲。我多次使用這些函數沒有任何問題。任何人都可以確認它發生在他們身邊嗎?Google電子表格查詢功能(vlookup,hlookup,match)出現錯誤結果

例DOC:https://docs.google.com/spreadsheets/d/16lRQ72K28CtObY_ChzpNQUVTl_EgbjEyRcpP5QOZKzE/edit?usp=sharing

+0

爲什麼[EXCEL]標籤?這不是一個錯誤,只是濫用你的要求。 – pnuts 2015-02-06 15:15:52

+0

@pnuts它對我來說看起來像一個bug,但爲防萬一它是預期的行爲,我希望Excel專家注意到這個問題。 – zstolar 2015-02-06 15:21:30

+1

只需在可選參數中添加'FALSE',即'= VLOOKUP(A2,A1:E13,5,FALSE)' – chancea 2015-02-06 15:23:03

回答

13

默認VLOOKUP確實近似匹配。 @Pnuts解釋說,由於搜索是二進制的,因此所有結果都不會被返回。

擅長可選參數VLOOKUP稱爲range_lookup和報價:

range_lookup可選。指定是否 希望VLOOKUP查找精確匹配或近似匹配的邏輯值:

  • 如果range_lookup爲TRUE或省略,一個精確的或近似 匹配,返回。如果未找到完全匹配,則返回小於lookup_value的下一個最大的 值。

  • 重要如果range_lookup爲TRUE或省略,table_array第一列中的值 必須按升序排列 order;否則,VLOOKUP可能不會返回正確的值。

  • 有關更多信息,請參閱對範圍或表中的數據進行排序。

  • 如果range_lookup爲FALSE,則不需要對table_array的第一列中的值進行排序。

  • 如果range_lookup參數爲FALSE,VLOOKUP將僅查找匹配的確切值 。如果第一列 table_array中有兩個或更多值與lookup_value匹配,則找到的第一個值是 。如果未找到完全匹配,則返回錯誤值#N/A 。

谷歌的VLOOKUP可選參數被稱爲將已排序和報價:

將已排序 - [可選 - 默認值爲TRUE] - 指示 列是否要搜索(在指定範圍的第一列)是 排序。

  • 如果將已排序爲TRUE或省略,最接近的匹配(小於或等於 搜索鍵)被返回。如果搜索列中的所有值都大於搜索關鍵字 ,則返回#N/A。

  • 如果將is_sorted設置爲TRUE或省略,並且 範圍的第一列未按排序順序排列,則可能返回錯誤的值。

  • 如果is_sorted爲FALSE,則只返回完全匹配。如果存在 多個匹配值,則返回找到的第一個值對應的單元格的內容,如果找不到這樣的值 ,則返回#N/A。

如果您需要確切匹配與VLOOKUP只是在可選參數以強制精確匹配的查找添加FALSE。如果您使用的是MATCH然後添加一個那麼對於您的電子表格公式應該看起來像0

=VLOOKUP(A2,A1:E13,5,FALSE) 
=VLOOKUP("n1-standard-2",A1:E13,5,FALSE) 
=MATCH(A2,A1:A13,0) 
=MATCH("n1-standard-2",A1:A13,0) 
=HLOOKUP(A1,A1:E13,5,FALSE) 
=HLOOKUP("n1-standard-1",A1:E13,5,FALSE) 
+1

最後的結果不會在任何情況下返回,原因是搜索是二進制的。 – pnuts 2015-02-06 15:31:14

+0

@pnut酷我會在答案中引用這個 – chancea 2015-02-06 15:32:52

+0

謝謝@pnuts和@chancea! – zstolar 2015-02-06 16:26:42