엑셀 VLOOKUP 값이 틀림? 이름이 같은 직원 때문에 급여가 잘못 들어갈 때 사번으로 찾는 법
엑셀 VLOOKUP 값이 틀림, 또는 분명히 수식은 맞는 것 같은데 다른 사람 급여가 들어가는 상황은 초보자가 정말 자주 만나는 문제입니다. 특히 직원명, 거래처명, 상품명처럼 사람이 보기에는 편한 값을 기준으로 찾다가 같은 이름이 2명 이상 있으면 엑셀은 내가 원하는 행이 아니라 ‘먼저 만난 행’을 가져옵니다.
오늘은 급여 입력표를 예로 들어, VLOOKUP을 어디 셀에 넣어야 하는지, 왜 이름으로 찾으면 헷갈리는지, 사번으로 바꾸면 어떻게 안정적으로 찾을 수 있는지 체크리스트처럼 정리해보겠습니다. 어렵게 돌아가지 않고, 실무에서 가장 많이 쓰는 VLOOKUP과 IFERROR 중심으로 설명하겠습니다.

왜 VLOOKUP은 엉뚱한 값을 가져올까?
VLOOKUP은 세로 방향 표에서 값을 찾는 함수입니다. 쉽게 말해 “이 값과 같은 행을 찾아서, 그 행의 몇 번째 열 값을 가져와줘”라는 뜻입니다.
그런데 중요한 특징이 하나 있습니다. VLOOKUP은 찾는 값이 여러 번 나오면 위에서부터 처음 발견한 행만 가져옵니다. 그래서 이름처럼 중복될 수 있는 값으로 찾으면 문제가 생깁니다.
예를 들어 직원명에 김민수가 2명 있는데, 한 명은 영업팀이고 한 명은 물류팀이라면 이름만으로는 누구인지 구분할 수 없습니다. 엑셀은 “김민수”라는 글자만 보고 위쪽 김민수의 기본급을 가져오게 됩니다.
예시 파일 구조부터 맞춰볼까요?
아래처럼 한 시트 안에 기준표와 지급대상표가 있다고 가정하겠습니다. 기준표는 A4:E10 범위에 있고, 지급대상표는 G4:J8 범위에 있습니다.
A열은 사번, B열은 이름, C열은 부서, D열은 기본급, E열은 식대입니다. 지급대상표에서는 G열에 사번을 입력하면, H열 이름, I열 기본급, J열 식대가 자동으로 채워지게 만들겠습니다.
| 위치 | 열 | 내용 | 역할 |
|---|---|---|---|
| A4:E10 | A~E열 | 직원 기준표 | 급여 정보를 보관하는 원본 표 |
| G4:J8 | G~J열 | 지급대상표 | 이번 달 지급할 직원 정보를 가져오는 표 |
| G5:G8 | G열 | 사번 입력 | 찾을 기준값 |
| H5:J8 | H~J열 | 결과 표시 | VLOOKUP 수식 입력 위치 |
예시 데이터는 이렇게 입력되어 있다고 보겠습니다.
| A열 사번 | B열 이름 | C열 부서 | D열 기본급 | E열 식대 |
|---|---|---|---|---|
| 24001 | 김민수 | 영업팀 | 2,800,000 | 200,000 |
| 24002 | 이서연 | 관리팀 | 2,600,000 | 180,000 |
| 24003 | 김민수 | 물류팀 | 2,450,000 | 160,000 |
| 24004 | 박지훈 | 영업팀 | 3,100,000 | 200,000 |
| 24005 | 최하은 | CS팀 | 2,500,000 | 170,000 |
이름으로 찾는 수식은 어디가 위험할까?
초보자 파일에서 자주 보이는 수식은 이런 형태입니다. 예를 들어 H5에 이름을 입력하고 I5에 기본급을 가져오려는 경우입니다.
=VLOOKUP(H5,$B$5:$E$10,3,FALSE)
이 수식은 B열 이름에서 H5와 같은 값을 찾고, B:E 범위 안에서 3번째 열인 D열 기본급을 가져옵니다. 겉으로 보면 맞아 보입니다.
하지만 H5에 김민수를 입력하면, B열에서 처음 나오는 김민수의 기본급만 가져옵니다. 물류팀 김민수를 찾고 싶어도 엑셀은 이름만 보고 구분할 방법이 없습니다. 그래서 실무에서는 이름보다 사번, 거래처코드, 상품코드처럼 중복되지 않는 값을 기준으로 찾는 습관이 중요합니다.
사번으로 찾으면 수식이 훨씬 안전해집니다
지급대상표의 G5 셀에 사번을 입력한다고 하겠습니다. 예를 들어 G5에 24003을 입력하면 H5에는 이름, I5에는 기본급, J5에는 식대가 자동으로 표시되게 만들 수 있습니다.
먼저 H5 셀에 이름을 가져오는 수식을 입력합니다. 기준표 범위는 A5:E10이고, 사번은 이 범위의 첫 번째 열인 A열에 있습니다. 이름은 두 번째 열인 B열이므로 열 번호는 2입니다.
=VLOOKUP(G5,$A$5:$E$10,2,FALSE)
I5 셀에는 기본급을 가져오는 수식을 입력합니다. 기본급은 A:E 범위에서 4번째 열인 D열에 있으므로 열 번호를 4로 씁니다.
=VLOOKUP(G5,$A$5:$E$10,4,FALSE)
J5 셀에는 식대를 가져오는 수식을 입력합니다. 식대는 A:E 범위에서 5번째 열인 E열입니다.
=VLOOKUP(G5,$A$5:$E$10,5,FALSE)
여기서 $A$5:$E$10처럼 달러 표시가 붙은 부분은 범위 고정입니다. H5 수식을 아래로 복사할 때 기준표 범위가 A6:E11, A7:E12처럼 밀리지 않게 잡아주는 역할입니다. 수식을 아래로 채울 예정이라면 기준표 범위는 꼭 고정하는 것이 좋습니다.
수식이 안 맞을 때 먼저 보는 체크리스트
VLOOKUP이 틀리거나 #N/A가 뜰 때는 수식을 무작정 다시 쓰기보다 아래 항목을 순서대로 보는 편이 빠릅니다. 특히 초보자는 열 번호와 범위 시작 열에서 많이 헷갈립니다.
| 확인할 것 | 왜 중요한가요? | 예시 기준 |
|---|---|---|
| 찾을 값 | 중복 없는 값이어야 합니다 | 이름보다 사번 |
| 범위 첫 열 | VLOOKUP은 범위의 첫 열에서만 찾습니다 | $A$5:$E$10의 첫 열은 A열 |
| 열 번호 | 시트 전체 열 번호가 아니라 선택 범위 안의 순서입니다 | A:E에서 D열은 4번째 |
| FALSE | 정확히 같은 값만 찾게 합니다 | 사번 찾기는 FALSE 사용 |
| 범위 고정 | 아래로 복사해도 기준표가 밀리지 않습니다 | $A$5:$E$10 |
#N/A 대신 빈칸으로 보이게 하고 싶다면?
G열 사번이 아직 비어 있거나, 기준표에 없는 사번을 입력하면 VLOOKUP은 #N/A 오류를 표시합니다. 오류 자체는 “찾을 값이 없다”는 뜻이라 나쁜 것은 아니지만, 보고서에서는 지저분해 보일 수 있습니다.
이럴 때는 IFERROR를 감싸면 됩니다. H5 셀에 이름을 가져오는 수식을 아래처럼 바꿔보세요.
=IFERROR(VLOOKUP(G5,$A$5:$E$10,2,FALSE),"")
I5 기본급도 같은 방식으로 바꿀 수 있습니다.
=IFERROR(VLOOKUP(G5,$A$5:$E$10,4,FALSE),"")
마지막의 ""는 오류가 나면 빈칸으로 보이라는 뜻입니다. 만약 확인하기 쉽게 문구를 띄우고 싶다면 "사번확인"처럼 바꿔도 됩니다.
=IFERROR(VLOOKUP(G5,$A$5:$E$10,4,FALSE),"사번확인")
사번을 입력했는데도 못 찾는다면 숫자와 텍스트를 확인하세요
실무 파일에서는 사번이 겉보기에는 24003으로 같아 보여도 한쪽은 숫자, 한쪽은 텍스트인 경우가 있습니다. 특히 다른 시스템에서 내려받은 파일은 사번 앞에 보이지 않는 공백이 있거나, 셀 서식이 텍스트로 되어 있는 일이 많습니다.
이럴 때는 기준표 A열의 사번과 지급대상표 G열의 사번을 같은 방식으로 맞춰야 합니다. 사번이 숫자로 관리되는 회사라면 두 열 모두 숫자로 맞추고, 앞자리 0이 필요한 사번이라면 처음부터 텍스트로 통일하는 것이 안전합니다.
셀 왼쪽 위에 초록색 삼각형이 보이고 “숫자가 텍스트로 저장됨” 같은 안내가 뜬다면, 해당 열의 데이터 형식을 먼저 확인해보세요. VLOOKUP 수식이 틀린 것이 아니라 값의 종류가 달라서 못 찾는 경우가 꽤 많습니다.
XLOOKUP을 쓸 수 있다면 더 읽기 쉬운 수식도 가능합니다
Microsoft 365나 Excel 2021 이후 버전에서는 XLOOKUP을 사용할 수 있습니다. VLOOKUP보다 열 번호를 세지 않아도 되어 초보자에게 오히려 이해하기 쉬울 때가 있습니다.
예를 들어 G5의 사번을 A5:A10에서 찾고, B5:B10의 이름을 가져오려면 H5에 아래 수식을 입력합니다.
=XLOOKUP(G5,$A$5:$A$10,$B$5:$B$10,"사번확인")
기본급은 I5에 이렇게 입력합니다.
=XLOOKUP(G5,$A$5:$A$10,$D$5:$D$10,"사번확인")
식대는 J5에 이렇게 입력합니다.
=XLOOKUP(G5,$A$5:$A$10,$E$5:$E$10,"사번확인")
다만 회사 파일이 여러 사람에게 공유되고, 사용자의 엑셀 버전이 제각각이라면 VLOOKUP이 더 무난할 수 있습니다. 버전 차이로 수식이 열리지 않는 일을 피하려면, 공유용 파일에서는 VLOOKUP을 쓰는 편이 안전한 경우도 많습니다.
내 파일에 적용할 때 바꿔야 하는 부분
예시 수식을 그대로 복사하면 내 파일과 범위가 다를 수 있습니다. 그래서 수식에서 어디를 바꿔야 하는지 꼭 알고 있어야 합니다.
| 수식 부분 | 뜻 | 내 파일에서 바꿀 내용 |
|---|---|---|
| G5 | 찾을 사번이 있는 셀 | 사번 입력 셀 주소 |
| $A$5:$E$10 | 직원 기준표 전체 범위 | 내 기준표 시작행과 마지막행 |
| 2, 4, 5 | 가져올 열의 순서 | 이름, 기본급, 식대가 몇 번째 열인지 |
| FALSE | 정확히 일치하는 값 찾기 | 사번·코드 찾기는 보통 그대로 사용 |
특히 열 번호는 시트의 B열, D열 같은 실제 열 문자가 아니라 선택한 범위 안에서 몇 번째인지 세야 합니다. 예를 들어 범위가 B5:E10이면 B열이 1번째, C열이 2번째, D열이 3번째입니다. 이 부분을 헷갈려서 값이 한 칸씩 밀려 들어가는 경우가 많습니다.
적용 전에 확인할 것
이름, 상품명, 거래처명은 사람이 보기에는 편하지만 중복될 수 있습니다. VLOOKUP 값이 틀린 것처럼 보일 때는 먼저 “내가 찾는 기준값이 정말 하나뿐인가?”를 확인해보세요.
급여표라면 사번, 주문표라면 주문번호, 상품표라면 상품코드처럼 중복되지 않는 열을 기준으로 잡는 것이 좋습니다. 그리고 기준표 범위의 첫 번째 열에 그 기준값이 오도록 배치하면 VLOOKUP 수식이 훨씬 단순해집니다.
오늘 예시처럼 G5에 사번을 입력하고 H5:J5에 결과를 가져오는 구조를 만들어두면, 아래 행으로 복사해서 여러 명의 급여 정보도 빠르게 채울 수 있습니다. 수식이 복잡하지 않아도 기준값만 제대로 잡으면 실무 오류를 꽤 많이 줄일 수 있습니다.