Excel - 在同一列表中查找最接近的值

时间:2016-07-14 02:09:55

标签: excel excel-formula

我有一个道路上的东西列表,我正在寻找一个可以告诉我最近的一个的公式。考虑 -

Road  Location (m)   Nearest
0001  0080           0230
0001  0230           0356
0001  0356           0400
0001  0400           0356
0002  0010           0034
0002  0034           0010

最近的'是我想要达到的目标,即对于任何给定的东西,在同一条道路上最近的东西的位置值是什么。

我找到的索引/匹配很接近,但没有条件他们在同一条路上,并且它不排除当前行。 (Use of INDEX MATCH to find absolute closest value

我正在使用Excel 2010。

1 个答案:

答案 0 :(得分:0)

如果A1:C1是标题,那么在C2中:

=INDEX(B:B,MAX(IF(SMALL(IF($A$2:$A$100=A2,ABS($B$2:$B$100-B2)),2)=IF($A$2:$A$100=A2,ABS($B$2:$B$100-B2)),ROW($A$2:$A$100))))
  

这是一个数组公式,必须用 ctrl + shift + 输入确认。

如果" road"它也会在#NUM时出错。只有一个条目。在这种情况下,请将其包装在=IFERROR(...,"")中。远离这一点,它应该完全符合您的要求。

修改

忽略双打(所以永远不会有0),你可以用COUNTIFS这样做:

=INDEX(B:B,MAX(IF(SMALL(IF($A$2:$A$100=A2,ABS($B$2:$B$100-B2)),COUNTIFS($A$2:$A$100,A2,$B$2:$B$100,B2)+1)=IF($A$2:$A$100=A2,ABS($B$2:$B$100-B2)),ROW($A$2:$A$100))))
  

这是一个数组公式,必须用 ctrl + shift + 输入确认。

因此,我们只需将k的{​​{1}}从SMALL更改为2

如果您还有任何疑问,请询问;)