VLOOKUP未在数组中find值

我使用VLOOKUP函数来查找数组中的值,但是尽pipe数组中有可用值,但仍有一些值给出了N / A答案。

为了收集数字,我使用CEILING函数,但有趣的点在某些值,它没有工作。

我检查了值的types,如果它是数字或不。

另外,我使用ROUNDUPfunction,但没有工作。

另外,我试过INDEX / MATCH组合,再次没有工作。

在我在链接中给出的例子中,当我在15.00 – 15.20之间input时,它给出了错误,但尝试了其他值,它的工作原理。

我该如何解决?

这似乎是一个使用了CEILING的返回值的VLOOKUPMATCH的错误。 如果你使用:

=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 

看起来你已经遇到了一个Excel错误。

无论是否为CEILING ,对15.1应用CEILING都应返回完全相同的结果(15.1)。

事实上,根据Excel的说法,当被问及他们是否平等时,答案总是为TRUE

但是在查找表中查找这些math上相同的数字会得出不同的结果。

在这里输入图像说明

这必须是一个错误。

而不是CEILING(F4,0.1) ,我build议你使用看起来没有缺陷的ROUNDUP(F4,1) 不, ROUNDUP也是越野车。 Axel Richter的回答build议将CEILING包装在一个ROUND ,这似乎确实使问题消失了。 您也可以转换为string并返回到数字:

 VALUE(TEXT(ROUNDUP(F4,1),"0.0")) 

所以你会有

 =VLOOKUP(VALUE(TEXT(ROUNDUP(F4,1),"0.0")),A:B,2,FALSE) 

如果你想find15.10的匹配,你的CEILING函数应该更加精确

将其更改为CEILING(F4,0.01) ,它将起作用:)

Interesting Posts