2016-07-14 3 views
0

도로를 따라 물건 목록을 가지고 있으며 가장 가까운 위치를 알려주는 공식을 찾고 있습니다. Consider-Excel - 같은 목록에서 가장 가까운 값 찾기

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

는 '가장 가까운'은 내가 주어진 일에 대한 즉, 달성하기 위해 노력하고 무엇을, 같은 도로에 가까운 일에 대한 위치 값 것입니다.

찾은 색인/일치 항목은 가까이에 있지만 동일한 길에 있다는 조건이 없으며 현재 행을 제외하지 않습니다. I 엑셀 2010을 사용하고 (Use of INDEX MATCH to find absolute closest value)

답변

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로 확인해야 + 시프트 + 을 입력하십시오.

"도로"에만 하나의 항목이있는 경우에도 #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 + 시프트 + 으로 확인하십시오.

그래서 우리는 단순히 COUNTIFS($A$2:$A$100,A2,$B$2:$B$100,B2)+12에서 SMALLk을 변경합니다.

질문이 있으시면

+0

감사합니다. (A2 = A3, ABS (MIN (B3-B2, B2-B1)), ABS (B2-B1)), IF (A2 = A3, ABS (B3-B2),))'그러나 내 순서대로 roadIDs에 의존합니다. –

+0

- 중복을 무시하도록하는 방법이 있습니까? 나는. 같은 위치에 두 가지가있는 경우, 같은 위치에있는 것을 무시하고 같은 위치가 아닌 가장 가까운 것에 위치를 반환합니다. 아마도 중첩 IFNULL? –

+0

@PeterTomlinson은 double을 완전히 무시하는 편집을 추가했습니다. –

관련 문제