find最接近的价值,而不会超过

我发现了类似的问题,但它们至less与我的问题略有不同,并且无法成功调整它们,所以下面是我的工作表的简化版本:

ABCDE 1 4 4 17 2 6 10 3 2 12 4 7 19 5 4 23 

A列充满整数1-X。 列B是列A的出现次数,而C是左侧和上面的值的总和。 D是1和C5之间的随机值。 到现在为止还挺好。 问题出在E1。 我希望它给出的值是最接近D的C值的左边,而没有超过。

例如:D出现了17的值。不超过17的最接近的值是12(C3)。 因此,E等于3.我将如何去实现这一目标? 我可以用=INDEX(A$1:A$5,MATCH(MIN(ABS(F1-C$1:C$5)),ABS(F1-C$1:C$5),0))得到最接近的值,到4,而不是3.我怎样才能得到最接近的小值? 我猜我必须用SMALL来代替ABS,但是我不知道该怎么做。

您可以使用LOOKUP的“vectorforms”(请参阅LOOKUP函数的帮助)。 如果您在C1:C5查找D1 ,则会得到您想要的匹配(最大值小于或等于D1 ),然后您可以将返回向量定义为A1:A5 ,以便从那里获取相应的值

=LOOKUP(D1,C$1:C$5,A$1:A$5)

注意:D1值<4时会出错,因为在这种情况下,没有“没有超过”的值。

对于这个工作C1:C5必须按升序sorting,但在这种情况下总是这样

编辑:我相信这回答你的问题,如上所述,但如果你正在寻找第17次发生,为了那么结果不应该是4? 如果是这样的话,我认为你仍然可以使用LOOKUP但C列必须设置不同

在E1中: =if(C1<=D$1,A1,"")并填充。

在F1: =max(E1:E5) 。 这是你想要的结果。