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

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

지원 버전 자세히 보기
엑셀 2013 이전엑셀 2016엑셀 2019엑셀 2021엑셀 2024M365웹 엑셀

두 개 이상의 조건을 모두 만족하는 n번째 값을 찾는 공식입니다.

엑셀 여러 조건을 만족하는 n번째 값 찾기 공식 예제 미리보기
예제 미리보기 크게 보기

인수 설명

01모든 버전 호환 배열수식

{=INDEX ( 출력범위, SMALL ( IF ( ( 조건범위1=조건1 ) * ( 조건범위2=조건2 ), ROW ( 조건범위1 ) - ROW ( INDEX ( 조건범위1, 1, 1 ) ) + 1 ), n번째 ) )}
인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
인수구분설명
출력범위필수조건을 모두 만족할 때 n번째 값을 반환할 범위입니다.
조건범위1필수첫 번째 조건을 검사할 범위입니다. 출력범위와 같은 크기여야 합니다.
조건1필수조건범위 1에서 찾을 조건입니다.
조건범위2필수두 번째 조건을 검사할 범위입니다. 다른 범위들과 같은 크기여야 합니다.
조건2필수조건범위 2에서 찾을 조건입니다.
n번째필수조건을 모두 만족하는 결과 중에서 반환할 순번입니다.
G5{=INDEX($C$2:$C$8,SMALL(IF(($A$2:$A$8=$G$2)*($B$2:$B$8=$G$3),ROW($A$2:$A$8)-ROW(INDEX($A$2:$A$8,1,1))+1),$G$4))}
A
B
C
D
E
F
G
H
1
분류
지역
품목
재고
검색 조건
입력값
2
과일
서울
사과
15
분류
채소
3
채소
서울
배추
22
지역
서울
4
과일
부산
딸기
18
순번
2
5
과일
서울
복숭아
12
결과
오이
6
채소
서울
오이
20
7
채소
부산
당근
14
8
채소
서울
양파
16
9
분류가 채소이고 지역이 서울인 품목은 배추, 오이, 양파 순서이므로 두 번째 결과인 G5 셀은 오이를 반환합니다. Excel 2019 이하에서는 Ctrl+Shift+Enter로 입력합니다.

022021 이후 버전 공식

=INDEX ( FILTER ( 출력범위, ( 조건범위1=조건1 ) * ( 조건범위2=조건2 ) ), n번째 )
인수 설명 자세히 보기
인수구분설명
출력범위필수조건을 모두 만족할 때 n번째 값을 반환할 범위입니다.
조건범위1필수첫 번째 조건을 검사할 범위입니다. 출력범위와 같은 크기여야 합니다.
조건1필수조건범위 1에서 찾을 조건입니다.
조건범위2필수두 번째 조건을 검사할 범위입니다. 다른 범위들과 같은 크기여야 합니다.
조건2필수조건범위 2에서 찾을 조건입니다.
n번째필수조건을 모두 만족하는 결과 중에서 반환할 순번입니다.
G5=INDEX(FILTER($C$2:$C$8,($A$2:$A$8=$G$2)*($B$2:$B$8=$G$3)),$G$4)
A
B
C
D
E
F
G
H
1
분류
지역
품목
재고
검색 조건
입력값
2
과일
서울
사과
15
분류
채소
3
채소
서울
배추
22
지역
서울
4
과일
부산
딸기
18
순번
2
5
과일
서울
복숭아
12
결과
오이
6
채소
서울
오이
20
7
채소
부산
당근
14
8
채소
서울
양파
16
9
FILTER 함수가 분류와 지역을 모두 만족하는 배추, 오이, 양파를 남기고 INDEX 함수가 두 번째 값인 오이를 G5 셀에 반환합니다.
이 공식이 사용하는 함수

동작 원리

01모든 버전 호환 배열수식

두 조건의 일치 여부를 곱해 공통 행을 남기고, SMALL 함수와 INDEX 함수가 n번째 행의 값을 반환합니다.

모든 버전 호환 배열수식의 예제 시트에서 G5 셀이 오이를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.

1

두 조건을 동시에 비교합니다

분류가 채소인 행과 지역이 서울인 행을 각각 비교한 뒤 두 결과를 곱합니다. 두 조건을 모두 만족하는 2번째, 5번째, 7번째 행만 1로 남습니다.

=( A2:A8=G2 ) * ( B2:B8=G3 )
= {0;1;0;0;1;0;1} 두 조건을 모두 만족하는 행만 1입니다.
2

IF 함수가 일치한 행의 순번을 남깁니다

ROW 함수가 만든 1부터 7까지의 순번에서 두 조건을 만족하는 행만 남깁니다. 조건을 만족하지 않는 행의 결과는 0이 아니라 FALSE입니다.

=IF ( ( A2:A8=G2 ) * ( B2:B8=G3 ), ROW ( A2:A8 ) - ROW ( INDEX ( A2:A8, 1, 1 ) ) + 1 )
= {FALSE;2;FALSE;FALSE;5;FALSE;7} 일치한 행의 상대 순번은 2, 5, 7입니다.
3

SMALL 함수가 n번째 순번을 찾습니다

SMALL 함수는 FALSE를 제외한 순번 2, 5, 7에서 G4 셀에 입력된 두 번째 순번인 5를 반환합니다.

=SMALL ( IF ( ( A2:A8=G2 ) * ( B2:B8=G3 ), ROW ( A2:A8 ) - ROW ( INDEX ( A2:A8, 1, 1 ) ) + 1 ), G4 )
= 5 두 번째로 작은 유효 순번입니다.
4

INDEX 함수가 해당 품목을 반환합니다

INDEX 함수는 C2:C8의 다섯 번째 값인 오이를 결과값으로 반환합니다.

=INDEX ( C2:C8, SMALL ( IF ( ( A2:A8=G2 ) * ( B2:B8=G3 ), ROW ( A2:A8 ) - ROW ( INDEX ( A2:A8, 1, 1 ) ) + 1 ), G4 ) )
= "오이" C2:C8의 다섯 번째 값입니다.

022021 이후 버전 공식

FILTER 함수는 여러 조건을 모두 만족하는 값만 추리고 INDEX 함수는 그중 n번째 값을 반환합니다.

2021 이후 버전 공식의 예제 시트에서 G5 셀이 오이를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.

1

두 조건을 동시에 비교합니다

분류가 채소인 행과 지역이 서울인 행을 각각 비교한 뒤 두 결과를 곱합니다. 두 조건을 모두 만족하는 2번째, 5번째, 7번째 행만 1로 남습니다.

=( A2:A8=G2 ) * ( B2:B8=G3 )
= {0;1;0;0;1;0;1} 두 조건을 모두 만족하는 행만 1입니다.
2

FILTER 함수가 일치하는 품목을 추립니다

FILTER 함수는 조건 배열이 1인 행의 품목만 원래 순서대로 반환합니다.

=FILTER ( C2:C8, ( A2:A8=G2 ) * ( B2:B8=G3 ) )
= {"배추";"오이";"양파"} 두 조건을 모두 만족하는 품목입니다.
3

INDEX 함수가 n번째 품목을 반환합니다

INDEX 함수는 FILTER 함수가 반환한 세 품목에서 G4 셀에 입력된 두 번째 값인 오이를 반환합니다.

=INDEX ( FILTER ( C2:C8, ( A2:A8=G2 ) * ( B2:B8=G3 ) ), G4 )
= "오이" 필터된 목록의 두 번째 값입니다.

댓글 11

댓글 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
좋은 강의 감사합니다🙇‍♂️
스크랩 완료