엑셀 컴활 함수

🔍 XLOOKUP 없는 엑셀에서 INDEX+MATCH로 완벽 대체하기 2025년 실무 활용법

mine25 2025. 6. 15. 08:40

혹시 XLOOKUP 함수를 사용하려는데 #NAME? 오류가 나서 당황하신 적 있으신가요? XLOOKUP은 Excel 2016이나 Excel 2019에서는 사용할 수 없고, Microsoft 365나 Excel 2021 이상에서만 지원돼요. 하지만 걱정하지 마세요.

 

INDEX+MATCH 함수 조합으로 XLOOKUP과 똑같은 기능을 완벽하게 구현할 수 있답니다! 이 글에서 실무에서 바로 써먹을 수 있는 핵심 노하우를 알려드릴게요.

 

📌 핵심 포인트: INDEX+MATCH 조합은 모든 엑셀 버전에서 사용 가능하며, XLOOKUP보다 더 유연한 활용이 가능해요!

 

🎯 INDEX+MATCH 함수 기본 개념

INDEX와 MATCH 함수를 조합하면 양방향 검색이 가능해서 VLOOKUP의 한계(가장 왼쪽 열만 검색)도 극복할 수 있어요. XLOOKUP처럼 왼쪽으로도, 오른쪽으로도 자유자재로 데이터를 찾을 수 있답니다.

📚 INDEX 함수 구문

=INDEX(배열, 행_번호, [열_번호])

인수 설명:

  • 배열: 값을 찾을 데이터 범위
  • 행_번호: 반환할 값이 있는 행 위치
  • 열_번호: 반환할 값이 있는 열 위치 (선택사항)

🔍 MATCH 함수 구문

=MATCH(찾을_값, 검색_배열, [일치_유형])

인수 설명:

  • 찾을_값: 검색하려는 값
  • 검색_배열: 검색할 범위
  • 일치_유형: 0(정확히 일치), 1(작거나 같은 값), -1(크거나 같은 값)

💡 INDEX+MATCH 조합 구문

=INDEX(반환_범위, MATCH(찾을_값, 검색_범위, 0))

📝 NOTE: 일치_유형을 0으로 설정해야 정확한 값을 찾을 수 있어요. 생략하면 근사치 매칭이 되어 원하지 않는 결과가 나올 수 있습니다.

 

📊 실무 활용 예제 몇가지

실제 업무에서 자주 사용하는 상황들로 예제를 준비했어요. 아래 데이터를 활용해서 차근차근 따라해보세요!

📋 예제 데이터 (CSV 형식)

직원코드,직원명,부서,직급,급여,입사일,근무지역,연락처
E001,김민수,영업팀,대리,3500000,2020-03-15,서울,010-1234-5678
E002,이영희,마케팅팀,과장,4200000,2018-07-22,부산,010-2345-6789
E003,박철수,개발팀,차장,5100000,2016-01-10,대구,010-3456-7890
E004,정수진,인사팀,사원,2800000,2022-05-08,서울,010-4567-8901
E005,최민호,영업팀,부장,5800000,2015-11-30,광주,010-5678-9012
E006,한지원,개발팀,대리,3700000,2019-09-14,서울,010-6789-0123
E007,송유진,마케팅팀,사원,2900000,2021-12-03,인천,010-7890-1234
E008,윤성호,개발팀,과장,4500000,2017-04-18,대전,010-8901-2345
E009,임소영,인사팀,대리,3300000,2020-08-25,서울,010-9012-3456
E010,강동욱,영업팀,차장,4800000,2016-06-12,부산,010-0123-4567
E011,오미래,마케팅팀,부장,5500000,2014-02-28,서울,010-1111-2222
E012,신태윤,개발팀,사원,3100000,2023-01-16,대구,010-2222-3333

 

🔥 예제 1: 직원코드로 급여 찾기 (기본 검색)

문제: E005 직원의 급여를 알아보고 싶어요.

=INDEX(E2:E13, MATCH("E005", A2:A13, 0))

예제1: 엑셀 INDEX+MATCH 함수로 기본 검색

결과: 5800000

설명: MATCH 함수가 A열에서 "E005"를 찾아서 그 위치(검색범위 5번째)에 해당하는 E열(급여)의 값을 반환해요. XLOOKUP처럼 간단하죠?

예제1: 엑셀 MATCH 함수가 찾은값 상대위치 반환

 

🎯 예제 2: 부서와 직급이 모두 일치하는 직원 찾기

문제: 개발팀의 차장급 직원 이름을 찾고 싶어요.

=INDEX(B2:B13, MATCH(1, (C2:C13="개발팀")*(D2:D13="차장"), 0))

배열 수식 입력법: Ctrl + Shift + Enter를 함께 눌러주세요!

예제2: 엑셀 INDEX+MATCH 함수 복수 조건 결과 찾기

결과: 박철수

설명: INDEX+MATCH 함수 조합에 사용한 방법과 XLOOKUP 함수에 적용한 복수 조건 검색방법을 서로 바꾸어 적용해도 둘다 가능해요. XLOOKUP 함수는 INDEX+MATCH 를 함수로 만든것 같아요.

  • (C2:C13="개발팀")은 TRUE/FALSE 배열을 만들어요 {0;0;1;0;0;1;0;1;0;0;0;1}
  • (D2:D13="차장")도 TRUE/FALSE 배열을 만들어요 {0;0;1;0;0;0;0;0;0;1;0;0}
  • 두 조건을 *로 곱하면 둘 다 TRUE일 때만 1이 되고
  • MATCH로 1을 찾아서 해당 위치의 직원명을 반환해요

INDEX+MATCH 함수식은 참인 논리조건의 곱은 1이 됨을 활용한 방법이고, XMATCH 함수식에서는 검색값1과 검색값2를 &연산자로 연결해 새로운 텍스트를 만들어 비교해요. 두 방법 모두 이해해 두시면 실무에 유용하게 사용될 수 있어요.

 

📝 NOTE: 이런 복합 조건 검색은 VLOOKUP 이나 HLOOKUP 보다 XLOOKUP 이나 INDEX+MATCH가 더 강력해요!

 

💼 예제 3: 양방향 검색 (왼쪽 열 검색)

문제: 급여가 4200000인 직원의 부서를 찾고 싶어요. (VLOOKUP으로는 검색범위의 왼쪽열 반환 불가능!)

=INDEX(C2:C13, MATCH(4200000, E2:E13, 0))

예제3: 엑셀 VLOOKUP 함수가 못하는 왼쪽 열 검색 INDEX+MATCH

결과: 마케팅팀

 

XLOOKUP 대체 완성! 이처럼 INDEX+MATCH는 어떤 방향으로든 검색이 가능해서 XLOOKUP의 모든 기능을 대체할 수 있어요.

 

🔄 예제 4: 이제 수평 방향 검색 (INDEX+MATCH 조합)

실무에서 자주 사용하는 월별 실적 데이터로 예제를 만들어볼게요!

📋 수평 데이터 예제 (CSV 형식)

구분,1월,2월,3월,4월,5월,6월,7월,8월,9월,10월,11월,12월
매출액,15000000,18000000,16500000,19200000,21000000,23500000,25000000,22800000,20500000,24000000,26500000,28000000
방문객수,1200,1450,1320,1580,1720,1890,2100,1950,1680,1920,2150,2280
전환율,12.5,12.4,12.5,12.2,12.2,12.4,11.9,11.7,12.2,12.5,12.3,12.3
광고비,2500000,2800000,2600000,3000000,3200000,3500000,3800000,3400000,3100000,3600000,3900000,4200000

 

🎯 수평 검색 예제: 특정 월의 매출액 찾기

문제: 7월 매출액을 알고 싶어요!

일반적인 INDEX+MATCH (수직 검색)과 다른 점:

  • 행과 열의 범위선택 방향이 바뀌어요
  • 검색 방향도 가로(수평)가 되어요
=INDEX(B2:M2, MATCH("7월", B1:M1, 0))

예제4-1: 엑셀 INDEX+MATCH 함수로 수평 검색하기

결과: 25000000

설명:

  • B1:M1: 월별 헤더에서 "7월"을 찾아요 (수평 검색)
  • B2:M2: 매출액 행에서 해당 위치의 값을 반환해요
  • 이게 바로 HLOOKUPINDEX+MATCH 대체 버전이에요!

 

🔥 응용 예제: 동적 검색

문제: M9 셀에 입력한 월에 따라 자동으로 매출액이 나오게 하고 싶어요!

=INDEX(B2:M2, MATCH(M9, B1:M1, 0))

예제4-2: 엑셀 INDEX+MATCH 함수로 수평 동적 검색하기

결과: M9에 "10월"을 입력하면 → 24000000 F15에 "12월"을 입력하면 → 28000000

 

💡 여러 항목 동시 검색

문제: 8월의 매출액과 방문객수를 동시에 알고 싶어요!

=INDEX(B2:M3, ,MATCH("8월", B1:M1, 0))

예제4-3: 엑셀 INDEX+MATCH 함수 수평 복수 행 검색하기

결과: 매출액 22800000 과 아래셀 방문객수 1950

설명: H10 셀에 수식 입력하면 반환셀이 B2:M3 로 복수행이기에 동적배열 확장되요.

 

📝 NOTE: 단, 이렇게 단일행/열이 아닌 경우는 MATCH 함수의 위치를 INDEX 함수에서 행/열 인수 위치를 정확히 구분해줘야해요.
=INDEX(B2:M3, MATCH("8월", B1:M1, 0)) 은 반환행이 복수여서 #REF! 오류가 나지만 =INDEX(B2:M3, ,MATCH("8월", B1:M1, 0)) 컴마를 하나더 입력해 열위치를 확실히 해주면 동적배열로 반환되요.

 

🚨 수평 검색 시 주의사항

범위 설정 실수 방지:

// 잘못된 예 - 행 범위가 틀림
=INDEX(A2:M3, MATCH("7월", A1:M1, 0))

// 올바른 예 - 정확한 단일 행 지정
=INDEX(A2:M2, MATCH("7월", A1:M1, 0))

이렇게 수평 방향 검색도 INDEX+MATCH로 완벽하게 대체할 수 있어요! XLOOKUP 부럽지 않죠? 💪

 

🎯 XLOOKUP vs INDEX+MATCH 비교

기능 XLOOKUP INDEX+MATCH
수평 검색 =XLOOKUP("7월",A1:M1,A2:M2) =INDEX(A2:M2,MATCH("7월",A1:M1,0))
지원 버전 365/2021이상버전 모든 버전
가독성 ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐
유연성 ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐

📝 NOTE: INDEX+MATCHXLOOKUP이 없는 환경에서도 완벽하게 수평 검색을 구현할 수 있어요!

 

⚠️ 자주 발생하는 오류와 해결법

1️⃣ #N/A 오류

원인: 찾는 값이 데이터에 없을 때 발생

// 오류 발생 수식
=INDEX(B2:B13, MATCH("E999", A2:A13, 0))

// 해결책: IFERROR 함수 사용
=IFERROR(INDEX(B2:B13, MATCH("E999", A2:A13, 0)), "해당 직원 없음")

2️⃣ #REF! 오류

원인: INDEX 범위와 MATCH 범위의 행 수가 달라 찾은 값에 해당하는 반환값이 없을 때 주로 발생

// 잘못된 범위 설정
=INDEX(B2:B10, MATCH("E012", A2:A13, 0))

// 올바른 범위 설정
=INDEX(B2:B13, MATCH("E012", A2:A13, 0))

3️⃣ 근사치 매칭 문제

원인: MATCH 함수의 일치_유형을 생략하거나 잘못 설정

// 여기서 문제되진 않지만 문제가 될 수 있는 근사치 수식
=INDEX(B2:B13, MATCH("E005", A2:A13))

// 정확한 매칭을 위한 수식
=INDEX(B2:B13, MATCH("E005", A2:A13, 0))

📝 NOTE: MATCH 함수 근사치 검색에는 정렬이 필요해요. 그래서 근사치 검색시 황당한 값이 나오는 경우가 있어요. 항상 일치_유형을 0으로 설정해서 정확한 매칭을 하세요!

 

💻 컴활 시험 출제 포인트

컴퓨터활용능력 2급에서 INDEX+MATCH 조합은 단골 출제 문제예요! 특히 다음 유형들이 자주 나와요:

  • 양방향 검색 문제: VLOOKUP으로 해결 안 되는 왼쪽 열 참조
  • 복합 조건 검색: 여러 조건을 만족하는 데이터 찾기
  • 오류 처리: IFERROR와 조합한 안전한 검색식 작성

실기에서는 정확한 구문과 범위 설정이 핵심이니까 꼼꼼히 연습해두세요!

 

🎯 마무리

INDEX+MATCH 조합은 모든 엑셀 버전에서 사용 가능하면서도 XLOOKUP보다 더 유연한 활용이 가능한 강력한 함수예요. 특히 구형 엑셀을 사용하는 회사에서는 필수 스킬이죠!

 

오늘 배운 내용을 실무에 바로 적용해보시고, 동료들과도 공유해보세요. INDEX+MATCH 마스터가 되어서 엑셀 고수 소리 들으실 거예요! 💪

 

이 글이 도움이 되셨다면 공유 부탁드려요! 더 많은 엑셀 팁이 궁금하시면 블로그 구독도 잊지 마세요~

 

 

작성자: 마늘빵