vlookup是求小于等于某一值的情况,有没有函数可以求大于等于某一值的情况呢?谢谢亲,急用。

如题所述

首先你的查找列必须是按照升序排列的
那么你可以把这一列以及你要查找的值前面都加上负号,然后注意按照升序排列
再用vlookup,lookup,match等就可以了

当然也可以用VBA编个小程序

还有种方法,省去上面的加负号,但公式可能会写的长点
如果查找恰好能找到相等的,那大于等于也是它,否则就是它下面的那个
而VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])中
range_lookup为false时,若不能精确匹配则返回错误值
下面举个例子,比如查找100,再B1:B100中找,返回C1:C100中相应的位置(把C101空出来)
所以函数可以写成
if(iserror(vlookup(100,B1:C100,2,false)),lookup(100,B1:B100,C2:C101),vlookup(100,B1:C100,2,false))追问

求vba小程序。

追答

上面我写的函数一般不会有问题,但是如果值牵扯到B1或B100可能会有问题

追问

有点不是很懂。。。。我不要恰好等于的数值。我就是需要比额定值大的一组,和比他小的一组,然后利用差值法,求我想求的额定值对应的相应值。

 

我用excel查查你写的函数,大概是什么意思啊。希望大侠能够利用截图帮忙说明下。

 

我就是想求截图中  流量800时   å¯¹åº”的扬程。和扬程300时,对应的流量。

 

 

 

我现在的最大问题就是,如何找出比800大,且最接近800的数值。谢谢亲,很感谢您的分享。

追答

如果不需要相等的,那么就用下面的函数,假设你要查找的数在A1,查找的范围是B2:B20,返回的值是C2:C20
查找小于的值
if(iserror(match(A1,B2:B20,0)),lookup(A1,B2:B20,C2:C20),lookup(A1,B2:B20,C1:C19))
match那个函数是进行精确查找,找不到就返回错误值,而iserror就是判断是否为错误值
如果没有精确匹配,那么match返回错误值,iserror就返回TRUE,那么此时lookup查找到的就是小于的数,返回到C2:C20中对应位置的值。
若有精确匹配,那么match就不返回错误值,iserror就是false,那么我们要的就是lookup所找到的前一行,所以返回的列中用的是C1:C19而不是C2:C20

查找大于的值
lookup(A1,B2:B20,C3:C21)

追问

=VLOOKUP(A1,B2:B20,1) 这个就可以找到小于的值。

查找大于的值 lookup实现不了,lookup也是只能查出小于的值亲。
555555555555555

追答

举例1到100
我们要找大于50 的
那么用vlookup找到的就是小于等于50的,那么下一个51就是大于50的
因为这里列会错开,还是用lookup比较好
比如第一列是1到10,第二列是11到20
那么用lookup(5,a1:a10,b2:b11)找到的就是16(因为错开了一行,16所在行对应的是6)
而lookup(5,a1:a10,b1:b10)找到的是15

最后说一句我得下了,要有问题我明天早上在帮你解答

追问

嗯,找到了那个小的值,下一个值如何输出呢?

追答

找大的值就用lookup(5,a1:a10,b2:b11)
查找范围是A1:A10,返回B2:B11中的值,如果找到是A1:A10中的第k个,那么也返回B2:B11的第k个。因为这里返回值向下平移了一个单位,所以对应的是所找到的小于等于的下一个值,而这个值就是大于等于的那个

追问

那我如果想找出A1到A10中那个大的值呢?

追答

我上面说了,就用lookup函数就可以了,只不过要把返回值的位置向下移一个单位
举例子就是,假设找大于800的,用lookup找到的是小于等于的,假设是B8
那么B9就是大于800的,是我们要找的值,所以返回C9就可以了
用lookup写就是lookup(800,B1:B10,C2:C11)

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-08-13
是求和吗?如果是求和你可以用sumif函数!追问

不是求和,我一列数据是按升序排列,利用vlookup已经找到比额定值800小,而且最接近800的那个值是780多,现在我需要利用某个技巧,找到比800大的,且最接近800的那个数。

我的目的是实现,一输入800,然后比800大的,比800小的,且都是最接近800的数据可以自动输出。形成傻瓜模式。

追答

这个得需要编函数吧,我现在还不会,等高手回答吧!

追问

嗯,是得使用函数编译。
excel函数功能还是有所缺失,可能得像楼下哥们说的那样,得自己利用vba进行编程了。

相似回答