# Google Sheets 함수 마스터하기 (1/10): VLOOKUP 완벽 가이드 ## 시리즈 소개 Google Sheets는 단순한 스프레드시트 도구를 넘어 강력한 데이터 분석 플랫폼입니다. 이 시리즈에서는 업무 효율을 극대화하는 핵심 함수들을 단계별로 마스터해 보겠습니다. 오늘의 주제는 **VLOOKUP** - 가장 많이 사용되는 조회 함수입니다. --- ## VLOOKUP이란? VLOOKUP(Vertical Lookup)은 테이블의 첫 번째 열에서 값을 검색하고, 같은 행의 다른 열에서 데이터를 반환하는 함수입니다. ### 기본 문법 ``` =VLOOKUP(검색값, 범위, 열_인덱스, [정렬여부]) ``` | 인수 | 설명 | 예시 | |------|------|------| | 검색값 | 찾고자 하는 값 | "홍길동" 또는 A2 | | 범위 | 검색할 테이블 범위 | A2:D100 | | 열_인덱스 | 반환할 열 번호 (1부터 시작) | 3 | | 정렬여부 | FALSE=정확히 일치, TRUE=근사치 | FALSE | --- ## 실전 예제 1: 직원 정보 조회 ### 데이터 테이블 (A1:D5) | 사번 | 이름 | 부서 | 급여 | |------|------|------|------| | E001 | 김철수 | 개발팀 | 5000000 | | E002 | 이영희 | 마케팅 | 4500000 | | E003 | 박민수 | 인사팀 | 4200000 | | E004 | 정수진 | 개발팀 | 5500000 | ### 사번으로 이름 찾기 ``` =VLOOKUP("E002", A2:D5, 2, FALSE) ``` **결과**: 이영희 ### 사번으로 급여 찾기 ``` =VLOOKUP("E003", A2:D5, 4, FALSE) ``` **결과**: 4200000 --- ## 실전 예제 2: 제품 가격표 ### 가격 테이블 (A1:C6) | 제품코드 | 제품명 | 가격 | |----------|--------|------| | P001 | 노트북 | 1500000 | | P002 | 마우스 | 35000 | | P003 | 키보드 | 89000 | | P004 | 모니터 | 450000 | | P005 | 헤드셋 | 120000 | ### 주문서에서 가격 자동 조회 주문서의 F2 셀에 제품코드가 있다면: ``` =VLOOKUP(F2, $A$2:$C$6, 3, FALSE) ``` **팁**: `$` 기호를 사용한 절대 참조로 수식을 복사해도 범위가 변하지 않습니다. --- ## 실전 예제 3: 등급별 할인율 적용 ### 등급 테이블 | 등급 | 할인율 | |------|--------| | VIP | 20% | | Gold | 15% | | Silver | 10% | | Bronze | 5% | ### 고객 등급에 따른 할인율 조회 ``` =VLOOKUP(B2, 등급테이블!$A$2:$B$5, 2, FALSE) ``` --- ## VLOOKUP의 4번째 인수: TRUE vs FALSE ### FALSE (정확히 일치) ``` =VLOOKUP("E002", A2:D5, 2, FALSE) ``` - 검색값과 **정확히 일치**하는 값만 찾음 - 일치하는 값이 없으면 `#N/A` 에러 - **대부분의 경우 FALSE 사용 권장** ### TRUE (근사치 일치) ``` =VLOOKUP(85, A2:C5, 2, TRUE) ``` - 검색값보다 **작거나 같은 가장 큰 값** 반환 - 첫 번째 열이 **오름차순 정렬**되어 있어야 함 - **등급 산정, 구간별 세율** 등에 유용 ### TRUE 활용 예제: 점수별 등급 | 점수 | 등급 | |------|------| | 0 | F | | 60 | D | | 70 | C | | 80 | B | | 90 | A | ``` =VLOOKUP(85, A2:B6, 2, TRUE) ``` **결과**: B (85점은 80 이상 90 미만이므로) --- ## 에러 처리: IFERROR와 함께 사용 VLOOKUP에서 값을 찾지 못하면 `#N/A` 에러가 발생합니다. IFERROR로 깔끔하게 처리할 수 있습니다. ### 기본 에러 처리 ``` =IFERROR(VLOOKUP(A2, 데이터범위, 2, FALSE), "없음") ``` ### 0으로 대체 ``` =IFERROR(VLOOKUP(A2, 데이터범위, 2, FALSE), 0) ``` ### 빈 셀로 처리 ``` =IFERROR(VLOOKUP(A2, 데이터범위, 2, FALSE), "") ``` --- ## 자주 하는 실수와 해결법 ### 1. #N/A 에러 **원인**: 검색값이 테이블에 없음 **해결**: - 검색값의 앞뒤 공백 확인: `=TRIM(A2)` - 대소문자 확인 (VLOOKUP은 대소문자 구분 안 함) - 데이터 형식 확인 (숫자 vs 텍스트) ### 2. #REF! 에러 **원인**: 열_인덱스가 범위의 열 수보다 큼 **해결**: 범위를 확장하거나 열_인덱스 조정 ### 3. 잘못된 값 반환 **원인**: 4번째 인수를 생략하면 기본값 TRUE가 적용됨 **해결**: 정확한 일치를 원하면 반드시 `FALSE` 명시 ### 4. 첫 번째 열만 검색 가능 **원인**: VLOOKUP은 범위의 첫 번째 열에서만 검색 가능 **해결**: INDEX-MATCH 조합 사용 (4편에서 다룸) --- ## 실무 활용 팁 ### 1. 드롭다운과 연동 데이터 유효성 검사로 드롭다운을 만들고 VLOOKUP과 연동하면 강력한 조회 시스템을 만들 수 있습니다. ``` 셀 B2: 드롭다운 (제품 선택) 셀 C2: =VLOOKUP(B2, 제품테이블, 2, FALSE) // 가격 셀 D2: =VLOOKUP(B2, 제품테이블, 3, FALSE) // 재고 ``` ### 2. 다른 시트에서 조회 ``` =VLOOKUP(A2, '가격표'!$A$2:$C$100, 3, FALSE) ``` ### 3. 와일드카드 사용 부분 일치 검색에 `*` 와일드카드를 사용할 수 있습니다. ``` =VLOOKUP("김*", A2:D10, 2, FALSE) // "김"으로 시작하는 첫 번째 값 =VLOOKUP("*마케팅*", A2:D10, 2, FALSE) // "마케팅"을 포함하는 값 ``` --- ## VLOOKUP의 한계 1. **오른쪽에서 왼쪽으로 조회 불가**: 검색 열이 항상 첫 번째 열이어야 함 2. **열 삽입 시 문제**: 열_인덱스가 숫자이므로 열 추가/삭제 시 수식 수정 필요 3. **단일 조건만 가능**: 복수 조건 검색 불가 4. **성능**: 대용량 데이터에서 느릴 수 있음 이러한 한계는 INDEX-MATCH 또는 XLOOKUP으로 해결할 수 있습니다 (4편, 5편에서 상세히 다룸). --- ## 정리 | 상황 | 수식 | |------|------| | 기본 조회 | `=VLOOKUP(검색값, 범위, 열번호, FALSE)` | | 에러 처리 | `=IFERROR(VLOOKUP(...), "없음")` | | 다른 시트 | `=VLOOKUP(A2, '시트명'!범위, 열번호, FALSE)` | | 부분 일치 | `=VLOOKUP("*키워드*", 범위, 열번호, FALSE)` | | 구간 검색 | `=VLOOKUP(값, 정렬된범위, 열번호, TRUE)` | --- ## 다음 편 예고 **[2편: HLOOKUP & INDEX 함수]**에서는 가로 방향 조회와 INDEX 함수의 기본을 배웁니다. --- *이 글이 도움이 되셨다면 시리즈의 다른 글도 확인해 보세요!*