以下电子表格演示了Google Spreadsheets Lookup功能的一种非常奇怪的行为。我已经多次使用这些功能而没有任何问题。任何人都可以确认它也发生在他们身边吗?
示例文档:https://docs.google.com/spreadsheets/d/16lRQ72K28CtObY_ChzpNQUVTl_EgbjEyRcpP5QOZKzE/edit?usp=sharing
答案 0 :(得分:19)
默认情况下VLOOKUP
会进行近似匹配。 @Pnuts解释说,因为搜索是二进制的,所以不会在每种情况下返回所需的结果。
Excel VLOOKUP
的可选参数名为 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将只找到精确的参数 比赛。如果第一列中有两个或更多值 table_array与lookup_value匹配,找到的第一个值是 用过的。如果未找到完全匹配,则错误值#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)