这似乎是一个错误VLOOKUP
并MATCH
使用返回值CEILING
.如果您使用:
=VLOOKUP(ROUND(CEILING(F4,0.1),1),A:B,2,FALSE)
然后它按预期工作.
如果我们用VBA来看这个,那么我们会看到会发生什么.责备应该是真的CEILING
和ROUNDUP
.见例子:
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
Run Code Online (Sandbox Code Playgroud)
看起来你遇到了一个Excel错误.
CEILING
无论重要性是0.1,0.01,0.001等,应用数字15.1都应返回完全相同的结果(15.1).
事实确实如此,据Excel称:当被问及是否相等时,答案总是如此TRUE
.
但在查找表中查找这些数学上相等的数字会得到不同的结果.
这必须是一个错误.
而不是不,CEILING(F4,0.1)
,我建议你使用ROUNDUP(F4,1)
似乎没有错误.ROUNDUP
也是马车.阿克塞尔里希特的回答表明,包装CEILING
在一个ROUND
和这个确实出现,使问题消失.您还可以转换为字符串并返回到数字:
VALUE(TEXT(ROUNDUP(F4,1),"0.0"))
Run Code Online (Sandbox Code Playgroud)
所以你有
=VLOOKUP(VALUE(TEXT(ROUNDUP(F4,1),"0.0")),A:B,2,FALSE)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
713 次 |
最近记录: |