20

下面的电子表格演示了 Google 电子表格查找函数的一个非常奇怪的行为。我已经多次使用这些功能,没有任何问题。任何人都可以确认它也发生在他们身边吗?

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

4

1 回答 1

42

默认VLOOKUP情况下会进行近似匹配。@Pnuts 解释说,并非在每种情况下都返回所需的结果,因为搜索是二进制的。

Excel的可选参数VLOOKUP称为range_lookup和quote:

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。

Google 的可选参数VLOOKUP称为is_sorted和 quote:

is_sorted - [可选 - 默认为 TRUE] - 指示要搜索的列(指定范围的第一列)是否已排序。

  • 如果 is_sorted 为 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)
于 2015-02-06T15:29:12.610 回答