Excel 匹配小于或等于

Excel 匹配小于或等于

我正在尝试结合 Index & Match,根据数字是否小于或等于同一行上 A 列中的值来提取 B 列中的值。例如,如果我给出公式,0那么我希望它返回0.7515.25应该返回0.80,等等。

我目前想出的公式有点类似,但并不正确。如果我输入,0我会得到#N/A;如果我输入15.25,我会得到,0.75这是不正确的。

=INDEX(B1:B11,MATCH(A13,A1:A11))

示例图表

答案1

第一个问题来自于,MATCH如果语句未找到该值,它将返回“#N/A”。因此,语句INDEX不知道如何处理此问题,因此您必须处理这种情况。语句IF应该可以很好地处理这种情况。

=IF(A1>A13,0,匹配(A13,A1:A11))

对于上面的例子,如果一个值小于数组的第一个数字,它将返回 0。接下来,您必须将其插入到语句中INDEX

接下来,您必须处理向上舍入而不是向下舍入的事实。这也可以通过 and 语句轻松实现。您可以简单地将 A 列中的数字与目标单元格进行比较,看看它们是否相同,如果不相同,则将行数增加 1。您只需要在语句的帮助下将语句嵌套在一起IF即可。 IFINDEX

=如果(INDEX(A1:A11,如果(A1>A13,0,MATCH(A13,A1:A11)))=A13,如果(A1>A13,0,MATCH(A13,A1:A11)),如果(A1>A13,0,MATCH(A13,A1:A11))+1)

因此这基本上会使它现在向上舍入而不是向下舍入。

最后一步是让您获得第二列的值,而不是第一列的值。您的语句是正确的INDEX,我们只需将它们放在一起即可。

= INDEX(B1:B11,如果(INDEX(A1:A11,如果(A1>A13,0,MATCH(A13,A1:A11)))=A13,如果(A1>A13,0,MATCH(A13,A1:A11)),如果(A1>A13,0,MATCH(A13,A1:A11))+1) )

这正好给出了您在问题中想要的结果。抱歉公式太长了,但您想要的或多或少复杂一些。

相关内容