구글시트 VLOOKUP은 기준값을 세로 방향으로 찾아 같은 행에 있는 다른 열의 값을 가져오는 함수입니다.
예를 들어 상품코드를 입력하면 상품명을 자동으로 표시하거나, 사번을 기준으로 직원 이름·부서·급여 정보를 불러오는 식으로 사용할 수 있습니다.
Google은 VLOOKUP을 범위의 첫 번째 열에서 검색 키를 찾고, 같은 행의 지정된 열 값을 반환하는 함수로 설명합니다.
기본 구조는 다음과 같습니다.
=VLOOKUP(search_key, range, index, [is_sorted])
처음 보면 복잡해 보이지만 실제로는 무엇을 찾을지 → 어디에서 찾을지 → 몇 번째 열 값을 가져올지 → 정확히 일치할지 네 가지만 이해하면 됩니다.
1. 가장 기본적인 VLOOKUP 예시
아래와 같은 상품표가 있다고 가정해보겠습니다.
| A열 | B열 | C열 |
|---|---|---|
| 상품코드 | 상품명 | 가격 |
| A001 | 키보드 | 30000 |
| A002 | 마우스 | 15000 |
| A003 | 모니터 | 250000 |
그리고 E2 셀에 A002를 입력했을 때 가격을 자동으로 가져오고 싶다면 다음처럼 작성합니다.
=VLOOKUP(E2,A2:C4,3,FALSE)
결과는 15000이 됩니다.
이 수식을 나누면 다음과 같습니다.
| 부분 | 의미 |
E2 | 찾을 값 |
A2:C4 | 검색할 표 범위 |
3 | 범위에서 세 번째 열의 값을 반환 |
FALSE | 정확히 일치하는 값만 찾음 |
VLOOKUP은 지정한 범위의 첫 번째 열에서 검색값을 찾은 뒤, 같은 행에서 지정한 번호의 열 값을 반환합니다.
2. VLOOKUP에서 가장 중요한 조건: 찾을 값이 첫 번째 열에 있어야 한다
VLOOKUP에서 가장 많이 막히는 부분입니다.
예를 들어 범위를
B2:D100
으로 지정했다면 VLOOKUP은 B열에서만 검색값을 찾습니다.
검색하려는 상품코드가 A열에 있는데 범위를 B열부터 잡으면 정상적으로 찾을 수 없습니다.
Google 공식 도움말도 오류 없이 값을 찾으려면 검색 키가 range의 첫 번째 열에 있어야 한다고 설명합니다.
따라서 이런 구조라면
| A열 | B열 | C열 |
| 사번 | 이름 | 부서 |
사번으로 부서를 찾을 때 범위는
A:C
처럼 사번이 첫 열이 되도록 지정해야 합니다.
3. 세 번째 숫자 index는 무슨 뜻일까
VLOOKUP에서 세 번째 인수는 가져올 열의 번호입니다.
예를 들어 범위가
A2:D100
이라면 번호는 다음처럼 계산합니다.
- A열 = 1
- B열 = 2
- C열 = 3
- D열 = 4
따라서 A열의 사번을 기준으로 C열의 부서를 가져오고 싶다면
=VLOOKUP(F2,A2:D100,3,FALSE)
처럼 작성합니다.
중요한 점은 시트 전체 열 번호가 아니라 지정한 범위 안에서 몇 번째 열인지 계산한다는 것입니다.
예를 들어 범위가 C:F라면
- C = 1
- D = 2
- E = 3
- F = 4
가 됩니다.
4. FALSE와 TRUE는 무엇이 다른가
VLOOKUP 마지막 인수에는 보통 FALSE 또는 TRUE를 입력합니다.
FALSE
FALSE는 검색값과 정확히 같은 값만 찾습니다.
예:
=VLOOKUP(A2,D2:F100,2,FALSE)
사번, 상품코드, 이메일, 주문번호처럼 정확히 같은 값을 찾아야 하는 경우에는 대부분 FALSE를 사용하는 편이 안전합니다.
TRUE
TRUE는 정확히 같은 값이 없을 경우 근사값을 찾는 방식으로 사용할 수 있습니다.
구간별 등급표나 점수표처럼 특정 범위에 따라 결과를 나눌 때 사용할 수 있습니다.
다만 근사 일치를 사용하는 경우에는 데이터 정렬 조건 등을 함께 고려해야 하므로 일반적인 업무 조회에서는 FALSE가 훨씬 자주 사용됩니다.
Google 공식 도움말 역시 VLOOKUP의 정렬 여부에 따라 정확한 일치 또는 근사 검색 방식이 달라질 수 있음을 설명합니다.
5. 실무에서 가장 많이 쓰는 정확히 일치 수식
사번으로 이름을 찾는다고 가정해보겠습니다.
원본 데이터:
| A열 | B열 | C열 |
| 사번 | 이름 | 부서 |
| 1001 | 김민수 | 영업팀 |
| 1002 | 이서연 | 마케팅팀 |
| 1003 | 박준호 | 개발팀 |
E2 셀에 1002가 들어 있다면 이름을 가져오는 수식은
=VLOOKUP(E2,A2:C4,2,FALSE)
입니다.
부서를 가져오려면
=VLOOKUP(E2,A2:C4,3,FALSE)
로 바꾸면 됩니다.
6. 수식을 아래로 복사할 때 범위가 움직이는 문제
VLOOKUP 수식을 여러 행에 복사하다 보면 검색 범위가 같이 내려가면서 오류가 생길 수 있습니다.
예를 들어 처음 수식이
=VLOOKUP(E2,A2:C100,3,FALSE)
인데 아래로 복사하면
A3:C101
처럼 범위도 함께 이동할 수 있습니다.
이럴 때는 검색 범위를 절대참조로 고정합니다.
=VLOOKUP(E2,$A$2:$C$100,3,FALSE)
이렇게 하면 수식을 아래로 복사해도 검색 범위는 그대로 유지됩니다.
반면 찾을 값인 E2는 아래로 복사할 때 E3, E4로 바뀌어야 하므로 고정하지 않는 것이 일반적입니다.
7. #N/A 오류가 뜨는 가장 흔한 이유
VLOOKUP을 사용하다 보면 가장 자주 만나는 오류가 #N/A입니다.
이는 보통 검색값을 범위에서 찾지 못했다는 뜻입니다.
다음 항목부터 확인해보세요.
- 검색값이 실제로 존재하는지
- 범위 첫 번째 열에 검색값이 있는지
- 숫자와 텍스트 형식이 섞여 있지 않은지
- 앞뒤 공백이 들어 있지 않은지
- FALSE가 필요한 상황에서 근사 검색을 사용하지 않았는지
- 범위가 잘못 지정되지 않았는지
예를 들어 화면에는 둘 다 1001로 보이더라도 한쪽은 숫자이고 다른 쪽은 텍스트로 저장되어 있으면 일치하지 않을 수 있습니다.
8. 앞뒤 공백 때문에 값이 안 찾아질 수도 있다
다른 시스템에서 복사한 데이터에는 눈에 보이지 않는 공백이 들어 있는 경우가 있습니다.
예를 들어
A001
처럼 보이지만 실제로는
A001
처럼 뒤에 공백이 붙어 있을 수 있습니다.
이런 경우에는 TRIM 함수를 이용해 불필요한 공백을 정리할 수 있습니다.
예:
=TRIM(A2)
데이터가 외부 시스템에서 들어온 경우라면 형식과 공백을 함께 확인하는 것이 좋습니다.
9. #REF! 오류가 뜨는 경우
VLOOKUP의 세 번째 열 번호가 범위보다 크면 #REF! 오류가 나타날 수 있습니다.
예를 들어 범위가
A:C
라면 총 3개의 열만 있습니다.
그런데
=VLOOKUP(E2,A:C,4,FALSE)
처럼 네 번째 열을 가져오도록 작성하면 반환할 열이 없기 때문에 오류가 발생합니다.
따라서 #REF!가 나타난다면 먼저
- 범위에 열이 몇 개 있는지
- index 값이 그 범위를 벗어나지 않았는지
확인하세요.
10. 값이 있는데 엉뚱한 결과가 나오는 경우
값을 찾긴 했지만 결과가 이상하다면 마지막 인수를 확인하세요.
정확한 일치를 원하는데 TRUE를 사용했거나 마지막 인수를 생략하면 예상과 다른 값이 반환될 수 있습니다.
예를 들어 상품코드처럼 정확한 일치가 필요한 경우에는 다음처럼 작성하는 편이 좋습니다.
=VLOOKUP(A2,D:F,2,FALSE)
처음 VLOOKUP을 배울 때는 특별한 이유가 없다면 FALSE를 기본으로 사용한다고 생각하면 이해하기 쉽습니다.
11. 다른 시트의 데이터도 찾을 수 있다
같은 구글 스프레드시트 파일 안에 여러 탭이 있다면 다른 시트의 표를 VLOOKUP 범위로 사용할 수 있습니다.
예를 들어 원본 시트 이름이 상품목록이라면
=VLOOKUP(A2,상품목록!A:C,3,FALSE)
처럼 작성할 수 있습니다.
시트 이름에 공백이 있다면
=VLOOKUP(A2,'상품 목록'!A:C,3,FALSE)
처럼 작은따옴표를 사용하는 방식이 안전합니다.
12. 다른 구글시트 파일의 데이터도 찾을 수 있을까
가능합니다.
다만 VLOOKUP만으로 다른 스프레드시트 파일을 직접 읽는 것이 아니라 IMPORTRANGE와 함께 사용하는 방식이 일반적입니다.
예를 들면 다음과 같습니다.
=VLOOKUP(A2,IMPORTRANGE("원본URL","상품목록!A:C"),3,FALSE)
이 방식에서는 먼저 두 파일 사이에 IMPORTRANGE 접근 권한이 허용되어 있어야 합니다.
바로 앞에서 작성한 구글시트 IMPORTRANGE 사용법을 익혀두면 이런 구조를 이해하기 훨씬 쉽습니다.
13. 오류 대신 빈칸을 표시하고 싶다면
VLOOKUP에서 값을 찾지 못하면 #N/A가 그대로 표시됩니다.
업무용 표에서는 이 오류가 보기 불편할 수 있습니다.
이럴 때는 IFNA와 함께 사용할 수 있습니다.
=IFNA(VLOOKUP(A2,D:F,2,FALSE),"")
검색값을 찾지 못하면 빈칸을 표시합니다.
또는 메시지를 넣을 수도 있습니다.
=IFNA(VLOOKUP(A2,D:F,2,FALSE),"검색 결과 없음")
다만 오류를 무조건 숨기기 전에 먼저 VLOOKUP 자체가 정상적으로 작동하는지 확인하는 것이 좋습니다.
14. 열을 추가하면 VLOOKUP이 꼬이는 이유
VLOOKUP은 반환할 열을 숫자로 지정합니다.
예를 들어
=VLOOKUP(A2,D:G,3,FALSE)
에서 3은 지정 범위에서 세 번째 열을 뜻합니다.
그런데 중간에 새 열을 추가하거나 표 구조를 크게 바꾸면 원하는 데이터 위치가 달라질 수 있습니다.
그래서 자주 변경되는 복잡한 데이터에서는 VLOOKUP보다 INDEX + MATCH 또는 다른 조회 함수를 검토하기도 합니다.
하지만 기준값이 표의 첫 번째 열에 있고 오른쪽 값을 가져오는 일반적인 업무라면 VLOOKUP이 여전히 이해하기 쉽고 빠르게 사용할 수 있는 함수입니다.
15. VLOOKUP이 느려질 때 범위를 너무 크게 잡지 않기
작은 시트에서는 크게 체감되지 않지만 데이터가 많아지면 불필요하게 넓은 범위를 반복해서 검색하는 것이 계산량을 늘릴 수 있습니다.
Google은 조회 함수 성능을 개선할 때 불필요한 빈 셀까지 계산하지 않도록 범위를 적절하게 제한하는 것을 권장합니다.
예를 들어 실제 데이터가 2행부터 500행까지만 있다면
A:C
전체 열을 계속 참조하기보다
A2:C500
처럼 실제 사용하는 범위를 지정하는 방법을 고려할 수 있습니다.
특히 VLOOKUP 수식이 수천 개 들어 있는 시트에서는 차이가 커질 수 있습니다.
16. VLOOKUP과 IMPORTRANGE는 어떻게 다를까
두 함수는 역할 자체가 다릅니다.
| 함수 | 역할 |
| VLOOKUP | 표에서 특정 값을 찾아 같은 행의 다른 값을 반환 |
| IMPORTRANGE | 다른 구글시트 파일의 범위를 가져옴 |
따라서
다른 파일의 데이터를 가져오는 것이 목적이라면 IMPORTRANGE,
가져온 데이터에서 특정 값을 찾아오는 것이 목적이라면 VLOOKUP을 사용합니다.
필요하면 두 함수를 함께 사용할 수 있습니다.
자주 사용하는 VLOOKUP 수식 정리
정확히 일치하는 값 찾기
=VLOOKUP(A2,D2:F100,2,FALSE)
범위를 고정해서 아래로 복사하기
=VLOOKUP(A2,$D$2:$F$100,2,FALSE)
다른 탭에서 값 찾기
=VLOOKUP(A2,상품목록!A:C,3,FALSE)
값이 없으면 빈칸 표시하기
=IFNA(VLOOKUP(A2,D:F,2,FALSE),"")
다른 구글시트 파일에서 찾기
=VLOOKUP(A2,IMPORTRANGE("원본URL","상품목록!A:C"),3,FALSE)
VLOOKUP 사용할 때 확인할 순서
수식이 작동하지 않는다면 아래 순서대로 확인하면 됩니다.
- 찾을 값이 검색 범위의 첫 번째 열에 있는지 확인
- 검색 범위가 정확한지 확인
- 가져올 열 번호가 올바른지 확인
- 정확한 일치라면 FALSE 사용
- 숫자와 텍스트 형식 확인
- 앞뒤 공백 확인
- 수식 복사 시 범위 절대참조 확인
- 다른 파일이라면 IMPORTRANGE 권한 확인
VLOOKUP은 처음에는 인수가 많아 어려워 보이지만 실제로는 “찾을 값 → 표 범위 → 가져올 열 → 정확히 일치 여부” 네 단계만 이해하면 대부분의 기본 조회 작업에 사용할 수 있습니다.
특히 상품코드, 사번, 주문번호처럼 고유한 값을 기준으로 오른쪽 정보를 자동으로 불러오는 작업에서 가장 먼저 익혀두기 좋은 함수입니다.
