动态价值的Google电子表格LOOKUP

时间:2016-03-14 21:35:39

标签: google-sheets

我试图弄清楚是否可以使用基于动态值的LOOKUP函数。例如:

=LOOKUP("A", C$2:C$1000, B$2:B$1000)

以上将在C列中查找字母A,然后从相应的B列行中写入值。我现在要做的是阅读D栏中的字母A,如下:

=LOOKUP(D2, Sheet2!C$2:C$1000, Sheet2!B$2:B$1000)

但是,上面给我一个错误。有没有办法完成上述工作?

以上一直让我回答错误,说找不到值,我不确定我做错了什么。

修改

好的,所以我一直在玩这个,我开始有一些非常奇怪的结果。让我们采取下表:https://docs.google.com/spreadsheets/d/1ki3pmCOQoI1DLcbjEO-uwgwZGFfnHhM-fodspw8v1Qs/#gid=1001637055

然后我的第二张是这样的: https://docs.google.com/spreadsheets/d/1ki3pmCOQoI1DLcbjEO-uwgwZGFfnHhM-fodspw8v1Qs/edit#gid=1993578337

如果你看第二张,bob多次显示,我不明白为什么。

1 个答案:

答案 0 :(得分:1)

#N / A的原因

lookup会生成#N/A,如果它正在查找空范围,就像这里的情况一样。 `'草稿选项'!答:A为空,因此查找无法找到要查找的值。

多次出现的原因

文件说明:

  

LOOKUP功能只有在search_range或者数据中才能正常工作   search_result_array已排序。使用VLOOKUP,HLOOKUP或其他相关内容   如果没有对数据进行排序,则会起作用。

     

如果找不到search_key,查找中使用的项目将是   在所提供的范围内立即变小的值。例如,   如果数据集包含数字1,3,5并且search_key为2,那么   1将用于查找。

现在,您正在查找文本,但同样适用,它需要按字母顺序排序 这是因为lookup正在执行一项名为binary search的事情 由于您的数据是无序的(假设您的列A填充了密钥,以下情况可能会导致奇怪的结果:

  1. 查看中间条目并检查值是否在之前或 在按字母顺序排序的列表中的查找值之后。
  2. 如果它来了 在它检查之前的中间位置之间 列表和中间。
  3. 如果您的条目恰好位于后半部分,则查找永远不会找到此条目
    1. 这个值可能不存在所以它选择它之前可以找到的第一个值(假设数据已经排序)或者某些东西(看似随机),其中查找在查找值和n +之后按字母顺序查找值n 1按字母顺序排列并返回值n + 1.
    2. 如果知道,您应该只使用查找,查找值将存在,并且它们将被排序。否则,您可能需要查看VLookupIndex Match

      解决方案

      如果工作表草稿选项中的A列实际上包含您正在查找的那些字母,则可以使用简单的VLookup:

      =VLOOKUP(F2, `Draft Options`!$A$2:$B$1000, 2, FALSE)
      

      此处FALSE指定VLookup应使用二进制搜索算法,而是线性地(即逐个)遍历列表,该列表较慢但将检索第一个匹配值或如果它不存在则抛出错误而不是返回奇怪的东西。