用条件find最接近当前细胞的细胞

我有一排值 – 1,2,3,8,35,7,8,3,5,7,x

X是我想要的公式的地方

我想以某种方式得到最接近X的行的值(在这种情况下不是第4行,而是第7行)

如果我使用match("8",A:A,0)我得到它find的第一个匹配。

如何find与计算发生的单元格最接近的匹配?

您可以使用:

 {=MATCH(2,1/(A1:A10=8))} 

只要记住它是一个数组函数,所以必须使用CTRL + SHIFT + ENTER

答案是基于MATCH函数的技巧和行为。 我会允许自己复制ozgrid的解释:

这里的魔术实际上在MATCH函数中比在数组中更多。 这里使用了匹配函数的两个有趣的属性:

1)使用MATCH,如果没有find匹配,那么函数将返回数组中最后一个值的位置,所以如果你= MATCH(8,{1,2,3,4,5,6,7, 6,5,4,3,2,1}),你的结果= 13,因为没有8在数组中find

2)MATCH将返回最后一个值的位置,但不会返回一个错误(或一个空值)的位置,所以如果你有= MATCH(8,{1,2,3,4,#DIV / 0!,#DIV / 0 !, 7,6,5,4,3,#DIV / 0 !,#DIV / 0!}),结果是= 11,因为第11个位置的3是最后一个数组中的值

因此,daddylonglegs的公式在数组公式中检查每个单元格的目标值(A1:A13 = B1),为单元格匹配的位置给出一个TRUE(或1)的数组,并为FALSE(或0)rest。 除此之外的结果是1,无论数组为TRUE,还是#DIV / 0! 无论数组是否为假。 所以他的公式被评估为

= MATCH(2,{#DIV / 0!,1,#DIV / 0!,#DIV / 0!,#DIV / 0!,#DIV / 0!,1,#DIV / 0!,1,#DIV / 0!,#DIV / 0!,#DIV / 0!,#DIV / 0!})

由于在数组中找不到'2',并且在第9个位置find最后的值(1),所以MATCH返回9

如果你想要最后一场比赛,你可以在A11中使用这个公式

=MATCH(2,INDEX(1/(A1:A10=8),0))

[注意:如果数值是数字,那么8是好的 – 如果它们是文本格式的数字,那么你需要“8”]

….或者你有计算单元的任何一边的值(所以最近的可能是向上或向下)?