기술 가이드

INDEX와 XMATCH로 엑셀에서 2차원(양방향) 조회하기

8 min read 엑셀 업데이트됨 23 Sep 2025
엑셀 INDEX + XMATCH로 2차원 조회하기
엑셀 INDEX + XMATCH로 2차원 조회하기

노트북 화면에 Microsoft Excel 앱이 열려 있는 모습.

빠른 링크

  • INDEX와 XMATCH 함수의 동작 방식
  • INDEX + XMATCH로 단방향(한 방향) 조회하기
  • INDEX + XMATCH로 2차원(양방향) 조회하기
  • 문제 해결 및 고급 팁

이 문서는 초급부터 고급 사용자까지 모두를 대상으로 합니다. 처음부터 차근차근 설명하며, 이미 INDEX와 XMATCH로 단방향 조회를 알고 있다면 “INDEX + XMATCH로 2차원(양방향) 조회하기” 섹션으로 바로 이동하세요.

INDEX와 XMATCH 함수의 동작 방식

먼저 각각의 함수가 독립적으로 어떻게 동작하는지 살펴보겠습니다. 기초를 이해하면 두 함수를 하나의 수식에서 결합할 때 훨씬 이해하기 쉬워집니다.

INDEX 함수

INDEX 함수는 지정한 범위에서 행 번호와 열 번호에 해당하는 값을 반환합니다. 기본 구문은 다음과 같습니다:

=INDEX(a,b,c)

여기서

  • a: 값이 들어 있는 범위(또는 테이블)
  • b: 반환할 행 번호
  • c: 반환할 열 번호

예: 셀 H2에 다음 수식을 입력하면:

=INDEX(T_Profit,3,6)

T_Profit 표의 3행, 6열에 있는 값을 반환합니다.

INDEX 함수가 표의 3행 6열 값을 반환하는 예시 화면.

행과 열 번호를 하드코딩할 필요는 없습니다. 번호가 들어 있는 셀을 참조하면 수식이 더 유연해집니다. 예를 들어:

=INDEX(T_Profit,I2,I3)

이라고 입력하면 I2에서 행 번호를, I3에서 열 번호를 가져옵니다.

셀 참조를 사용해 INDEX가 값을 반환하는 예시 화면.

정의: INDEX — 범위와 인덱스(행/열)를 받아 해당 위치의 값을 반환하는 함수.

XMATCH 함수

XMATCH는 범위에서 항목을 검색하고 그 위치(순번)를 반환합니다. 구문은 다음과 같습니다:

=XMATCH(a,b,c,d)

여기서

  • a: 찾을 값(또는 셀 참조)
  • b: 검색할 범위
  • c: 일치 유형(0=정확히 일치(기본),-1=정확히 일치 또는 바로 작은 값,1=정확히 일치 또는 바로 큰 값,2=와일드카드)
  • d: 검색 방향(1=첫~마지막(기본),-1=마지막~첫,2=이진(오름차순),-2=이진(내림차순))

XMATCH는 MATCH의 최신 대체 함수로, 기본값이 정확 일치이며 검색 방향 지정과 와일드카드가 가능합니다.

예: 셀 H2에 다음을 입력하면:

=XMATCH(1927,T_Profit[Employee])

T_Profit 표의 Employee 열에서 1927이 있는 위치(세 번째 항목)이므로 3을 반환합니다.

XMATCH가 표 열에서 값의 위치를 반환하는 예시 화면.

XMATCH의 c와 d 인수는 옵션입니다. 정확 일치(0)와 위→아래(1)가 기본이므로 대부분의 단순 조회에서 생략합니다.

셀 참조를 사용하면 동일한 수식을 다양한 조회값에 재사용할 수 있습니다. 예:

=XMATCH(I2,T_Profit[Employee])

여기서 I2에 조회할 직원 ID를 입력하면 됩니다.

셀 참조를 사용해 XMATCH가 값을 찾는 예시 화면.

정의: XMATCH — 범위에서 항목의 위치(순번)를 찾아 반환하는 함수.

INDEX + XMATCH로 단방향(한 방향) 조회하기

두 함수의 결합이 유용한 이유는 하나의 수식으로 위치 검색과 값 반환을 모두 처리할 수 있기 때문입니다. 먼저 1차원(행 또는 열) 단독 조회를 알아보겠습니다.

예: 직원 ID를 I2에 입력하면 해당 직원의 총 이익(Total Profit)을 보여주고 싶다면, 다음과 같이 할 수 있습니다:

=INDEX(T_Profit,XMATCH(I2,T_Profit[Employee]),6)
  • T_Profit: 검색할 테이블
  • XMATCH(I2,T_Profit[Employee]): INDEX에 전달할 행 번호(직원 ID의 위치)
  • 6: 해당 행의 6번째 열(예: Total Profit)을 반환

표 구조를 직접 클릭해 구조화 참조(예: T_Profit[Employee])를 사용하면 수식이 더 읽기 쉽습니다.

INDEX와 XMATCH를 결합해 직원의 총 이익을 조회하는 예시 화면.

장점

  • VLOOKUP보다 유연합니다. 열 순서에 영향을 받지 않습니다.
  • 테이블 범위를 변경해도 구조화 참조는 자동으로 업데이트됩니다.

언제 단방향이 충분한가?

  • 조회하려는 값이 항상 특정 열(또는 행)에 고정되어 있는 경우.
  • 단일 키(예: 직원 ID)로 고유한 행을 찾을 때.

INDEX + XMATCH로 2차원(양방향) 조회하기

두 가지 변수를 조합해 교차점의 값을 찾으려면 XMATCH를 두 번 사용해 행 번호와 열 번호를 각각 구합니다. 이 방식은 예를 들어 특정 직원이 특정 연도에 벌어들인 이익 같은 정보를 조회할 때 유용합니다.

예: 직원 1191이 2021년에 벌어들인 이익을 셀 I4에 표시하려면:

=INDEX(T_Profit,XMATCH(I2,T_Profit[Employee]),XMATCH(I3,T_Profit[#Headers]))
  • XMATCH(I2,T_Profit[Employee]): 행 번호
  • XMATCH(I3,T_Profit[#Headers]): 테이블 헤더에서 해당 연도(또는 컬럼명)의 위치(열 번호)

직원과 연도를 입력해 2차원 조회로 이익을 반환하는 예시 화면.

이 방법의 핵심은 열 헤더(또는 행 헤더)를 조회 배열로 삼아 XMATCH로 열 번호를 구하는 것입니다.

텍스트/숫자 서식 불일치 문제와 해결

때때로 컬럼 헤더가 숫자(예: 연도)처럼 보이지만 Excel은 이를 텍스트로 저장할 수 있습니다. 이 경우 XMATCH가 #N/A를 반환할 수 있습니다.

문제 해결 단계:

  1. 조회 값(I3 등)과 헤더 배열(T_Profit[#Headers])의 데이터 형식을 일치시킵니다.
  2. 셀을 선택한 뒤 리본의 “홈” 탭에서 숫자 형식을 “텍스트”로 설정합니다.
  3. 셀을 편집 모드(F2)로 들어간 뒤 Enter를 눌러 형식 적용을 강제합니다.

홈 탭의 숫자 형식 드롭다운에서 텍스트 형식을 선택한 화면.

이 과정을 거치면 XMATCH가 헤더와 조회값을 정상적으로 비교하여 정확한 열 번호를 반환합니다.

동적 드롭다운(데이터 유효성 검사)로 조회 안정성 향상

조회 입력값(I2, I3 등)에 데이터 유효성 검사를 설정해 드롭다운을 사용하면 오타를 막고 조회 속도를 높일 수 있습니다. 단, 표의 헤더를 바로 소스로 쓸 수 없는 경우가 있으므로 아래 방법을 사용하세요.

권장 방법:

  • 헤더 범위를 직접 셀 참조로 입력하거나(예: =$B$1:$G$1),
  • 헤더 범위를 이름 정의(수식 → 이름 관리자)한 뒤 데이터 유효성 검사 소스에 해당 이름을 입력합니다.

데이터 유효성 검사 대화 상자에서 셀 범위를 직접 참조한 화면.

이제 드롭다운을 선택해 빠르게 조회할 수 있습니다.

고급 팁과 활용법

아래는 실무에서 자주 마주치는 상황과 권장 대처법입니다.

1) 대체 방법: XLOOKUP, INDEX+MATCH, FILTER 비교

  • XLOOKUP: 한 축(행 또는 열)만 고정된 경우 간단하고 직관적입니다. 그러나 2차원 교차값을 바로 찾으려면 추가 조합이 필요합니다.
  • INDEX + MATCH(구 MATCH): 호환성(구버전 Excel) 때문에 아직 사용됩니다. XMATCH가 가능하면 XMATCH가 더 직관적입니다.
  • FILTER: 특정 조건(예: 행 조건과 열 조건 모두)으로 결과를 필터링할 때 유용합니다. 배열 수식을 반환하므로 동적 배열 환경에서 강력합니다.

언제 어떤 방법을 선택하나?

  • 최신 Excel(Office 365 등): XMATCH + INDEX 권장.
  • 호환성(Excel 2016 이하): MATCH + INDEX 또는 VLOOKUP 대안 고려.
  • 다중 조건 필터링: FILTER 또는 SUMPRODUCT 등 고려.

2) 엣지 케이스(문제가 생기는 경우)

  • 중복 키: XMATCH는 첫 번째(또는 마지막) 항목을 반환합니다. 고유 식별자(Primary Key)를 사용하세요.
  • 공백 셀: 검색범위에 공백이 있으면 위치 결정이 의도와 다른 결과를 줄 수 있습니다.
  • 정렬 의존 코드: XMATCH의 이진 검색 모드를 잘못 사용하면 엉뚱한 값을 반환할 수 있습니다.

3) 성능 고려사항

  • 작은 표: 차이를 느끼기 어렵습니다.
  • 매우 큰 범위(수만 행): 구조화 테이블과 구조화 참조, 불필요한 전체 열 참조(A:A) 사용을 피하고 필요한 범위만 지정하세요.

4) 보안/프라이버시

조회 수식 자체는 민감한 데이터를 노출하지 않지만, 드롭다운 목록이나 숨김 열에 민감 정보가 포함되어 있으면 주의하세요. 파일 공유 시 해당 시트/열을 숨기거나 보호하세요.

실무용 체크리스트(역할별)

  • 데이터 관리자

    • 모든 키(예: Employee ID)가 고유한지 확인하세요.
    • 헤더의 데이터 유형(텍스트/숫자)을 표준화하세요.
    • 범위를 테이블(Table)로 변환해 자동 확장을 활용하세요.
  • 보고서 작성자

    • INDEX+XMATCH 수식에 셀 참조를 사용해 재사용 가능하게 만드세요.
    • 데이터 유효성 검사를 적용해 입력 오류를 줄이세요.
  • 개발자/자동화 담당자

    • 큰 범위에서 이진 검색(옵션 2/-2)을 사용할 때는 명확히 정렬 상태를 보장하세요.
    • 가능한 경우 구조화 참조를 사용해 코드 유지보수를 쉽게 하세요.

간단한 SOP(표준 작업 절차): 2차원 조회 템플릿 만들기

  1. 원본 데이터를 선택하고 Ctrl+T로 표(Table)로 변환합니다. 이름을 예: T_Profit로 지정.
  2. 조회 입력 셀(예: I2=Employee ID, I3=Year)을 준비합니다.
  3. I4에 다음 수식을 입력합니다:
=INDEX(T_Profit,XMATCH(I2,T_Profit[Employee]),XMATCH(I3,T_Profit[#Headers]))
  1. I2, I3에 데이터 유효성 검사(Drop-down)를 설정합니다. 소스는 명시적 셀 범위(또는 이름 범위)를 사용합니다.
  2. 테스트: 존재하지 않는 ID 또는 헤더를 입력했을 때 #N/A 또는 사용자 정의 오류 메시지를 확인합니다.
  3. 문서화: 수식의 목적과 입력 셀 설명을 셀 주석으로 남깁니다.

테스트 케이스(수식 검증)

  • 정상 케이스: 존재하는 ID와 존재하는 연도 → 정확한 값 반환.
  • 키 오류: 존재하지 않는 ID → #N/A 발생.
  • 헤더 형식 오류: 헤더는 텍스트인데 I3가 숫자 형식이면 → #N/A 발생. 해결: 형식 일치.
  • 중복 키: 동일한 ID가 여러 행에 존재하면 → 첫 번째(위에서부터) 위치 반환.

의사결정 흐름(간단한 도식)

flowchart TD
  A[조회 요구] --> B{키'고유' 존재?}
  B -- 예 --> C{열'또는 행' 고정?}
  B -- 아니오 --> D[데이터 정규화 후 재시도]
  C -- 예 --> E[INDEX + XMATCH 사용]
  C -- 아니오 --> F[XLOOKUP 또는 FILTER 고려]
  E --> G[결과 검증 및 드롭다운 추가]
  F --> G

예시 시나리오: 단계별 실습

  1. 표 준비: A1:G100 범위를 T_Profit로 변환.
  2. I2에 조회할 Employee ID 입력. I3에 연도(또는 헤더명) 입력.
  3. I4에 INDEX+XMATCH 수식 입력.
  4. 헤더와 I3의 형식 불일치 시 홈 → 숫자 형식 → 텍스트로 맞춤.
  5. 드롭다운(데이터 유효성) 적용으로 입력 실수 제거.

언제 이 방식이 실패하는가(반례)

  • 조회하려는 값이 행과 열 모두에서 중복될 때(예: 여러 행의 동일 직원ID가 있고, 열 헤더도 중복되는 경우) 이 방법은 적절한 값을 보장하지 못합니다.
  • 대규모 데이터에서 전체 열 참조(A:A)를 사용하면 성능 저하가 발생합니다.
  • 헤더가 동적으로 생성되거나 외부 연결로 변경될 때 구조화 참조를 관리하지 않으면 참조 오류가 발생할 수 있습니다.

호환성 및 마이그레이션 팁

  • XMATCH는 Excel 2021, Microsoft 365, Excel for the web, 모바일/태블릿 버전에서 사용 가능합니다. 이전 버전(예: Excel 2016 이하)에서는 XMATCH가 없을 수 있습니다.
  • 이전 버전과의 호환성이 필요하면 XMATCH 대신 MATCH를 사용하세요. MATCH의 기본 인수는 XMATCH와 다르므로 주의가 필요합니다.

팁 요약(핵심)

  • INDEX는 위치 기반 값 반환 함수입니다.
  • XMATCH는 위치(순번)를 반환하는 최신 MATCH 대체 함수입니다.
  • 두 함수를 결합하면 동적이고 유연한 2차원 조회가 가능합니다.
  • 데이터 형식(텍스트/숫자)을 항상 일치시켜 오류(#N/A)를 예방하세요.
  • 데이터 유효성 검사로 입력을 제한하면 실무에서 오류를 크게 줄일 수 있습니다.

자주 묻는 질문(FAQ)

Q1: INDEX와 XMATCH를 항상 함께 써야 하나요?

A1: 반드시 그렇지는 않습니다. 단일 열에서 간단히 값을 찾을 때는 XMATCH만으로도 충분합니다. 다만 교차형 조회(행·열 둘 다 필요)에서는 함께 사용하는 것이 가장 유리합니다.

Q2: XMATCH가 내 Excel에서 작동하지 않아요. 대안은?

A2: XMATCH가 없다면 MATCH 함수를 사용하세요. 구문과 기본 동작이 다르므로 MATCH의 세 번째 인수(정렬 옵션)를 확인하고 조정해야 합니다.

Q3: 중복 키가 있으면 어떻게 해야 하나요?

A3: 기본적으로 XMATCH는 첫 번째(또는 마지막) 항목만 반환합니다. 중복을 허용하지 않도록 데이터 정제(중복 제거 또는 고유 키 부여)를 권장합니다.

Q4: 수식이 느려요. 성능을 개선하려면?

A4: 전체 열 참조(A:A) 대신 필요한 범위만 지정하고, 가능한 경우 표(Table) 구조를 사용하세요. 또한 배열 수식을 과도하게 사용하면 느려질 수 있으니 주의하세요.


끝으로, INDEX와 XMATCH 조합은 유연성과 유지보수성 면에서 매우 강력합니다. 기본을 잘 다지고 데이터 품질(고유 키, 서식 일치)을 확보하면 실무 보고서와 대시보드에서 빠르고 정확한 조회를 구현할 수 있습니다.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

Windows에서 페이지파일 크기와 위치 안전하게 변경하기
Windows 설정

Windows에서 페이지파일 크기와 위치 안전하게 변경하기

Mac에서 삭제된 이메일 복구하는 7가지 방법
데이터 복구

Mac에서 삭제된 이메일 복구하는 7가지 방법

Xubuntu Feisty에서 dm-crypt·LUKS로 디스크 암호화
보안

Xubuntu Feisty에서 dm-crypt·LUKS로 디스크 암호화

YouTube 검색 기록 확인 및 삭제 방법
프라이버시

YouTube 검색 기록 확인 및 삭제 방법

엑셀 INDEX + XMATCH로 2차원 조회하기
엑셀

엑셀 INDEX + XMATCH로 2차원 조회하기

YouTube 검색 기록 보기·삭제 가이드
개인정보

YouTube 검색 기록 보기·삭제 가이드