Excel VLOOKUP在数组中找不到值
我使用Excel VLOOKUP在数组中找不到值,excel,rounding,vlookup,ceil,Excel,Rounding,Vlookup,Ceil,我使用VLOOKUP函数在数组中查找一个值,但有些值给出了#N/a答案,尽管在数组中可用 为了对数字进行汇总,我使用了天花函数,但有趣的是在一些值中,它不起作用 我检查了值的类型是否为number 另外,我使用了ROUNDUP函数,但没有起作用 另外,我尝试了索引/匹配组合,但再次失败 在我在链接中给出的示例中,当我在15.00-15.20之间键入时,它会给出错误,但尝试其他值时,它会起作用 如何修复此问题?如果要找到与15.10的匹配项,您的天花板功能应该更精确 将其更改为天花(F4,0.0
VLOOKUP
函数在数组中查找一个值,但有些值给出了#N/a答案,尽管在数组中可用
为了对数字进行汇总,我使用了天花
函数,但有趣的是在一些值中,它不起作用
我检查了值的类型是否为number
另外,我使用了ROUNDUP
函数,但没有起作用
另外,我尝试了索引
/匹配
组合,但再次失败
在我在链接中给出的示例中,当我在15.00-15.20之间键入时,它会给出错误,但尝试其他值时,它会起作用
如何修复此问题?如果要找到与15.10的匹配项,您的
天花板
功能应该更精确
将其更改为
天花(F4,0.01)
,它将起作用:)这似乎是VLOOKUP
的一个错误,并且使用天花
的返回值进行匹配。如果您使用:
=VLOOKUP(圆形(天花板(F4,0.1),1),A:B,2,假)
然后它就如预期的那样工作了
如果我们用VBA来观察这一点,我们就会看到发生了什么。真正应该受到责备的应该是天花板
和综述
。见示例:
Sub testCeilingAndRoundup()
Dim v As Double, test As Boolean, diff As Double
v = [CEILING(15.1,0.1)] '15.1
test = (v = 15.1) 'FALSE
diff = 15.1 - v '-1.776...E-15
v = [ROUNDUP(15.25,1)] '15.3
test = (v = 15.3) 'FALSE
diff = 15.3 - v '1.776...E-15
End Sub
看起来您遇到了Excel错误
对数字15.1应用上限
应返回完全相同的结果(15.1),无论显著性是否为0.1、0.01、0.001等
事实上,根据Excel:当被问及它们是否相等时,答案总是TRUE
但是在查找表中查找这些数学上相等的数字会得到不同的结果
这一定是个bug
我建议您使用看起来没有bug的ROUNDUP(F4,1)
,而不是天花(F4,0.1)
。不,ROUNDUP
也有缺陷。建议将天花板
包装成一个圆形
,这样似乎可以解决问题。您还可以转换为字符串并返回到数字:
VALUE(TEXT(ROUNDUP(F4,1),"0.0"))
所以你应该
=VLOOKUP(VALUE(TEXT(ROUNDUP(F4,1),"0.0")),A:B,2,FALSE)
如果输入为例如15.09,则此操作失败。很明显,我们的目的是将其四舍五入到15.10并返回95,但您的公式给出了一个错误。此外,我不明白为什么天花(15.10,0.1)
和天花(15.10,0.01)
的行为会有所不同(尽管测试表明它们确实如此)。原则上,两者都应返回完全相同的数字,即15.1。所以我不明白你为什么提出这个答案<代码>天花板(15.10,0.1)
和天花板(15.10,0,01)
是相同的。没有区别。