오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

엑셀 조건을 만족하는 n번째 값 찾기 공식 :: 엑셀함수공식

조건을 만족하는 n번째 값을 찾아 출력범위에서 반환하는 공식의 사용법 및 동작원리를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2021. 09. 03. 11:02
URL 복사
메모 남기기 : (11)

엑셀 조건을 만족하는 n번째 값 찾기 공식

엑셀 중복값 포함 n 번째 값 찾기 목차 바로가기
함수 공식
{ =INDEX($출력범위,SMALL(IF($조건범위=조건,ROW($조건범위)-ROW(INDEX($조건범위,1,1))+1),n번째)) }

본 공식은 배열수식이므로 Microsoft 365 이전버전 사용자일 경우 Ctrl + Shift + Enter 로 입력합니다.

인수 설명
조건을 만족하는 n번째 값 인수
조건 만족하는 n번째 값 찾기 공식에 사용된 인수
인수 설명
$출력범위 n번째 값을 찾을 대상 범위입니다.
$조건범위 조건이 입력된 범위입니다.
조건 조건범위에서 찾을 조건입니다.
n번째 조건을 만족하는 n 번째 값을 출력범위에서 반환합니다.

예제파일 다운로드

오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.

  • [엑셀공식] 특정 조건 만족하는 n번째 값 찾기
    예제파일

호환성
운영체제 호환성
Windows 버전 모든 엑셀 버전에서 사용 가능합니다.
Mac 버전 모든 엑셀 버전에서 사용 가능합니다.
사용된 기초 함수

엑셀 조건 만족하는 n번째 값 찾기 공식 알아보기

공식 설명

조건범위에서 조건을 만족하는 값들 중에서 n 번째 값을 찾아 반환하는 공식입니다. 배열수식이므로 Microsoft 365 이전 버전 사용자일 경우 Ctrl + Shift + Enter키로 수식을 입력합니다.

만약 조건범위에 만족하는 조건이 없을경우, 본 공식은 #NUM! 오류를 반환합니다. 또한, 조건을 만족하는 값의 개수가 3개인데 n번째로 4를 입력할 경우 4번째 값은 공백이므로 해당 공식은 #NUM! 오류를 반환합니다.

1개의 조건이 아닌 여러개의 조건을 만족하는 경우의 n 번째 값을 찾으려면 아래 공식을 사용하세요.

=INDEX(출력범위,SMALL(IF((조건범위1=조건1)*(조건범위2=조건2)...,ROW(조건범위)-ROW(INDEX(조건범위,1,1))+1),N번째))
공식의 동작원리
  1. ROW(조건범위) 는 조건범위의 시작행~마지막행의 행 번호를 세로배열로 반환합니다.
    =ROW(A3:A8)
    ={3,4,5,6,7,8}
  2. ROW(INDEX(조건범위,1,1)) 는 조건범위의 시작셀 행 번호를 반환합니다.
    =ROW(INDEX(A3:A8,1,1))
    =3
  3. ROW(조건범위)-ROW(INDEX(조건범위,1,1))+1는 1부터 시작하는 순번을 조건범위의 행 개수만큼 배열로 반환합니다.
    =ROW(조건범위)-ROW(INDEX(조건범위,1,1))+1
    =ROW(A3:A8)-ROW(INDEX(A3:A8,1,1))+1
    ={3,4,5,6,7,8}-3+1
    ={1,2,3,4,5,6}
  4. IF(조건범위=조건,ROW(조건범위)-ROW(INDEX(조건범위,1,1))+1) 로 조건범위에서 조건을 만족할 경우 해당 순번만 배열로 반환합니다.
    =IF({"과일","채소","과일","과일","채소","과일"}="채소",ROW(조건범위)-ROW(INDEX(조건범위,1,1))+1)
    =IF({FALSE,TRUE,FALSE,FALSE,TRUE,FALSE},{1,2,3,4,5,6})
    ={0,2,0,0,5,0}
  5. SMALL(IF(조건범위=조건,ROW(조건범위)-ROW(INDEX(조건범위,1,1))+1),N번째)는 <span
    style="text-decoration: underline;">반환된 값 중 n번째로 작은값을 출력합니다.
    =SMALL({0,2,0,0,5,0},2)
    =5 '2번째로 작은값인 5를 반환합니다.
  6. INDEX 함수를 통해 출력범위에서 k 번째 위치한 값을 반환하며 공식이 마무리됩니다.
    =INDEX(출력범위,SMALL(IF(조건범위=조건,ROW(조건범위)-ROW(INDEX(조건범위,1,1))+1),N번째))
    =INDEX({"사과","배추","딸기","복숭아","오이","귤"},5)
    ="복숭아"
댓글 11
5 (7개 평가)
굴레악
굴레악 2020.07.14 12:07
드디어 올라왔네요.^^
괜찮아요많이놀랫죠
괜찮아요많이놀랫죠 2021.08.04 21:36
완전 일치 말고 특정 문자열이 포함된 n번째 행을 찾는 방법은 없을까요? if문 조건에서 와일드 카드는 안되니까.. 방법이 생각 안나네요
오빠두엑셀
오빠두엑셀 작성자 2021.08.05 00:38
안녕하세요.
IF 함수의 조건으로 특정문자 포함 공식(ISNUMBER/SEARCH) 을 적용해보세요. 공식은 아래 링크를 확인해보세요.
https://www.oppadu.com/if-%ED%95%A8%EC%88%98-%ED%8A%B9%EC%A0%95-%EB%AC%B8%EC%9E%90-%ED%8F%AC%ED%95%A8/
윤블
윤블 2021.09.29 22:53
안녕하세요!
SQL 사용한 data라서
출력 범위에
여러 조건 만족하는 값이 2개 이상인 것도 있고 1개만 있는 경우도 있는데
N번째 일치값 공식도 필요해서
조건 만족 값이 1개만 있는 경우에도 오류 없이 1번째 출력을 할수 있는 방법이 있을까요..?
오빠두엑셀
오빠두엑셀 작성자 2021.10.01 20:30
안녕하세요.
조건범위와 조건을 OR 함수로 작성해보시겠어요?^^
OR(조건범위1=조건1,조건범위2=조건2)
형태로 수정하시면 바로 해결될겁니다.
ksh0****
ksh0**** 2022.03.04 16:13
중복값 제외는 수식을 어찌쓰면 될까요.. ㅜㅜ
오빠두엑셀
오빠두엑셀 작성자 2022.03.09 22:18
https://www.oppadu.com/%ec%97%91%ec%85%80-%ec%a4%91%eb%b3%b5%ea%b0%92-%ec%a0%9c%ea%b1%b0-%ed%95%a8%ec%88%98-%ea%b3%b5%ec%8b%9d/
위 공식을 사용해보세요.
BlackH4G
BlackH4G 2023.01.26 21:49

=INDEX(출력범위,SMALL(IF((조건범위1=조건1)*(조건범위2=조건2)...,ROW(조건범위)-ROW(INDEX(조건범위,1,1))+1),N번째))

  • IF 조건범위1, 조건범위2일경우 ROW 조건범위를 조건범위1,2를 다 지정해야되나요? 아님 조건범위1만 지정해도되나요?
오빠두엑셀
오빠두엑셀 작성자 2023.01.29 17:04
안녕하세요.
조건범위1, 2 중 편한 범위를 넣어주면 됩니다.
단, 모든 조건 범위의 높이는 반드시 동일해야 합니다.
ㅋㅋ
ㅋㅋ 2023.02.02 12:50
데이터가 없으면 널값으로, 중복값중 가장 최근 날짜로 출력 할려면 어찌 해야아나요?
강민준🤗
강민준🤗 2024.08.11 19:59
좋은 강의 감사합니다🙇‍♂️