【问题标题】:lookup function doesn't work with unsorted list查找功能不适用于未排序的列表
【发布时间】:2014-11-23 02:14:48
【问题描述】:

为什么会这样,并正确查找值

但是一旦我改变了值的顺序,它会产生不正确的值?

【问题讨论】:

    标签: google-sheets lookup


    【解决方案1】:

    如果您阅读 LOOKUP 函数的注释,它会说:

    只有对 search_range 或 search_result_array 中的数据进行排序后,LOOKUP 函数才能正常工作。如果数据未排序,请使用 VLOOKUP、HLOOKUP 或其他相关函数。

    如下更改您的公式以使用 VLOOKUP:

    =VLOOKUP(D3, A1:B6, 2, FALSE)
    

    语法:

    VLOOKUP(search_key, range, index, [is_sorted])

    search_key - 要搜索的值。例如,42、“猫”或 I24。

    range - 要考虑的搜索范围。搜索范围中的第一列以查找在 search_key 中指定的键。

    index - 要返回的值的列索引,其中范围内的第一列编号为 1。

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

    【讨论】:

    • 基于IFERROR 的文档,如果您将查找表保留在工作表的第二页中,您可以为失败的查找设置一个默认值,例如:=IF(NOT(ISNA(VLOOKUP(B2,'<sheet_name>'!A:B,2, FALSE))), VLOOKUP(B2,'<sheet_name>'!A:B,2, FALSE), "<default>"),其中 A 列是键,B 是值,在工作表“”中未排序。
    • VLOOKUP 不能替代 LOOKUP,因为它要求查找值位于第一列。
    • @Nick VLOOKUP 要求查找值位于指定 范围 的第一列中。唯一不能替代 LOOKUP 的情况是,所需结果的列位于查找值列的左侧。
    • 找到了在结果范围在搜索范围之前进行未排序查找的解决方案。 INDEX(result_range,MATCH(search_key,search_range,0)) 来源:yagisanatode.com/2017/11/27/…
    • @flyingsolow 谢谢!您应该将其添加为答案,以便更容易看到,因为这修复了 LOOKUP 的一个非常明显的不足。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-27
    • 1970-01-01
    • 1970-01-01
    • 2015-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多