카테고리 없음

다중 조건 검색의 끝판왕: INDEX & MATCH 함수 조합 마스터하기

stars_all 2025. 4. 22. 22:40

안녕하세요! 엑셀 마스터 블로그에 오신 것을 환영합니다. 오늘은 엑셀에서 가장 강력한 검색 기법 중 하나인 '다중 조건을 활용한 INDEX & MATCH 함수 조합'에 대해 알아보겠습니다.


실제 업무 사례: 삼선전자 영업기획팀 정대리의 새로운 도전

지난번 INDEX & MATCH 함수를 마스터한 정대리는 이제 더 복잡한 문제에 봉착했습니다.

"팀장님께서 제품코드와 지역이 모두 일치하는 판매 데이터를 찾아 분석해달라고 하셨는데... VLOOKUP으로는 한 가지 조건으로만 검색할 수 있고, INDEX & MATCH로도 단일 조건만 써봤는데 어떻게 해야 하지?"

정대리는 영업 지역별로 제품 성과를 분석해야 하는 임무를 받았습니다. 하지만 같은 제품코드라도 지역마다 다른 판매 데이터가 있어 한 번에 두 가지 조건을 충족하는 데이터를 찾아야 합니다.

이럴 때 필요한 것이 바로 다중 조건 INDEX & MATCH입니다!


다중 조건 INDEX & MATCH란?

단일 조건 INDEX & MATCH는 하나의 값을 기준으로 검색하지만, 다중 조건 INDEX & MATCH는 두 개 이상의 조건이 모두 일치하는 경우에만 결과를 반환합니다.

이것은 마치 데이터베이스의 'AND' 조건과 같습니다. 예를 들어 "제품코드가 'SN001'이고 지역이 '서울'인 데이터를 찾아라"와 같은 검색이 가능합니다.


다중 조건 INDEX & MATCH의 기본 구조

=INDEX(반환할_범위, MATCH(1, (조건1_범위=조건1_값)*(조건2_범위=조건2_값), 0))

여기서 중요한 부분:

    • 1은 TRUE 값을 찾기 위한 것입니다.
    • (조건1)*(조건2)는 두 조건이 모두 TRUE일 때만 1(TRUE)이 됩니다.
    • 이 함수는 배열 수식으로 입력해야 합니다(Ctrl+Shift+Enter).

정대리의 문제 해결하기

이제 다중 조건 INDEX & MATCH를 사용해 정대리의 문제를 해결해 봅시다.

1단계: 데이터 준비

정대리에게는 두 개의 시트가 있습니다:

시트1: 제품정보 제품명, 카테고리, 출시일, 원가, 판매가, 제품코드 정보 (제품코드가 가장 오른쪽인 여섯 번째 열에 위치)

시트2: 판매실적 판매번호, 판매일자, 지역, 담당자, 제품코드, 판매수량

시트3: 지역별_가격정책 (새로운 시트)

2단계: 문제 정의

정대리는 특정 제품과 지역의 조합에 대한 할인율, 판촉비용, 목표수량을 찾아야 합니다. 예를 들어, 판매실적 시트에서 "SN001" 제품이 "서울"에서 판매된 경우, 해당 조합의 할인율은 얼마인지 알아내야 합니다.

3단계: 다중 조건 INDEX & MATCH 함수 적용하기

판매실적 시트에 새로운 열 3개를 추가합니다:

    • G열: 할인율
    • H열: 판촉비용
    • I열: 목표수량

할인율 가져오기 (G2 셀)

=INDEX(지역별_가격정책!$C$2:$C$11, MATCH(1, (지역별_가격정책!$A$2:$A$11=E2)*(지역별_가격정책!$B$2:$B$11=C2), 0))

이 함수는 배열 수식이므로 Ctrl+Shift+Enter로 입력합니다.

여기서:

    • E2: 판매실적 시트의 제품코드
    • C2: 판매실적 시트의 지역
    • 지역별_가격정책!$C$2:$C$11: 할인율 열
    • (지역별_가격정책!$A$2:$A$11=E2): 제품코드가 일치하는지 확인
    • (지역별_가격정책!$B$2:$B$11=C2): 지역이 일치하는지 확인

판촉비용 가져오기 (H2 셀)

=INDEX(지역별_가격정책!$D$2:$D$11, MATCH(1, (지역별_가격정책!$A$2:$A$11=E2)*(지역별_가격정책!$B$2:$B$11=C2), 0))

목표수량 가져오기 (I2 셀)

=INDEX(지역별_가격정책!$E$2:$E$11, MATCH(1, (지역별_가격정책!$A$2:$A$11=E2)*(지역별_가격정책!$B$2:$B$11=C2), 0))

4단계: 모든 행에 적용하기

위의 함수들을 각 열의 나머지 셀에도 복사하여 붙여넣으면 됩니다.

=IFERROR(INDEX(지역별_가격정책!$C$2:$C$11, MATCH(1, (지역별_가격정책!$A$2:$A$11=E2)*(지역별_가격정책!$B$2:$B$11=C2), 0)),"")

IFERROR함수를 사용해서 N/A값을 없애주었습니다.


다중 조건 INDEX & MATCH의 원리 이해하기

이 함수가 어떻게 작동하는지 더 쉽게 이해해봅시다:

  1. (조건1)*(조건2)의 역할:
    • 각 조건은 비교 결과에 따라 TRUE(1) 또는 FALSE(0) 값을 생성합니다.
    • TRUETRUE = 1, TRUEFALSE = 0, FALSE*FALSE = 0
    • 즉, 두 조건이 모두 참인 경우에만 결과가 1이 됩니다.
  2. MATCH(1, (조건1)*(조건2), 0)의 역할:
    • MATCH 함수는 (조건1)*(조건2)에서 1(TRUE)이 처음 등장하는 위치를 찾습니다.
    • 이 위치가 바로 두 조건을 모두 만족하는 행의 번호입니다.
  3. INDEX 함수의 역할:
    • MATCH가 찾은 행 번호를 받아 해당 행의 원하는 열의 값을 반환합니다.

고급 활용법: 3개 이상의 조건 사용하기

조건을 더 추가하고 싶다면 간단히 조건식을 더 곱하기만 하면 됩니다:

=INDEX(반환할_범위, MATCH(1, (조건1_범위=조건1_값)*(조건2_범위=조건2_값)*(조건3_범위=조건3_값), 0))

예를 들어, 제품코드, 지역, 판매월이 모두 일치하는 데이터를 찾으려면:

=INDEX(데이터!$D$2:$D$100, MATCH(1, (데이터!$A$2:$A$100=제품코드)*(데이터!$B$2:$B$100=지역)*(MONTH(데이터!$C$2:$C$100)=), 0))


다중 조건 검색의 다양한 비교 연산자 활용

지금까지는 '같다(=)' 비교만 사용했지만, 다른 비교 연산자도 사용할 수 있습니다:

=INDEX(반환할_범위, MATCH(1, (조건1_범위>조건1_값)*(조건2_범위<=조건2_값), 0))

예를 들어, 판매수량이 5개 이상이고 할인율이 10% 이하인 첫 번째 데이터를 찾을 수 있습니다.


배열 수식 입력 방법 (Excel 버전별)

Excel 2019 이전 버전

    1. 수식을 입력합니다.
    2. Ctrl+Shift+Enter를 동시에 누릅니다. (중괄호 {}로 자동 감싸짐)

Excel 2019 이후 버전 (Office 365 포함)

수식 앞에 =을 입력하면 됩니다. (동적 배열 수식 자동 지원)


다중 조건 INDEX & MATCH vs. XLOOKUP

최신 버전의 Excel에서는 XLOOKUP 함수가 다중 조건 검색을 훨씬 간단하게 만들어 줍니다:

=XLOOKUP(제품코드 & 지역, 제품코드열 & 지역열, 결과열)

또는 최신 Excel에서는 FILTER 함수도 사용 가능합니다:

=FILTER(결과열, (조건1_범위=조건1_값)*(조건2_범위=조건2_값))

하지만 많은 회사에서는 아직 이전 버전의 Excel을 사용하므로, 다중 조건 INDEX & MATCH를 마스터해두면 어떤 환경에서도 대응할 수 있습니다.


일반적인 오류와 해결 방법

1. #N/A 오류: 조건을 만족하는 데이터가 없을 때 발생 해결: IFERROR 함수와 함께 사용

=IFERROR(INDEX(범위, MATCH(1, (조건1)*(조건2), 0)), "일치하는 데이터 없음")

2. #VALUE! 오류: 배열 수식을 올바르게 입력하지 않았을 때 발생 해결: Ctrl+Shift+Enter로 배열 수식 입력 (Excel 2019 이전)

3. 결과가 예상과 다름: 참조하는 범위의 크기가 다르거나, 데이터 형식 불일치 해결: 모든 범위의 크기가 같은지, 데이터 형식이 일치하는지 확인


정대리의 성과 3.0

다중 조건 INDEX & MATCH 함수를 마스터한 정대리는 이제:

    • 복잡한 다차원 데이터 분석 가능
    • 지역별, 제품별 맞춤형 판매 전략 도출
    • 다양한 조건 조합에 따른 시나리오 분석
    • 부사장님께까지 "데이터 분석 전문가"로 인정받음

실전 연습: 다양한 시나리오

    1. 특정 제품의 지역별 평균 판매량 비교: 다중 조건 INDEX & MATCH와 AVERAGE 함수 조합
    2. 특정 지역과 제품의 판매 추이 분석: 다중 조건 검색으로 시계열 데이터 추출
    3. 최대 할인율이 적용된 지역과 제품 조합 찾기: 다중 조건 INDEX & MATCH와 MAX 함수 조합

고급 팁: 가독성 향상을 위한 이름 정의 활용

복잡한 다중 조건 INDEX & MATCH는 이름 정의를 활용하면 더 읽기 쉽고 유지보수가 편리해집니다:

  1. 각 범위에 이름 정의하기:
    • 제품코드 범위: ProductCodes
    • 지역 범위: Regions
    • 할인율 범위: DiscountRates
  2. 이름을 사용한 수식:
=INDEX(DiscountRates, MATCH(1, (ProductCodes=E2)*(Regions=C2), 0))

훨씬 더 읽기 쉽고 수정하기도 편리해집니다!


다음 단계 학습

다중 조건 INDEX & MATCH에 익숙해지셨다면, 다음 스킬도 도전해보세요:

    • Power Query를 활용한 고급 데이터 변환
    • 피벗 테이블과 다중 조건 검색의 결합
    • OFFSET 함수와 INDEX & MATCH의 조합

오늘도 엑셀 한 걸음 더 마스터하셨네요! 다중 조건 INDEX & MATCH로 더 복잡한 데이터 분석도 자신있게 수행하세요!

#INDEX_MATCH #다중조건검색 #배열수식 #엑셀고급함수 #업무효율화 #데이터분석 #엑셀팁 #직장인필수스킬 #XLOOKUP #엑셀마스터