Excel里面用到的vlookup函数,在VB里面有没有可代替的函数?

时间:2023-01-03 11:20:04
如题:Excel里面用到的vlookup函数,在VB里面有没有可代替的函数?哪位大哥遇到过,请指点一下小妹.谢谢!

11 个解决方案

#1


VB中使用很简单的代码就可以实现EXCEL中VLOOKUP函数的功能了。

#2


当然没有了。如果把数据放到数据库,到是可以用sql语句解决。建议将要查询的数据放到数组中。
楼主还在被那些Excel表折磨?!同情!

#3


是呀
这样看来我要重新写一个可以代替VLOOKUP的函数了?是吧?

#4


如果写函数的话,也不是很难,关键是VLLOKUP中的第四个参数(也就是逻辑值---数值的精确值),在VB函数中,不知道该怎样写,请大侠指教,多谢!

#5


数据就是放到数据库中了,那请问VBToy大侠:怎样用sql语句解决?我现在也是单独写个类似的函数,函数中也是又SQL语句(但在之前要对其中的某个字段做一下判断),可就是不知道在excel中的VLLOKUP函数中的第四个参数(也就是逻辑值---数值的精确值),在VB函数中该怎样写,还请指点小妹一下..

#6


字段A  字段B  字段C
2        A     D
5        G     B
8        X     Y
比如上面的的一个表,对应于vlookup(5,array,2),即在表中查找第一列中值为5的行的第二个字段的值,用SQL相当于 "select 字段C from 表名  where 字段A=5"。也可以将数据定义成二维数组,再在数组中逐行搜索。

#7


我也是那样写的呀,但问题是如果你那个表是:
字段A  字段B  字段C
2.5522       A     D
5.6633        G     B
8.8823        X     Y
我要取A为5.66334455的值,肯定会提示找不到该值的错误,但如果在EXCEL中用VLOOKUP函数就能找到,原因是VLOOKUP函数的第四个参数"range_lookup"是个逻辑值,它可以返回精确匹配值或近似匹配值,也就是VLOOKUP函数可以在数据库表中找到和5.6633相近的值,你可以在EXCEL帮助中看看详细说明.如果想到解决办法,还请不吝赐教.多谢!!

#8


有没有取一个数的精确匹配值或近似匹配值的函数或方法?忘不吝赐教!

#9


在你的函数中也用round函数将对比的数据精确到小数点后相同的位数就可以对比了。具体精确到小数点后几位,就要看情况了。

#10


关键是精确到小数点后几位是不定的,加入像上面表中字段A是5.1,而我现在的值有可能是5.12、5.123、5.1234、5.12345,但要是在EXCEL中用VLOOKUP函数就能直接找到字段A是5.1的值,因为它现在把这些值都取近似5.1了。不知道我说明白没有?还请继续关注.......

#11


搜索与查找值(如5.1)差值最小的值,应该可以解决了吧?

#1


VB中使用很简单的代码就可以实现EXCEL中VLOOKUP函数的功能了。

#2


当然没有了。如果把数据放到数据库,到是可以用sql语句解决。建议将要查询的数据放到数组中。
楼主还在被那些Excel表折磨?!同情!

#3


是呀
这样看来我要重新写一个可以代替VLOOKUP的函数了?是吧?

#4


如果写函数的话,也不是很难,关键是VLLOKUP中的第四个参数(也就是逻辑值---数值的精确值),在VB函数中,不知道该怎样写,请大侠指教,多谢!

#5


数据就是放到数据库中了,那请问VBToy大侠:怎样用sql语句解决?我现在也是单独写个类似的函数,函数中也是又SQL语句(但在之前要对其中的某个字段做一下判断),可就是不知道在excel中的VLLOKUP函数中的第四个参数(也就是逻辑值---数值的精确值),在VB函数中该怎样写,还请指点小妹一下..

#6


字段A  字段B  字段C
2        A     D
5        G     B
8        X     Y
比如上面的的一个表,对应于vlookup(5,array,2),即在表中查找第一列中值为5的行的第二个字段的值,用SQL相当于 "select 字段C from 表名  where 字段A=5"。也可以将数据定义成二维数组,再在数组中逐行搜索。

#7


我也是那样写的呀,但问题是如果你那个表是:
字段A  字段B  字段C
2.5522       A     D
5.6633        G     B
8.8823        X     Y
我要取A为5.66334455的值,肯定会提示找不到该值的错误,但如果在EXCEL中用VLOOKUP函数就能找到,原因是VLOOKUP函数的第四个参数"range_lookup"是个逻辑值,它可以返回精确匹配值或近似匹配值,也就是VLOOKUP函数可以在数据库表中找到和5.6633相近的值,你可以在EXCEL帮助中看看详细说明.如果想到解决办法,还请不吝赐教.多谢!!

#8


有没有取一个数的精确匹配值或近似匹配值的函数或方法?忘不吝赐教!

#9


在你的函数中也用round函数将对比的数据精确到小数点后相同的位数就可以对比了。具体精确到小数点后几位,就要看情况了。

#10


关键是精确到小数点后几位是不定的,加入像上面表中字段A是5.1,而我现在的值有可能是5.12、5.123、5.1234、5.12345,但要是在EXCEL中用VLOOKUP函数就能直接找到字段A是5.1的值,因为它现在把这些值都取近似5.1了。不知道我说明白没有?还请继续关注.......

#11


搜索与查找值(如5.1)差值最小的值,应该可以解决了吧?