excel 函数公式:=-LOOKUP(,-ROW($3:$6)) ,求解释~

据excelk中LOOKUP(a,b)函数的解释是a为在数组b中所要查找的数值,如果函数找不到a,则使用数组b中小于或等于它的最大数值。那么:=-LOOKUP(,-ROW... 据excelk中LOOKUP(a,b)函数的解释是 a为在数组b中所要查找的数值,如果函数找不到 a,则使用数组b中小于或等于它的最大数值。 那么:=-LOOKUP(,-ROW($3:$6)) ,结果是6 按照上述说法,lookup的返回值应该是在{-3,-4,-5,-6}中寻找小于或等于0的最大数值,而-3最大,再加上lookup前的负号,负负得正,结果应该是3才对,可是为什么结果是6呢? 展开
 我来答
梦幻装饰家
2019-12-17 · TA获得超过3718个赞
知道大有可为答主
回答量:3070
采纳率:26%
帮助的人:223万
展开全部
这是lookup的查找原理,你可以去搜搜关于lookup二分法方面的资料
简单的着这么说吧节点的位置,决定了向左还是向右查找
比如=lookup(5,{100,5,-1000})和=lookup(5,{100,5,-1000,0})
无论两头的数字是多少,永远返回5,因为中点是第一个查找的位置(偶数个数为(1+4)/2取整位置为第一个计算节点)
就你的例子=lookup(0,{-3,-4,-5,-6})第一步以-4为节点,由于0大于-4,往右查找-5和-6,两个数字节点为(1+2)/2取整=1,-5为节点,继续往右,直到最后一个小于0的数值返回。如果是=lookup(0,{-3,-4,-5,6})会返回-5,因为当判断到6为节点的时候,0小于6,会往回查找,因为第一个节点的右边存在小于等于0的数字。
因此=LOOKUP(0,{-3,4,-5,6})会返回-3,因此第一个节点4大于0,所以往左查找到-3,但是
=LOOKUP(0,{3,4,-5,6})会返回错误值,当查找到最左边的3任然找不到小于等于0的数字,会返回错误值,而不会再向右查找。
节点的位置的右边是否小于等于查找值的数值,决定了是否返回错误值,
例如
=LOOKUP(4,{9;4;1;6;5;4;2;3;1})会返回4,只要大于5的数字,均会返回1,但是小于4的数字,均会是错误值,因为第一次查找以5为节点,会在左边的9,4,1,6中找,第二次以4为节点,只剩下一个9,而小于4的数字,肯定都是小于9的,返回错误值
关于你的另外一个提问=LOOKUP(-2.5,{-1,-2,-3})为什么返回错误值,也是这个道理,-2.5<-2,向左查找,-1仍然大于-2.5,返回错误值,你把-1改成-10,就会返回-10了。
所以=LOOKUP(-2.5,{-1,-2,-3})这个公式,当中间为-2时,右边的-3,无论你填什么数字,对结果都没有影响,而左边的-1是否小于等于-2.5,决定了返回错误值,还是返回左边这个数
第一次答题答这么多字,好像。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式