공부 합시다!/일 잘하는 비결, 엑셀로 능률 높이기
엑셀_심화 함수 배우기 – INDEX + MATCH 조합 완전정복
라리홈
2025. 5. 6. 13:17
728x90
반응형
INDEX 함수는 지정한 범위에서 특정 행과 열에 위치한 값을 반환하고,
MATCH 함수는 특정 값이 해당 범위 내 몇 번째에 위치해 있는지를 반환합니다.
이 두 함수를 조합하면,
기준 열이 왼쪽에 있어야 한다는 제한이 있는 VLOOKUP보다
훨씬 유연하고 강력하게 데이터 조회가 가능합니다.
VLOOKUP도 맣이 사용되지만,
INDEX + MATCH 조합을 익히고 나면 훨씬 더 많이 활용하게 될 것입니다.
| INDEX + MATCH 기본 구조
=INDEX(데이터범위, MATCH(기준값, 기준범위, 0))
- MATCH(기준값, 기준범위, 0) → 기준값이 기준범위에서 몇 번째인지 반환
- INDEX → 그 위치에 있는 값을 가져옴
예를 들어:
A | B | C | |
1 | 사번 | 이름 | 부서 |
2 | 1001 | 김철수 | 인사팀 |
3 | 1002 | 이지은 | 마케팅팀 |
4 | 1003 | 박지민 | 총무팀 |
=INDEX(C2:C5, MATCH("이지은", B2:B5, 0))
→ A열에서 "이지은"이 몇 번째인지 찾고,
→ 그 위치의 C열 값인 부서 정보를 가져옴 : "마케팅팀"
| 예제 1: VLOOKUP과 동일한 기본 조회
A열 (사번) | B열 (이름) |
1001 | 김철수 |
1002 | 이지은 |
1003 | 박지민 |
사번이 1002일 때 이름을 찾고 싶다면:
=INDEX(B2:B4, MATCH(1002, A2:A4, 0))
→ 결과: 이지은
VLOOKUP(1002, A2:B4, 2, FALSE)와 동일한 기능이지만,
A열이 아니더라도 기준 열이 오른쪽에 있어도 적용 가능합니다.
| 예제 2: 왼쪽 열에 있는 값을 조회 (VLOOKUP은 불가)
A열 (이름) | B열 (사번) |
김철수 | 1001 |
이지은 | 1002 |
박지민 | 1003 |
사번 1002에 해당하는 이름을 찾고 싶을 때
VLOOKUP은 기준 열이 항상 왼쪽이어야 하므로 불가능하지만,
=INDEX(A2:A4, MATCH(1002, B2:B4, 0))
→ 결과: 이지은
기준 열이 오른쪽이어도 조회가 가능하다는 것이 가장 큰 장점입니다.
| 예제 3: 행 + 열 번호를 모두 MATCH로 구하는 2차원 조회
A | B | C | |
1 | 국어 | 수학 | 영어 |
2 | 김철수 | 90 | 85 |
3 | 이지은 | 95 | 88 |
4 | 박지민 | 92 | 89 |
이지은의 수학 점수를 구하려면:
=INDEX(B2:C4, MATCH("이지은", A2:A4, 0), MATCH("수학", B1:C1, 0))
→ 결과: 95
- 행 위치: A2:A4에서 "이지은"은 2번째
- 열 위치: B1:C1에서 "수학"은 1번째
- → INDEX(B2:C4, 2, 1)
| 예제 4: 유동적인 범위에 대응 (MATCH로 열 위치 자동 지정)
A | B | C | |
1 | 사번 | 이름 | 부서 |
2 | 1001 | 김철수 | 인사팀 |
3 | 1002 | 이지은 | 마케팅팀 |
‘부서’라는 항목이 오른쪽으로 이동하더라도 자동으로 대응하려면:
=INDEX(A2:C3, MATCH(1002, A2:A3, 0), MATCH("부서", A1:C1, 0))
→ 결과: 마케팅팀
열 번호를 MATCH 함수로 자동 탐색하기 때문에
데이터 구조가 변경되어도 수식 유지가 가능합니다.
| 예제 5: INDEX + MATCH + IFERROR 조합
찾는 값이 없을 경우 오류가 발생할 수 있으므로 다음처럼 처리:
=IFERROR(INDEX(B2:B4, MATCH("홍길동", A2:A4, 0)), "찾을 수 없음")
→ 결과: 찾을 수 없음 (홍길동이 없으면 오류 방지)
| INDEX + MATCH vs VLOOKUP 차이 정리
비교 | 항목INDEX + MATCH | VLOOKUP |
방향 제한 | 없음 (왼쪽/오른쪽 모두 가능) | 왼쪽 열 기준만 가능 |
속도 | 빠름 (특히 대용량에서 우수) | 상대적으로 느림 |
유지보수성 | 높음 (열 번호를 MATCH로 동적 지정 가능) | 열 번호가 고정되어 유지 어려움 |
오류 발생 시 대처 | IFERROR 조합으로 유연하게 가능 | IFERROR 조합 필요 |
| 실무 활용 예시
- 고객명으로 연락처, 주소 등 다양한 정보 조회
- 특정 부서명에 해당하는 부서코드 자동 불러오기
- 매출 데이터에서 특정 월, 특정 지역의 값 추출
- 동적 보고서 구성 시 필수 함수
- VLOOKUP으로 해결 안 되는 ‘왼쪽 열 조회’ 해결
728x90