엑셀 vlookup false로 값 정확히 찾는 방법

얼마 전 거래처별 단가표를 대조하는데, 같은 상품 코드인데도 엉뚱한 가격이 들어간 파일을 받았습니다. 수식을 보니 VLOOKUP의 마지막 인수가 비어 있더군요. 상품 코드처럼 한 글자만 달라도 다른 값으로 취급해야 할 때는 엑셀 vlookup false를 넣는 게 안전합니다.
FALSE를 넣으면 무엇이 달라질까
VLOOKUP은 표의 맨 왼쪽 열에서 값을 찾고, 같은 행의 다른 열에 있는 값을 가져옵니다. 마지막 인수에 FALSE를 쓰면 찾는 값과 정확히 일치하는 항목만 반환합니다. 코드가 A102라면 A102를 찾고, 없으면 #N/A 오류를 표시합니다.
반대로 마지막 인수를 생략하거나 TRUE로 두면 근사값을 찾습니다. 이 방식은 첫 번째 열이 오름차순으로 정렬되어 있어야 하며, 정확한 항목이 없을 때 다른 행의 값을 가져올 수 있습니다. 점수 구간별 등급처럼 범위를 찾는 작업에는 쓸 만하지만, 사번·주문번호·상품 코드 대조에는 FALSE가 알맞습니다.
상품 코드로 단가를 가져오는 수식
예를 들어 현재 시트의 A2에 상품 코드가 있고, 단가표 시트의 A열에는 상품 코드, B열에는 상품명, C열에는 단가가 있다고 해볼게요. B2에 단가를 표시하려면 =VLOOKUP(A2,단가표!$A$2:$C$100,3,FALSE)를 입력합니다.
- A2는 찾을 상품 코드입니다.
- 단가표!$A$2:$C$100은 코드를 찾을 표 범위입니다. 달러 기호를 넣으면 수식을 아래로 복사해도 범위가 움직이지 않습니다.
- 3은 선택한 범위의 세 번째 열인 단가를 뜻합니다. 시트 전체의 열 번호가 아닙니다.
- FALSE는 코드가 완전히 같은 행만 찾도록 지정합니다.
수식을 입력한 뒤 B2의 채우기 핸들을 아래로 끌면 각 행의 코드를 기준으로 단가가 채워집니다. 처음부터 수백 행에 적용하기 전에 두세 개의 코드를 원본 표와 대조해 보는 편이 좋습니다. 특히 열 번호를 2로 넣으면 단가 대신 상품명이 표시되니 여기서 자주 헷갈립니다.
#N/A가 뜰 때 먼저 확인할 것
FALSE를 썼는데 #N/A가 나오면 찾는 값이 없거나, 눈에는 같아 보여도 데이터 형식이 다를 가능성이 큽니다. 예를 들어 한쪽 셀의 00123은 텍스트이고 다른 쪽의 123은 숫자라면 같은 상품 코드로 취급되지 않습니다. 앞자리 0이 의미 있는 코드라면 두 열을 모두 텍스트 형식으로 관리하는 편이 낫습니다. 이미 숫자로 바뀌면서 0이 사라졌다면 셀 서식만 바꿔도 원래 코드가 복원되지는 않습니다.
복사해 온 목록에서는 코드 앞뒤의 공백도 흔합니다. 새 열에 =TRIM(A2)를 넣어 일반 공백을 제거한 뒤 결과를 비교해 보세요. 다만 웹이나 다른 시스템에서 붙여 넣은 데이터에는 TRIM으로 지워지지 않는 특수 공백이 섞일 수 있습니다. 이럴 때는 =TRIM(SUBSTITUTE(A2,CHAR(160)," "))처럼 특수 공백을 일반 공백으로 바꾼 다음 제거할 수 있습니다. 수식으로 만든 보조 열을 조회 범위의 맨 왼쪽에 놓아야 그 값을 기준으로 찾을 수 있습니다.
범위 선택도 확인해야 합니다. VLOOKUP은 지정한 범위의 첫 번째 열에서만 검색합니다. 상품 코드가 단가표의 B열에 있는데 범위를 A열부터 잡았다면 코드를 찾지 못합니다. 범위를 B열부터 다시 선택하고, 가져올 열 번호도 그 범위를 기준으로 세면 됩니다.
결과가 나와도 확인해야 하는 경우
정확히 일치하는 코드가 여러 행에 있다면 VLOOKUP은 위에서 처음 만난 행의 값을 가져옵니다. 같은 코드에 날짜별 단가가 쌓인 표라면 FALSE만으로 최신 가격을 고를 수 없습니다. 이 경우 코드와 적용일을 함께 구분할 수 있는 기준을 만들거나, 원본 표에서 필요한 기간만 먼저 골라야 합니다.
찾지 못한 항목에 오류 표시 대신 안내 문구를 넣고 싶다면 =IFNA(VLOOKUP(A2,단가표!$A$2:$C$100,3,FALSE),"코드 확인")처럼 감쌀 수 있습니다. 다만 처음부터 오류를 숨기면 누락된 코드를 놓치기 쉽습니다. 저는 먼저 #N/A가 난 행을 확인하고, 코드와 표 범위를 바로잡은 뒤에 안내 문구를 넣습니다. 단가처럼 틀린 값이 조용히 들어가는 것보다, 찾지 못했다고 분명히 알려주는 편이 훨씬 낫더라고요.
