[259회 라이브 공지] 이번 주(3/14) 토요일 라이브는 휴강입니다. 즐거운 주말 연휴 보내세요! 오빠두엑셀 `2026 무료 챌린지` 오픈! 완주하고 수료증 받아가세요! 5년 연속 IT분야 베스트셀러! 「 진짜쓰는 실무엑셀 」로 2026년 공부 끝내기 엑셀이 막히셨나요? Q&A 게시판에서 바로 해결하세요.
메뉴

엑셀 INDEX MATCH 함수 고급 사용법 :: 엑셀 함수 공식

INDEX / MATCH 함수의 고급 응용 공식의 동작원리와 실전 예제를 알아봅니다.

작성자 :
오빠두엑셀
최종 수정일 : 2021. 11. 10. 21:52
URL 복사
메모 남기기 : (50)

INDEX MATCH 함수 고급 사용법:: 엑셀 함수 공식 

함수기본공식

1. 열 위치를 자동으로 반환하는 INDEX/MATCH 공식

= INDEX($참조범위, MATCH(검색값(세로), $찾을범위(세로), 0), MATCH(검색값(가로), $찾을범위(가로), 0)) 
'// 참조범위 : 행/열 번호를 기준으로 값을 검색할 전체 범위입니다. (VLOOKUP의 참조범위와 동일)
'// 검색값(세로) : 찾을범위(세로) 에서 찾을 값입니다. [주로 고유값 (제품명, 아이디 등..) ]

'// 찾을범위(세로) : 참조범위 중, 검색값(세로)를 찾을 고유값 범위입니다.
'// 검색값(가로) : 찾을범위(가로) 에서 찾을 값입니다. [주로 머릿글]
'// 찾을범위(가로) : 참조범위 중, 검색값(가로)를 찾을 머릿글 범위입니다.

2. 여러개의 조건을 비교하는 INDEX/MATCH 공식

= { INDEX(출력범위, MATCH(1,(조건1=조건범위1)*(조건2=조건범위2)*…), 0)) }
'// 출력범위 : 여러개의 조건을 만족할 시, 값을 출력할 범위입니다.
'// 조건1, 조건2... : 조건범위에서 비교할 조건입니다.
'// 조건범위1, 조건범위2, ... : 조건들을 비교할 조건범위입니다.

3. 이미지를 찾아서 출력하는 INDEX/MATCH 공식

= INDEX(사진범위, MATCH(찾을값, 참조범위, 0)) [사용자 지정범위 설정]
'// 사진범위 : 그림을 불러올 이미지가 들어있는 사용자 지정범위입니다.
'// 찾을값 : 참조범위에서 검색할 값입니다.
'// 참조범위 : 찾을값을 검색한 뒤, 동일한 행에 위치한 사진을 반환하기 위한 참조범위입니다.
'// 해당 공식을 또 다른 사용자지정범위로 설정 후, 연결된 이미지에 사용자지정범위를 입력합니다.

예제파일 다운로드

예제파일
INDEX/MATCH 함수는 알아두면 여러상황에서 다양하게 응용할 수 있는 다재다능한 공식입니다.

INDEX/MATCH 함수에 대한 기초설명이 필요하신 분은 관련포스트가 준비되어있으니 아래 링크를 참고하세요.

INDEX 함수MATCH 함수에 대한 기초함수설명이 필요하신분은 실전 예제와 함께 함수에 대한 자세한 설명이 준비되어 있습니다. 아래 링크를 참고하세요.

사용된 함수

본 포스트에서는 열 위치를 자동으로 반환하는 INDEX/MATCH 함수의 설명을 다룹니다.

=INDEX($B$7:$G$16,MATCH(B19,$B$7:$B$16,0),MATCH(C19,$B$7:$G$7,0))

함수의 동작 원리

1. 찾을범위(세로)에서 행번호를 반환합니다.

=INDEX($B$7:$G$16,MATCH(B19,$B$7:$B$16,0),MATCH(C19,$B$7:$G$7,0))

MATCH 함수를 사용합니다. B7:B16[제품명이 입력된 범위]에서 찾고자 하는 값인 '3종 케이스세트'가 위치한 순번을 반환합니다. 해당 값은 6번째 위치하므로 MATCH 함수는 6을 반환합니다.

세로로 찾는 범위에서 동일한 값이 2개 이상 있을 경우, INDEX/MATCH 함수는 옳지않은 결과를 반환합니다. 따라서 찾을범위(세로)는 반드시 '고유값'이 들어있는 범위로 지정해야합니다.

INDEX MATCH 함수 고급 세로범위
세로범위에서 '3종 케이스세트'의 순번인 6을 반환합니다.
2. 찾을범위(가로)에서 열번호를 반환합니다.

=INDEX($B$7:$G$16,MATCH(B19,$B$7:$B$16,0),MATCH(C19,$B$7:$G$7,0))

행번호를 찾을때와 동일합니다. 마찬가지로 가로로 지정된 범위에 동일한 값이 2개이상 있을경우, 옳지않은 결과를 반환하므로 주의합니다.

아래 예제에서는 가로범위 6번째에 위치한 '최소주문수량'을 선택하였으므로 MATCH함수는 6을 반환합니다.

INDEX MATCH 함수 고급 가로범위
가로범위에서 '최소주문수량'이 위치한 순번인 6을 반환합니다.
3. 참조범위에서 각 행/열 순번에 위치한 값을 반환합니다.

=INDEX($B$7:$G$16, MATCH(B19,$B$7:$B$16,0), MATCH(C19,$B$7:$G$7,0))
=INDEX($B$7:$G$16, 6, 6'// 각 MATCH 함수에서 행/열번호를 받아옵니다.
=1박스

각 MATCH 함수에서 참조범위의 행/열번호를 받아왔습니다. 아래 예제에서는 세로범위에서 '3종케이스세트' (6번째 위치), 가로범위에서 '최소주문수량'(6번째 위치)를 검색하였습니다.

따라서 참조범위에서 세로로 6번째, 가로로 6번째에 위치한 '1박스'를 결과값으로 출력합니다.

INDEX MATCH 함수 사용예제
참조범위에서 세로로 6번째, 가로로 6번째에 위치한 값인 '1박스'를 출력합니다.
4. 구간별로 알아보기

=INDEX($B$7:$G$16,MATCH(B19,$B$7:$B$16,0),MATCH(C19,$B$7:$G$7,0))

  • 참조범위 : $B$7:$G$16
    값을 참조할 전체 범위를 선택합니다. 자동채우기시 오류를 방지하기 위해 키보드 F4키를 눌러 절대참조 하는것에 주의합니다.
  • 행번호반환(세로) : MATCH(B19, $B$7:$B$16,0)
    참조범위에서 주로 고유값(주로 제품번호 또는 아이디 등)이 세로로 입력된 범위를 지정합니다. 해당 범위에 값을 검색한 뒤 세로로 몇번째에 위치하는지 행번호를 반환합니다. 범위의 경우 자동채우기 오류를 방지하기 위해 절대참조합니다.
  • 열번호반환(가로) : MATCH(C19, $B$7:$G$7, 0)
    참조범위에서 주로 머릿글이 입력된 범위를 지정합니다. 그 후 원하는 값을 검색한 뒤, 참조범위에서 해당값이 가로로 몇번째에 위치하는지 열번호를 반환합니다. 범위의 경우 자동채우기 오류를 방지하기 위해 절대참조하는 것에 주의합니다.
INDEX MATCH 함수 고급사용법 열 번호 자동 반환
MATCH 함수를 가로와 세로범위에 모두 적용합니다.
댓글 50
5 (33개 평가)
finepoint
finepoint 2019.09.11 16:16
안녕하세요. 평소에 친절하게 설명해주시는 엑셀강의 정말 잘 보고 있습니다. 덕분에 많은 도움을 받고 있습니다.
궁금한 점이 있어 댓글 남깁니다. 실무에서 index-match함수를 가끔 사용하는데 2가지 조건하에서는 잘 활용하는데 3가지 이상의 조건에서는 항상 에러가 나더라고요. 예를 들면 '연도별&월별&판매처'의 수량데이터를 불러온다던지 이런 경우에는 두 가지 조건(match(연도별&월별,~),match(판매처,~)으로 정리하곤 합니다. 해서, 3가지 이상의 다중조건의 경우 어떤 식으로 적용하는게 좋은지 궁금합니다.
오빠두엑셀
오빠두엑셀 2019.09.13 10:43
안녕하세요? 오빠두엑셀입니다.
MATCH 함수를 아래와 같이 사용해보세요.
MATCH(1,( --(조건범위=조건)*--(조건범위=조건)*...),0)
감사합니다!
박상준
박상준 2020.03.11 14:19
안돼요 ㅠㅠ 예제하나 올려주시면 안될까요?..
오빠두엑셀
오빠두엑셀 작성자 2020.03.12 17:30
안녕하세요~^^ 어떻게 안되시나요?
만약 #VALUE! 오류가 출력되신다면, 함수를 Ctrl + Shift + Enter로 배열수식으로 입력해보시겠어요?
감사합니다!
몽이아빠
몽이아빠 2020.07.11 22:08
이렇게 배열 적용시..행과 열의 배열위치는 정해져 있지 않는지요?
저도 2개 조건은 쉽게 되는데..2개 이상의 조건(특히 행열 조건을 같이 줘야 할때..잘안되서..
조건 앞에 --를 붙여 보라는 말씀 이신지?
오빠두엑셀
오빠두엑셀 작성자 2020.07.13 03:05
안녕하세요?^^ 2개 이상의 조건을 가로/세로로 모두 적용하고 싶으실 경우 아래 공식을 이용해보세요.
원리는 INDEX(범위,행번호,열번호) 에서 각 행번호와 열번호를 MATCH 함수로 입력하는 것입니다. 각 구간별로 나눠 공부하시면 쉽게 이해할 수 있으실 거에요.
INDEX(출력범위, MATCH(1,--(조건1=세로범위1)*(조건2=세로범위2)*…), 0), MATCH(1,--(조건1=가로범위1)*(조건2=가로범위2)*…), 0))
화이팅입니다!(ง •̀_•́)ง
하늬돌이
하늬돌이 2020.02.09 11:08
좋은 설명 감사해요.
초코
초코 2020.03.04 22:13
좋은정보 감사합니다
daniel_p
daniel_p 2020.03.22 21:06
많은 도움이 되었습니다... 감사합니다~
sun3148
sun3148 2020.03.25 10:32
제가 정말 원했던 기능에 대해서 설명을 너무 자세하고 쉽게 잘 해주셨네요. 빨리 적용해 봐야겠어요. ^^
쌍둥아빠
쌍둥아빠 2020.03.29 18:04
잘 보고 갑니다.
갓쩌리
갓쩌리 2020.04.03 14:24
이정도면 필터 기능이 없는 오피스2010에 적용할 만한 조합인것 같네요.
토토가
토토가 2020.04.04 17:15
배열함수 팁으로 여러조건이 가능하네요 감샤합니다~~
엑셀기초
엑셀기초 2020.04.15 21:30
좋은 설명 감사해요
zi****
zi**** 2020.06.05 15:48
좋은자료 감사드립니다.