
엑셀 INDEX/MATCH 심화: 2차원 조회·부분일치·다중조건·마지막값
엑셀 INDEX MATCH로 VLOOKUP/HLOOKUP의 한계를 넘으세요. 2차원(행·열) 조회, 부분일치·대소문자 구분, 다중 조건, 마지막 값까지 복붙 가능한 수식과 표로 정리했습니다. VLOOKUP 사용 중이라면 본문과 함께 VLOOKUP 오류 해결 가이드와 XLOOKUP 기초로 조회 안정화도 참고하세요.
Quick Fix
=INDEX(PriceList[Price], MATCH([@Item], PriceList[Item], 0))
=INDEX(MonthlySales, MATCH(B2, MonthlySales[Item], 0), MATCH(C2, MonthlySales[#Headers], 0))
=INDEX(Sales[Price], MATCH(1, (Sales[Item]=E2)*(Sales[Date]>=G2)*(Sales[Date]<=H2), 0))
=LOOKUP(2, 1/(Sales[Item]=E2), Sales[Price])
샘플 데이터
| Item | Name | Price | Tier |
|---|---|---|---|
| T001 | T-Shirt | 19000 | Basic |
| T002 | Polo | 25000 | Plus |
| B014 | Pants | 35000 | Basic |
| O010 | Jacket | 159000 | Pro |
| S201 | Shoes | 140000 | Pro |
2차원(행·열) 조회
=INDEX(MonthlySales,
MATCH(B2, MonthlySales[Item], 0),
MATCH(C2, MonthlySales[#Headers], 0))
부분일치/대소문자 구분
=INDEX(PriceList[Price], MATCH("*Shirt*", PriceList[Name], 0))
=INDEX(PriceList[Price], MATCH(TRUE, EXACT(PriceList[Item], E2), 0))
다중 조건(기간+상품)
다중 조건 합계/개수는 함수 조합이 더 편할 때가 있습니다. 이런 경우 SUMIF·COUNTIF로 조건 집계를 함께 사용하면 효율적입니다.
=INDEX(Sales[Price], MATCH(1, (Sales[Item]=E2)*(Sales[Date]>=G2)*(Sales[Date]<=H2), 0))
마지막 값(최근 항목)
=LOOKUP(2, 1/(Sales[Item]=E2), Sales[Price])
체크리스트 & Troubleshooting
- 테이블 사용, MATCH는 정확 일치(0), 범위 크기 동일
- 근사치는 정렬 필수, 마지막 값은 LOOKUP 패턴
| 증상 | 원인 | 해결 |
|---|---|---|
| #N/A | 공백/형식 | TRIM/CLEAN, 형식 통일 |
| 틀린 값 | 근사치 정렬 미준수 | 정렬 또는 정확 일치 |
| 첫 값만 나옴 | 괄호 누락 | 조건 곱을 괄호로 묶기 |
| 대소문자 필요 | 기본 비구분 | EXACT+MATCH(TRUE,…,0) |
| 최근 값 필요 | MATCH 첫 일치 | LOOKUP(2,1/(조건),범위) |
관련 글
맺음말
INDEX/MATCH로 2차원·부분일치·다중조건·마지막값까지 안정적으로 조회할 수 있습니다. 위의 관련 글로 이어서 학습하면 실무 흐름이 매끈해집니다.