找到条件最接近当前单元格的单元格

时间:2013-07-30 13:12:45

标签: excel cell

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

X是我希望公式

的地方

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

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

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

2 个答案:

答案 0 :(得分:4)

如果您想要最后匹配,可以在A11

中使用此公式

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

[注意:如果值是数字,那么8就可以 - 如果它们是文本格式的数字,那么你需要" 8"]

....或者您是否在计算单元的任一侧有值(因此最近可能是向上或向下)?

答案 1 :(得分:4)

您可以使用:

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

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

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

  

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

     

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

     

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) ) 对于其余的。除以1会导致1s数组为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个位置找到最后一个值(1),因此MATCH返回9