핵심 요약
- 상담일지 시트에 이름만 적으면, 고객명단 시트에서 그 사람의 연락처와 생년월일을 찾아 옆 칸에 채웁니다.
- 쓰는 조합은
=INDEX('고객명단'!$B$2:$B$9,MATCH(B2,'고객명단'!$C$2:$C$9,0))입니다. 연락처가 이름보다 왼쪽 열에 있어도 가져옵니다. - 이름이 명단에 없으면
#N/A가 나오고, IFERROR를 씌우면 "미등록"처럼 원하는 글자로 바꿀 수 있습니다.
고객 정보는 한 시트에 모아 두고, 상담일지나 계약 목록은 다른 시트에 따로 쓰는 경우가 많습니다. 상담일지에 이름을 적을 때마다 명단 시트로 넘어가 연락처를 찾아 복사해 오는 일은 번거롭고, 옮겨 적다가 번호 한 자리를 틀리기도 합니다. 영업하는 분이라면 이름만 적으면 연락처와 생년월일이 알아서 따라오는 상담일지를 한 번 만들어 두면 두고두고 편합니다.
자격증 시험에서도 "다른 시트의 표를 참조하여 값을 구하라"는 형태를 흔히 봅니다. 이 글은 "목적별 함수 조합" 시리즈의 한 편으로, INDEX와 MATCH를 다른 시트에 걸쳐 쓰는 방법과 한 수식으로 여러 열을 한꺼번에 채우는 방법까지 다룹니다. INDEX·MATCH 자체의 문법은 엑셀 INDEX MATCH 함수 사용법 총정리에 따로 정리해 두었습니다.
예제 표 — 시트 두 개
통합 문서 하나에 시트가 두 개 있습니다. 첫 번째는 고객명단 시트입니다. 연락처(B열)가 이름(C열)보다 왼쪽에 있다는 점을 봐 두세요. 이름·번호·날짜는 모두 가상입니다.
| 고객명단 | A | B | C | D |
|---|---|---|---|---|
| 1 | 고객번호 | 연락처 | 이름 | 생년월일 |
| 2 | C-001 | 010-2841-0000 | 김민준 | 1990-03-15 |
| 3 | C-002 | 010-0000-7315 | 이서연 | 1985-09-24 |
| 4 | C-003 | 010-5520-0000 | 박지훈 | 1985-09-25 |
| 5 | C-004 | 010-0000-1947 | 최수아 | 1978-12-01 |
| 6 | C-005 | 010-7713-0000 | 정우진 | 1972-01-10 |
| 7 | C-006 | 010-0000-6208 | 강하은 | 1999-11-30 |
| 8 | C-007 | 010-3196-0000 | 윤도현 | 1963-07-07 |
| 9 | C-008 | 010-0000-4482 | 한지아 | 1994-02-14 |
두 번째는 상담일지 시트입니다. A열 날짜와 B열 이름만 손으로 적고, C열 연락처와 D열 생년월일을 수식으로 채울 것입니다.
| 상담일지 | A | B | C | D |
|---|---|---|---|---|
| 1 | 날짜 | 이름 | 연락처 | 생년월일 |
| 2 | 2026-09-21 | 정우진 | ||
| 3 | 2026-09-21 | 이서연 | ||
| 4 | 2026-09-22 | 한지아 | ||
| 5 | 2026-09-23 | 김민준 | ||
| 6 | 2026-09-23 | 오지민 | ||
| 7 | 2026-09-24 | 윤도현 |
6행의 오지민 님은 일부러 고객명단에 없는 사람으로 넣었습니다. 명단에 없을 때 어떻게 되는지 보기 위해서입니다.
완성 수식 — 상담일지 C2·D2에 넣기
상담일지 시트의 C2에 연락처 수식을, D2에 생년월일 수식을 넣습니다.
C2: =INDEX('고객명단'!$B$2:$B$9,MATCH(B2,'고객명단'!$C$2:$C$9,0))
D2: =INDEX('고객명단'!$D$2:$D$9,MATCH(B2,'고객명단'!$C$2:$C$9,0))
- 상담일지 시트의 C2를 클릭하고
=INDEX(까지 입력합니다. - 아래쪽의 고객명단 시트 탭을 클릭한 뒤 B2부터 B9까지 끌어서 선택합니다. 수식 입력줄에 시트 이름과 범위가 들어갑니다.
- F4를 한 번 눌러 범위를
$B$2:$B$9로 고정합니다. - 쉼표를 치고
MATCH(를 입력한 뒤, 상담일지 시트로 돌아와 B2를 클릭합니다. - 쉼표를 치고 다시 고객명단 시트 탭을 눌러 C2:C9를 선택하고 F4로 고정합니다.
,0))를 입력하고 Enter를 누릅니다.- D2도 같은 방법으로 넣되, 가져올 범위만 D2:D9로 고릅니다.
- C2:D2를 함께 선택하고 채우기 핸들을 7행까지 끌어내립니다.
결과는 아래와 같습니다.
| 상담일지 | B (이름) | C (연락처) | D (생년월일) |
|---|---|---|---|
| 2 | 정우진 | 010-7713-0000 | 1972-01-10 |
| 3 | 이서연 | 010-0000-7315 | 1985-09-24 |
| 4 | 한지아 | 010-0000-4482 | 1994-02-14 |
| 5 | 김민준 | 010-2841-0000 | 1990-03-15 |
| 6 | 오지민 | #N/A | #N/A |
| 7 | 윤도현 | 010-3196-0000 | 1963-07-07 |
시트 이름 앞뒤의 작은따옴표와 느낌표. '고객명단'!$B$2:$B$9에서 느낌표(!)는 "이 시트의"라는 뜻으로 시트 이름과 셀 주소를 나눕니다. Microsoft 문서는 시트 이름에 영문자가 아닌 문자가 들어 있으면 이름을 작은따옴표(')로 묶으라고 안내합니다. 한글 시트 이름이라면 작은따옴표로 묶어 두는 편이 안전합니다. 위 순서처럼 시트 탭을 클릭해서 범위를 고르면 이 부분을 손으로 칠 필요가 없습니다.
수식 풀어 보기 — 안쪽부터 한 겹씩
3행의 이서연 님을 예로 C3의 수식을 따라가 보겠습니다.
B3→ 상담일지에 적은 이름이서연.MATCH(B3,'고객명단'!$C$2:$C$9,0)→ 고객명단의 이름 범위 C2:C9에서 이서연이 몇 번째인지 찾습니다. 두 번째 칸이므로2입니다. 마지막 인수0은 정확히 같은 값을 찾으라는 뜻입니다.INDEX('고객명단'!$B$2:$B$9,2)→ 연락처 범위 B2:B9의 두 번째 칸, 곧010-0000-7315를 돌려줍니다.
MATCH가 돌려주는 숫자는 시트의 행 번호가 아니라 범위 안에서의 순서입니다. 그래서 찾는 범위(C2:C9)와 가져오는 범위(B2:B9)는 시작 행과 크기가 같아야 합니다. 예제 6명의 MATCH 결과는 차례로 5, 2, 8, 1, #N/A, 7이었습니다. 오지민 님은 명단에 없으니 MATCH 단계에서 #N/A가 나오고, INDEX도 그 오류를 그대로 넘겨받습니다.
이 조합이 VLOOKUP과 다른 점이 여기서 드러납니다. VLOOKUP은 찾는 열(이름)이 범위의 첫 열이어야 하고 그보다 오른쪽 열만 가져옵니다. 이 명단은 연락처가 이름보다 왼쪽에 있어서 VLOOKUP으로는 바로 가져올 수 없지만, INDEX·MATCH는 찾는 열과 가져오는 열을 따로 고르므로 방향을 따지지 않습니다.
자주 막히는 곳
| 보이는 증상 | 원인 | 해결 |
|---|---|---|
위쪽 몇 줄은 맞다가 아래로 갈수록 #N/A | 범위에 $를 안 붙이고 채워서 범위가 한 줄씩 밀려 내려갔습니다. 예제에서는 5행 김민준부터 #N/A가 났습니다. | 두 범위를 모두 F4로 $B$2:$B$9처럼 고정합니다. 찾을 이름(B2)만 상대참조로 둡니다. |
| 오류 없이 다른 사람 번호가 나옴 | 찾는 범위와 가져오는 범위의 시작 행이 다릅니다. 찾는 범위를 머리글이 있는 C1부터 잡으면 이서연 님 자리에 한 칸 아래 박지훈 님 번호(010-5520-0000)가 나옵니다. | 두 범위를 같은 행에서 시작해 같은 행에서 끝나게 맞춥니다. |
눈으로는 같은 이름인데 #N/A | 이름 뒤에 공백이 붙어 있습니다. "이서연 "은 "이서연"과 다른 값입니다. | 찾을 값을 TRIM(B2)로 감싸거나 명단 쪽 공백을 지웁니다. TRIM을 씌우면 2가 제대로 나옵니다. |
생년월일이 31314 같은 숫자로 보임 | 엑셀은 날짜를 일련번호로 저장합니다. 수식을 넣은 칸의 표시 형식이 일반이면 날짜가 아니라 그 숫자가 보입니다. | D열의 표시 형식을 간단한 날짜로 바꿉니다. |
| 동명이인인데 첫 사람 번호만 나옴 | MATCH는 정확히 같은 값 가운데 첫 번째 위치를 돌려줍니다. | 생년월일 같은 조건을 하나 더 쓰는 방법은 INDEX MATCH 다중 조건 글을 보세요. |
이름을 아직 안 적은 행. 상담일지에 빈 행을 미리 만들어 수식을 채워 두면 이름이 빈 행마다 #N/A가 줄지어 나옵니다. 아래 IFERROR로 감싸거나, =IF(B2="","",수식)처럼 이름이 비었을 때는 계산하지 않게 하면 깔끔합니다.
다른 방법
1. 없는 이름은 "미등록"으로 — IFERROR
=IFERROR(INDEX('고객명단'!$B$2:$B$9,MATCH(B2,'고객명단'!$C$2:$C$9,0)),"미등록")
IFERROR는 첫 번째 인수가 오류이면 두 번째 인수를 돌려줍니다. 예제에서 오지민 님 칸이 #N/A 대신 미등록으로 바뀌고, 나머지 다섯 명은 그대로 연락처가 나옵니다. 다만 IFERROR는 #N/A뿐 아니라 #REF!, #VALUE! 같은 다른 오류까지 모두 덮으므로, 범위를 잘못 잡은 실수도 "미등록"으로 가려질 수 있습니다. 수식을 처음 만들 때는 IFERROR 없이 결과를 먼저 확인하세요.
2. 한 수식으로 연락처·생년월일·고객번호를 한꺼번에
가져올 항목이 여러 개라면 열마다 수식을 따로 고치는 대신, 머리글로 "몇 번째 열인지"까지 MATCH로 찾게 할 수 있습니다. 상담일지의 머리글(C1 연락처, D1 생년월일, E1 고객번호)을 고객명단 머리글과 똑같은 글자로 적어 두고 C2에 아래 수식을 넣습니다.
=INDEX('고객명단'!$A$2:$D$9,MATCH($B2,'고객명단'!$C$2:$C$9,0),MATCH(C$1,'고객명단'!$A$1:$D$1,0))
첫 번째 MATCH가 몇 번째 행인지, 두 번째 MATCH가 머리글 행에서 몇 번째 열인지 찾고, INDEX가 그 교차점의 값을 꺼냅니다. 이 수식을 오른쪽 E2까지, 다시 아래로 7행까지 채우면 열마다 다른 항목이 나옵니다. 이서연 님 행은 010-0000-7315, 1985-09-24, C-002가 됩니다. $B2는 열만, C$1은 행만 고정한 혼합참조라서 이렇게 채울 수 있습니다. 고객명단에 없는 오지민 님 행은 세 칸 모두 #N/A입니다.
3. 컴활 시험·VLOOKUP 방식
가져올 값이 이름보다 오른쪽에 있다면 VLOOKUP도 됩니다. 생년월일은 이름 오른쪽이므로 =VLOOKUP(B2,'고객명단'!$C$2:$D$9,2,FALSE)로 같은 결과가 나옵니다. 연락처는 이름보다 왼쪽이라 이 방식으로는 가져올 수 없습니다. 시험 문제에서 함수를 지정해 주면 그 함수를 쓰면 됩니다.
4. XLOOKUP (Microsoft 365·엑셀 2021 이후)
=XLOOKUP(B2,'고객명단'!$C$2:$C$9,'고객명단'!$B$2:$B$9,"미등록")
찾을 값, 찾을 범위, 가져올 범위 순서로 쓰고, 네 번째 인수에 못 찾았을 때 보여 줄 값을 넣습니다. 기본이 정확히 일치라서 0을 따로 넣지 않습니다. Microsoft 문서에 따르면 XLOOKUP은 엑셀 2016과 2019에서는 쓸 수 없습니다. 파일을 받는 사람이 옛 버전을 쓸 수 있다면 INDEX·MATCH가 안전합니다.
자주 묻는 질문
고객번호로 찾고 싶으면 어떻게 하나요?
찾을 값과 찾을 범위만 바꾸면 됩니다. =INDEX('고객명단'!$C$2:$C$9,MATCH("C-005",'고객명단'!$A$2:$A$9,0))는 고객번호 열 A2:A9에서 C-005를 찾아 이름 정우진을 돌려줍니다. 동명이인이 있을 수 있는 명단이라면 이름보다 고객번호처럼 겹치지 않는 값으로 찾는 편이 정확합니다.
고객명단에 새 고객을 추가했는데 찾지 못합니다.
범위를 $B$2:$B$9처럼 9행까지만 잡았다면 10행 이후에 추가한 고객은 범위 밖입니다. 두 범위의 끝 행을 같은 만큼 넉넉하게 늘려 두세요. 예를 들어 $B$2:$B$500과 $C$2:$C$500으로 잡아도 정확히 일치(0)로 찾을 때는 빈 행이 섞여 있어도 결과가 같습니다.
영어 이름은 대문자와 소문자를 구분해서 찾나요?
구분하지 않습니다. Microsoft 문서에 따르면 MATCH는 텍스트를 찾을 때 대소문자를 구분하지 않으므로 kim과 KIM을 같은 값으로 봅니다. 띄어쓰기는 구분하므로 앞뒤 공백은 따로 정리해야 합니다.
함께 보면 좋은 글
- 엑셀 INDEX MATCH 함수 사용법 총정리 — 두 함수의 기본 문법
- 엑셀 INDEX MATCH 다중 조건과 2차원 찾기 — 동명이인 구분, 행·열 교차 찾기
- 엑셀 절대참조 상대참조 차이와 $ 사용법 — F4와 혼합참조
- 엑셀 함수 목차 — 목적별 함수 조합 시리즈 전체 보기
댓글
댓글 남기기