VLOOKUP没有在数组中找到值

ren*_* ly 6 excel rounding vlookup ceil

我使用VLOOKUP函数在数组中找到一个值,但是尽管数组中有可用,但有些值给出了#N/A的答案.

为了对数字进行舍入,我使用了CEILING函数但有趣的一点是在某些值中,它没有用.

如果它是数字,我检查了值的类型.

此外,我使用ROUNDUP功能,但没有工作.

此外,我尝试INDEX/ MATCH组合,再次没有工作.

在我在链接中给出的示例中,当我在15.00 - 15.20之间键入时,它会出错但是尝试其他值,它会起作用.

我该如何解决?

Axe*_*ter 5

这似乎是一个错误VLOOKUPMATCH使用返回值CEILING.如果您使用:

=VLOOKUP(ROUND(CEILING(F4,0.1),1),A:B,2,FALSE)

然后它按预期工作.

如果我们用VBA来看这个,那么我们会看到会发生什么.责备应该是真的CEILINGROUNDUP.见例子:

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)


Jea*_*ett 5

看起来你遇到了一个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)