목록에서 조회 값보다 큰 첫 번째 값에 해당 변수를 조회합니다.

목록에서 조회 값보다 큰 첫 번째 값에 해당 변수를 조회합니다.

문제 설명과 예시는 이미지를 참조하세요.

내 조회 값/번호보다 큰 첫 번째 숫자에 해당하는 문자를 반환하고 싶습니다.

저는 index-match를 사용하여 이 문제를 해결하려고 노력했지만 조회 값과 비교되는 숫자가 정확히 일치하는 경우에만 작동하는 것 같습니다.

다음은 작동할 것이라고 생각했지만 작동하지 않는 공식입니다. =+INDEX(A3:F3,MATCH(A6,A2:F2,-1))

여기에 이미지 설명을 입력하세요

답변1

댓글에 제공한 링크에서 설명한 대로 MATCH(,,-1)데이터를 내림차순으로 정렬해야 합니다. 그렇지 않으면 반환되고 오류가 발생합니다.

문자 그대로 명시된 내용("내 조회 값/번호보다 큰 첫 번째 숫자")을 얻으려면 다음을 사용할 수 있습니다.

=INDEX(A3:F3,MATCH(A6,A2:F2,1)+1)

첫 번째 숫자가 동일한 일치 항목을 얻으려면또는조회 값보다 크면 다음을 사용할 수 있습니다.

=INDEX(A3:F3,IFERROR(MATCH(A6,A2:F2,0)-1,MATCH(A6,A2:F2,1))+1)

답변2

여기에서 할 수 있었던 일이 많이 있습니다. 좀 더 "벽에서 벗어나" 있지만 더 짧은 공식의 경우 다음을 사용할 수 있습니다.

=INDEX(FILTER(A2:F3,A2:F2>=A6),2,1)

FILTER()결과 배열(내부적으로 사용된 배열)의 첫 번째 열에 원하는 문자를 반환하도록 이러한 방식으로 설정됩니다. 따라서 INDEX()함수를 쉽게 채울 수 있도록 만드는 방법에 관계없이 원하는 문자가 "행 2, 열 1"이라는 것을 정확하게 알 수 있습니다 .

"보다 큼" 또는 "같거나 큼"은 의 조건에서 ">" 또는 ">="를 사용하여 훨씬 더 익숙한 방식으로 처리됩니다 FILTER().

FILTER()요청하지 않고 결과 배열을 정렬 하므로 조회 행이 정렬되지 않은(순서가 잘못된 경우) 경우를 해결합니다 . 따라서 조회 행의 조건에 관계없이 정답이 반환됩니다.

사용할 수 없는 경우 FILTER()다음을 배열로 사용하여 해당 값을 MATCH()찾고 공급할 수 있습니다 INDEX().

=MIN(IFERROR((A2:F2)/(A2:F2>=A6),MAX(A2:F2)))

거의 완전히 구식이며 사용할 IF(ISERROR(...수 없는 경우 대체할 수 있습니다 IFERROR(). 값은 ">=" 테스트에서 1 또는 0으로 나누어 조회 행의 값이 생성되거나 오류가 발생하지만 이러한 경우 MAX()조회 행에서 가장 높은 값을 채워서 오류가 발생하지 않습니다. 원하는 값을 찾는 데 방해가 됩니다. 상황에 따라 필요한 경우 결과에 "+1"을 추가하여 MAX()미만이 "자연" 항목을 초과하도록 할 수 있습니다.

물론 요즘에는 XLOOKUP()매우 훌륭하게 수행됩니다.

=XLOOKUP(A6,A2:F2,A3:F3,,1)

짧고, 간단하고, 명확합니다. 트릭이 필요하지 않습니다.

( F Bert기뻤습니다. 문제의 유일한 요소 집합과 관련되지 않은 답변이 필요한 사람을 조사하는 사람을 위해 게시했습니다.)

관련 정보