열에서 다음으로 높은 값 찾기

열에서 다음으로 높은 값 찾기

A두 개의 열 이 있고 B. Column B에는 Column 에서 조회해야 하는 값이 있습니다 A. 그러나 정확한 해당 값을 찾을 필요는 없으며 다음으로 높은 값이 필요합니다.

예를 들어:

Column A    Column B   

   2           3
   4           4
   5           5
   7           6
   8           8
   9           9

5따라서 컬럼의 값에 대해 컬럼에서 B반환하고 싶습니다 .7A

아마도 어떤 형태의 조회/인덱스 일치 함수가 필요할 것 같지만 공식을 직접 작성할 수는 없었습니다.

답변1

정렬됨

A가장 간단한 공식은 열이 오름차순으로 정렬되는 경우입니다 .

워크시트 스크린샷

다음 수식을 입력하고 C1표의 나머지 열에 Ctrl-Enter/복사-붙여넣기/채우기/자동 채우기를 입력하세요.

=INDEX(A:A,1+MATCH(B1,A:A,1))

설명:

1세 번째 인수로 는 첫 MATCH()번째 인수보다 작거나 같은 가장 큰 값을 찾는 것을 의미합니다. 해당 색인에 추가하면 1다음으로 높은 숫자의 색인이 생성됩니다. 그런 다음 함수 INDEX()는 숫자를 추출합니다.

열 끝에 추가 값을 추가했습니다 A. 이는 다음으로 더 높은 값이 없는 특별한 경우를 위한 것입니다.


정렬되지 않음

열이 정렬되지 않은 경우 A(정렬된 경우에도 작동함) 수식은 좀 더 복잡합니다.

배열 에 다음 수식을 입력( Ctrl+ Shift+ ) 하고 테이블 열의 나머지 부분에 복사하여 붙여넣거나 채웁니다( 및 를 제거하는 것을 잊지 마세요 ).EnterC1{}

{=SMALL(IF($A$1:$A$6>B1,$A$1:$A$6),1)}

설명:

이 함수는 배열의 n번째로 작은 값을 반환합니다.SMALL(array,n)부울 값 무시. IF()함수 의 세 번째 인수에 대한 기본값은 이므로 FALSE열의 값보다 큰 값만 B검사하여 다음으로 높은 값이 됩니다.

열에 값보다 큰 값이 열에 없으면 오류가 발생하므로 열에 대한 특수 종료 값 A은 필요하지 않습니다 .#NUM!AB


마지막으로, aventurin이 지적했듯이 정렬에 관계없이 작동하는 유사한 대체 공식이 있습니다(그러나 중요한 주의 사항이 있음).

엑셀 2016+의 경우:

=MINIFS($A$1:$A$6,$A$1:$A$6,">"&B1)

이는 MINIFS()함수가 최소값을 추출하기 전에 기준과 일치하지 않는 값을 필터링하기 때문에 작동합니다.

이전 버전의 Excel:

{=MIN(IF($A$1:$A$6>B1,$A$1:$A$6))}

이는 함수와 같은 이유로 작동합니다 SMALL(). 즉, 함수에 의해 생성된 부울 값을 무시합니다 IF().

경고:

0이 다음으로 높은 값이 될 수 있는 경우 =MINIFS()및 수식은 모두 올바르게 작동하지 않습니다.{=MIN(IF())}~이다다음으로 높은 값은 없습니다. (이것은 첫 번째 수식의 열 끝에 추가 값을 추가하는 것과 같은 이유입니다 A. 더 높은 값이 없으면 해당 수식도 0을 반환합니다.)

답변2

예를 들어 배열 함수 {=MIN(IF(A1:A6 > B1; A1:A6))}또는 {=MIN(IF(A1:A6 > B1; A1:A6; 1000))}(대체 값으로 1000 사용)을 사용할 수 있습니다.

B1열 B(여기 ) 의 현재 셀 값보다 큰 열 A의 모든 값 중 최소값을 취합니다 . 따라서 두 열 중 어느 것도 정렬되어서는 안 됩니다.

Excel >= 2016을 사용하면 이 기능을 사용할 수도 있습니다 MINIFS.

배열 함수는 를 눌러 삽입해야 합니다 Ctrl+Shift+Enter.

관련 정보