我试图弄清楚是否可以使用基于动态值的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多次显示,我不明白为什么。
答案 0 :(得分:1)
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填充了密钥,以下情况可能会导致奇怪的结果:
或
如果知道,您应该只使用查找,查找值将存在,并且它们将被排序。否则,您可能需要查看VLookup
或Index Match
如果工作表草稿选项中的A列实际上包含您正在查找的那些字母,则可以使用简单的VLookup:
=VLOOKUP(F2, `Draft Options`!$A$2:$B$1000, 2, FALSE)
此处FALSE
指定VLookup应不使用二进制搜索算法,而是线性地(即逐个)遍历列表,该列表较慢但将检索第一个匹配值或如果它不存在则抛出错误而不是返回奇怪的东西。