엑셀 이름과 생년월일 두 조건으로 찾기

· 엉클벤 엑셀함수(스프레드시트)

핵심 요약

  • 명단에 같은 이름이 여러 명 있을 때 이름 + 생년월일 두 가지가 모두 맞는 사람의 연락처를 찾는 방법입니다.
  • 맨 앞에 =B2&C2로 두 값을 붙인 "찾기 키" 열(보조열)을 만들고, 찾을 때도 똑같이 붙여 VLOOKUP이나 INDEX·MATCH로 찾습니다.
  • 예제에서 김민준 3명 중 1978-11-02생의 연락처를 정확히 가져옵니다.

고객 명단이 몇백 명을 넘어가면 동명이인이 꼭 생깁니다. 이름만 넣고 VLOOKUP으로 연락처를 찾으면, 엑셀은 위에서부터 처음 만나는 "김민준"의 번호를 가져옵니다. 오류 표시도 없이 다른 사람의 번호가 나오니 더 위험합니다. 학교에서도 같은 이름의 학생이 있는 반 성적표에서 한 사람의 점수를 찾을 때 똑같은 일이 생깁니다.

이 글은 엑셀 "목적별 함수 조합" 시리즈의 한 편입니다. 배열 수식 없이, 보조열 하나로 해결하는 방법을 중심으로 설명합니다. 엑셀 버전과 상관없이 쓸 수 있고, 수식이 짧아서 나중에 다시 봐도 이해하기 쉽습니다.

조건 두 개로 정확히 찾기 - 보조열 INDEX MATCH

예제 표: 동명이인이 섞인 명단

B~E열이 원래 명단이고, A열은 이제 만들 보조열입니다. 이름·번호는 모두 가상입니다. 맨 윗줄의 A~E는 열 이름, 맨 왼쪽 숫자는 행 번호입니다.

ABCDE
1찾기 키이름생년월일연락처지역
2김민준1985-03-12010-0000-1111서울
3이서연1990-07-25010-0000-2222부산
4김민준1978-11-02010-0000-3333대전
5박지훈1982-01-30010-0000-4444광주
6이서연1995-12-08010-0000-5555인천
7최수아1988-05-17010-0000-6666수원
8김민준1985-09-04010-0000-7777울산
9정도윤1979-04-21010-0000-8888청주

찾는 쪽은 G열에 이름, H열에 생년월일을 적고, I열에 연락처를 받겠습니다. G2에는 김민준, H2에는 1978-11-02를 입력해 둡니다.

원래 명단 왼쪽에 빈 열이 없다면 B열 머리글을 오른쪽 클릭 → [삽입]으로 한 열을 끼워 넣으면 됩니다. VLOOKUP은 찾는 값이 범위의 첫 번째 열에 있어야 해서(Microsoft 문서 기준), 보조열을 맨 왼쪽에 둡니다.

완성 수식: 보조열 A열, 찾기 I2

1) 보조열 만들기 — A2에 넣고 A9까지

=B2&C2
  1. A2를 클릭하고 =B2&C2를 입력한 뒤 Enter를 누릅니다.
  2. A2의 채우기 핸들(오른쪽 아래 작은 네모)을 A9까지 끌어내립니다.
  3. A2에 김민준31118처럼 이름 뒤에 다섯 자리 숫자가 붙어 나오면 정상입니다. 이 숫자가 무엇인지는 아래 "수식 풀어 보기"에서 설명합니다.

2) 찾기 — I2에 넣기

=VLOOKUP(G2&H2,$A$2:$E$9,4,FALSE)

결과는 010-0000-3333입니다. 같은 김민준이라도 1978-11-02생(4행)의 번호입니다. 찾는 사람을 바꿔 가며 확인한 결과는 이렇습니다.

G (이름)H (생년월일)I (결과)
2김민준1978-11-02010-0000-3333
3이서연1995-12-08010-0000-5555
4김민준1985-03-12010-0000-1111
5박지훈1990-01-01#N/A (명단에 없는 조합)

G3·H3 아래로도 계속 찾으려면 I2를 I5까지 끌어내리면 됩니다. 명단 범위 $A$2:$E$9에는 $를 붙여 고정했기 때문에 밀리지 않습니다. 지역을 가져오려면 세 번째 인수 4를 5로 바꿉니다(A열부터 세어 E열이 다섯 번째). 김민준·1978-11-02의 지역은 대전입니다.

수식 풀어 보기: 안쪽부터 한 겹씩

1단계: B2&C2 — 두 값을 한 덩어리로

&는 앞뒤 값을 이어 붙이는 기호입니다. 그런데 결과가 김민준1985-03-12가 아니라 김민준31118입니다. 엑셀은 날짜를 속으로 숫자(일련번호)로 저장하기 때문입니다. Microsoft 문서에 따르면 1900년 1월 1일이 1이고 하루에 1씩 늘어납니다. 1985년 3월 12일은 31118번째 날입니다. 화면에 날짜로 보이는 것은 셀 서식 덕분이고, &로 붙이면 서식이 빠진 숫자가 붙습니다.

행이름생년월일A열 찾기 키
2김민준1985-03-12김민준31118
4김민준1978-11-02김민준28796
8김민준1985-09-04김민준31294

보기에는 낯설어도 문제없습니다. 찾는 쪽도 G2&H2로 똑같이 붙이면 김민준28796이 되어 A4와 정확히 같아집니다. 양쪽을 같은 방식으로 붙이는 것이 핵심입니다.

2단계: VLOOKUP — 키로 행을 찾아 4번째 열 가져오기

=VLOOKUP(G2&H2, $A$2:$E$9, 4, FALSE)
  • 찾을 값: G2&H2 → 김민준28796
  • 범위: $A$2:$E$9 — 첫 열(A)에서 찾습니다. A4에서 찾습니다.
  • 열 번호: 4 — 범위의 네 번째 열인 D열(연락처)
  • FALSE — 정확히 같은 값만 찾습니다. 빼먹으면 근삿값으로 찾아 엉뚱한 행을 가져올 수 있습니다.

결과는 4행의 D열 값 010-0000-3333입니다.

이름만으로 찾으면 어떻게 되나요? =VLOOKUP(G2,$B$2:$E$9,3,FALSE)처럼 이름만 넣어 확인해 보니 010-0000-1111, 즉 맨 위(2행) 김민준의 번호가 나왔습니다. 오류가 나지 않아 틀린 줄 모르고 넘어가기 쉽습니다. 이름이 겹치는지 먼저 알고 싶다면 =COUNTIF($B$2:$B$9,G2)로 세어 보세요. 김민준은 3이 나옵니다.

자주 막히는 곳

분명 있는 사람인데 #N/A가 나올 때

  • 생년월일 한쪽이 글자입니다. 다른 프로그램에서 복사해 온 명단은 날짜가 글자로 들어 있는 경우가 있습니다. H2가 글자 "1978-11-02"이면 G2&H2는 김민준1978-11-02가 되어 A열의 김민준28796과 맞지 않습니다. 검증에서도 #N/A가 나왔습니다. 빈 칸에 =ISNUMBER(H2)를 넣어 FALSE면 글자입니다. 찾는 수식을 G2&DATEVALUE(H2)로 바꾸면 글자 날짜를 일련번호로 바꿔 붙여서 찾아집니다.
  • 이름 앞뒤에 공백이 있습니다. "김민준 "과 "김민준"은 다른 글자입니다. =TRIM(B2)&C2처럼 보조열에서 공백을 지워 두면 안전합니다.
  • 보조열을 새로 채우지 않았습니다. 명단 아래에 사람을 추가했다면 A열 수식도 그 행까지 끌어내리고, VLOOKUP 범위($A$2:$E$9)도 늘려야 합니다.

보조열이 거슬리면 숨기세요. A열 머리글을 오른쪽 클릭 → [숨기기]를 누르면 화면에서만 사라지고 계산은 그대로 됩니다. 지우면 VLOOKUP이 찾을 곳이 없어져 오류가 나니 지우지는 마세요.

붙인 값이 우연히 겹치지 않게. 이름 뒤에 날짜 숫자가 붙는 이 예제는 겹칠 일이 거의 없습니다. 하지만 코드 "12"+"3"과 "1"+"23"처럼 둘 다 숫자인 조건을 붙이면 "123"으로 같아질 수 있습니다. 그럴 때는 =B2&"|"&C2처럼 사이에 구분 문자를 넣고, 찾는 쪽도 G2&"|"&H2로 맞춥니다.

다른 방법: INDEX·MATCH, 보조열 없이

INDEX·MATCH로 찾기 — 보조열이 어디에 있어도 됩니다

=INDEX($D$2:$D$9,MATCH(G2&H2,$A$2:$A$9,0))
  1. MATCH(G2&H2,$A$2:$A$9,0) — 키 김민준28796이 A2:A9에서 몇 번째인지 찾습니다. 결과 3.
  2. INDEX($D$2:$D$9, 3) — D2:D9의 세 번째 값 010-0000-3333을 꺼냅니다.

결과는 VLOOKUP과 같지만, 보조열이 명단 맨 오른쪽(예: F열)에 있어도 됩니다. 열 번호를 세지 않아도 되고, 중간에 열을 끼워 넣어도 범위가 알아서 따라옵니다. 원래 명단의 모양을 건드리고 싶지 않을 때 이쪽이 편합니다.

보조열 없이 한 번에 — 배열 수식

=INDEX($D$2:$D$9,MATCH(1,($B$2:$B$9=G2)*($C$2:$C$9=H2),0))

이름이 맞는지(참·거짓)와 생년월일이 맞는지를 곱해, 둘 다 맞는 행만 1이 되게 한 뒤 그 1의 위치를 찾습니다. 검증 결과는 위 표와 같았습니다. 다만 엑셀 2019 이하에서는 Ctrl + Shift + Enter로 입력해야 하는 배열 수식이라, 처음 쓰는 분께는 보조열 방식을 권합니다. 버전별 입력 방법과 원리는 아래 "함께 보면 좋은 글"의 INDEX MATCH 다중 조건 글에 자세히 정리해 두었습니다.

찾는 사람이 없을 때 "없음"으로

=IFERROR(VLOOKUP(G2&H2,$A$2:$E$9,4,FALSE),"없음")

명단에 없는 조합(예: 박지훈·1990-01-01)일 때 #N/A 대신 없음이 나옵니다. 다만 오타 때문에 못 찾은 경우도 "없음"으로 가려지니, 결과가 이상하면 IFERROR를 잠시 빼고 원래 오류를 확인하세요.

자주 묻는 질문

보조열에 날짜 대신 이상한 숫자가 붙어 나옵니다.

정상입니다. 엑셀은 날짜를 1900년 1월 1일을 1로 하는 일련번호로 저장하므로, &로 붙이면 그 숫자가 붙습니다. 찾는 쪽도 같은 방식으로 붙이면 똑같은 숫자가 되어 정확히 찾아집니다.

보조열을 지워도 되나요?

지우면 VLOOKUP이 찾을 곳이 사라져 오류가 납니다. 보기 싫다면 열 머리글을 오른쪽 클릭해 [숨기기]를 쓰세요. 숨겨도 계산은 그대로 됩니다.

조건이 세 개(이름·생년월일·지역)여도 되나요?

됩니다. 보조열을 =B2&C2&E2로, 찾는 값도 같은 순서로 세 개를 붙이면 됩니다. 붙이는 순서가 양쪽에서 같아야 합니다.

함께 보면 좋은 글: 엑셀 VLOOKUP 함수 사용법 총정리, 엑셀 INDEX MATCH 함수 사용법 총정리, 엑셀 INDEX MATCH 다중 조건과 2차원 찾기, 엑셀 텍스트 합치기 CONCATENATE와 &. 목적별 함수 조합 글 전체는 엑셀 목차에서 볼 수 있습니다.

참고: Microsoft 지원 — VLOOKUP 함수, Microsoft 지원 — MATCH 함수, Microsoft 지원 — DATEVALUE 함수

벤

글쓴이 · 엉클벤

엑셀·스프레드시트 함수, AI 활용법, 컴퓨터·스마트폰 생활 팁을 따라 하기 쉽게 정리합니다. 틀린 내용은 연락처로 알려 주세요. 소개 보기

📚 벤스페이퍼 엑셀 강좌

기초부터 피벗 테이블까지 배우는 순서대로 정리한 엑셀 강좌 전체 목차에서 다음 글을 이어서 볼 수 있습니다.

Powered by Blogger