永发信息网

excel的lookup函数出错

答案:2  悬赏:0  手机版
解决时间 2021-04-02 22:35
  • 提问者网友:两耳就是菩提
  • 2021-04-01 21:42
excel的lookup函数出错
最佳答案
  • 五星知识达人网友:行路难
  • 2021-04-01 21:52
LOOKUP的运行原理分析
LOOKUP函数以高效的运算速度被EXCEL函数爱好者喜欢,而且LOOKUP在日常实际工作中特别是数组公式,内存数组中应用广泛。
LOOKUP(lookup_value,lookup_vector,result_vector)
lookup_value意思为要在数据表中查找的“值”。
lookup_vector意思为要查找的值得“数据表”。
result_vector意思为通过数据表想要得到的"值“。
LOOKUP的查询方式为二分法查询,具体的查询原理看下图。

下面用例子给大家具体讲一下LOOKUP的具体应用与原理:
以一个学生成绩表为例进行分析,查询一下英语成绩为98的学生姓名:
F2的公式为=LOOKUP(D2,B2:B15,C2:C15)
意思为从B2:B15列里面找D2,并返回C2:C15相对应行的值
这里的结果是"刘备"肯定会让好多人感到困惑,明明有98对应的是“王思”怎么会返回“刘备”呢?那么看往下看,就会彻底明白的。

对LOOKUP的查找方法进行分解——第一次二分法查询:
98会跟第7行的数据78进行比较,因为98>78,所以返回第8到第14行的值。

第二次二分法查询:
98会跟第4行的数据66进行比较,因为98>66,所以返回第5到第7行数据。

第三次二分法查询:
98会跟第2行的数据87进行比较,因为98>87所以返回第3数据。
因为98比91大,所以就向下近似取比98小的最近的值——91所对应的名字。

总结了一个知识点:
1、LOOKUP要查询一个明确的值或者范围的时候(也就是知道在查找的数据列是肯定包含被查找的值),查询列必须按照升序排列。(在EXCEL帮助文档里也是这么说的)
如果所查询值为明确的值,则返回值对应的结果行,如果没有明确的值,则向下取的于所查询值最近的值。
2、查找一个不确定的值,如查找一列数据的最后一个数值,在这种情况下,并不需呀升序排列。
全部回答
  • 1楼网友:神鬼未生
  • 2021-04-01 23:25
B6:G6没有按升序排列,将公式=LOOKUP(SMALL(B6:G6,1),B6:G6,B4:G4),改为:
=LOOKUP(1,0/(SMALL(B6:G6,1)=B6:G6),B4:G4)
没有原数据表,只能自己试试,也许还有其它原因。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯