【问题标题】:Wrong results in Google spreadsheets Lookup functions (vlookup, hlookup, match)Google 电子表格中的错误结果查找函数(vlookup、hlookup、匹配)
【发布时间】:2015-02-06 15:14:50
【问题描述】:

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

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

【问题讨论】:

  • @pnuts 这对我来说似乎是一个错误,但以防万一这是预期的行为,我希望 Excel 专家注意这个问题。
  • 只需在可选参数中添加FALSE=VLOOKUP(A2,A1:E13,5,FALSE)

标签: google-sheets google-docs gs-vlookup


【解决方案1】:

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

VLOOKUP 的 Excel 可选参数称为 range_lookup 并引用:

range_lookup 可选。一个逻辑值,指定您是否 希望 VLOOKUP 找到完全匹配或近似匹配:

  • 如果 range_lookup 为 TRUE 或被省略,则为精确或近似 匹配返回。如果没有找到完全匹配的,下一个最大的 返回小于 lookup_value 的值。

  • 重要如果 range_lookup 为 TRUE 或被省略,则值 table_array 的第一列必须按升序排列 命令;否则,VLOOKUP 可能不会返回正确的值。

  • 有关详细信息,请参阅对区域或表格中的数据进行排序。

  • 如果 range_lookup 为 FALSE,则 table_array 不需要排序。

  • 如果 range_lookup 参数为 FALSE,VLOOKUP 将只找到一个精确的 匹配。如果第一列有两个或多个值 匹配lookup_value的table_array,找到的第一个值是 用过的。如果未找到完全匹配,则错误值 #N/A 为 返回。

Google 为 VLOOKUP 提供的可选参数称为 is_sorted 并引用:

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)

【讨论】:

  • 谢谢@pnuts 和@chancea!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-04
  • 2019-10-19
  • 2019-07-20
相关资源
最近更新 更多