VLOOKUP은 엑셀에서 데이터를 찾을 때 가장 많이 쓰이는 함수입니다.
하지만 단순한 사용을 넘어가면 다양한 예외 상황이나 응용 방식이 등장하게 되죠.
오늘은 실무에서 마주치는 복잡한 상황을 중심으로 VLOOKUP을 완전히 마스터해보겠습니다.
✅ 예제 1: 여러 조건 중 첫 번째 조건만 조회됨
A | B | |
1 | 사번 | 이름 |
2 | 1001 | 김철수 |
3 | 1002 | 이지은 |
4 | 1002 | 송다현 |
=VLOOKUP(1002, A2:B4, 2, FALSE)
→ 결과: 이지은
VLOOKUP은 조건에 여러 값이 존재해도 첫 번째 일치값만 반환합니다.
동일 사번이 여러 개 있는 경우, 이후 값을 조회하고 싶다면 FILTER, INDEX, MATCH 조합을 고려해야 합니다 (중급 이상).
✅ 예제 2: col_index_num 오류 (열 번호 잘못 선택)
A | B | C | |
1 | 사번 | 이름 | 부서 |
2 | 1001 | 김철수 | 인사팀 |
3 | 1002 | 이지은 | 마케팅팀 |
=VLOOKUP(1002, A2:C3, 4, FALSE)
→ 결과: #REF!
col_index_num은 C열까지밖에 없기 때문에 최대 3까지만 가능.
범위 안에서 유효한 열 번호인지 꼭 확인해야 합니다.
✅ 예제 3: 열 번호를 MATCH로 동적 제어
A | B | C | |
1 | 사번 | 이름 | 부서 |
2 | 1001 | 김철수 | 인사팀 |
3 | 1002 | 이지은 | 마케팅팀 |
셀에 '부서'라는 글자를 입력하면 자동으로 그 열을 참조하도록 만들 수 있습니다.
수식:
=VLOOKUP(1002, A1:C3, MATCH("부서", A1:C1, 0), FALSE)
→ 결과: 마케팅팀
MATCH("부서", A1:C1, 0)는 "부서"가 몇 번째 열인지 자동으로 계산해줍니다.
구조가 바뀌어도 자동 대응이 가능해지죠.
✅ 예제 4: 찾는 값이 없을 때 공백 또는 메시지 표시
A | B | |
1 | 코드 | 제품명 |
2 | A001 | 키보드 |
3 | A002 | 마우스 |
찾는 코드가 없을 때 오류가 뜨는 대신 '정보 없음'으로 표시하려면:
=IFERROR(VLOOKUP("A003", A2:B3, 2, FALSE), "정보 없음")
→ 결과: "정보 없음"
실무에서 필수로 사용되는 패턴입니다.
✅ 예제 5: 시트 간 조회
Sheet1 (입력 시트)
A | |
1 | A002 |
Sheet2 (데이터 시트)
A | B | |
1 | 코드 | 제품명 |
2 | A001 | 키보드 |
3 | A002 | 마우스 |
Sheet1의 A1 셀에 입력한 코드를 기반으로 Sheet2에서 제품명을 찾기:
=VLOOKUP(A1, Sheet2!A2:B3, 2, FALSE)
→ Sheet2의 값도 동일하게 참조할 수 있습니다.
✅ 예제 6: 테이블 범위를 이름으로 정의하고 사용하기
A | B | |
1 | 사번 | 이름 |
2 | 1001 | 김철수 |
3 | 1002 | 이지은 |
범위 A2:B3를 선택한 후 이름 관리자에서 이름을 사원표로 지정하면
수식을 더 읽기 쉽게 만들 수 있습니다.
=VLOOKUP(1002, 사원표, 2, FALSE)
→ 유지보수에 매우 유리합니다.
🔹 테이블 이름 지정하는 방법
1. 범위 A2:B3 선택 후 이름상자에 입력 후 ENTER
2. 범위 A2:B3 선택 후 이름 관리자를 통해 지정
✅ 예제 7: 테이블 구조가 오른쪽으로 확장되는 경우
A | B | C | D | |
1 | 사번 | 이름 | 부서 | 직급 |
2 | 1001 | 김철수 | 인사팀 | 대리 |
3 | 1002 | 이지은 | 마케팅팀 | 과장 |
'직급' 열을 가져오고 싶지만 표가 계속 확장될 수 있다면,
열 번호를 직접 쓰기보다 MATCH("직급", A1:D1, 0)으로 처리:
=VLOOKUP(1002, A2:D3, MATCH("직급", A1:D1, 0), FALSE)
→ 결과: 과장
※ 확장 될 수 있는 항목의 수만큼 MATCH 함수 범위 지정
✅ VLOOKUP의 한계와 대안
왼쪽 열의 값을 참조해야 함 | INDEX + MATCH 조합 사용 |
열 번호가 바뀔 가능성이 있음 | MATCH()로 동적 지정 |
조건이 여러 개인 경우 (복합 조건) | FILTER, INDEX 등으로 대체 |
첫 값 외의 결과를 조회해야 하는 경우 | FILTER, XLOOKUP 권장 |
'공부 합시다! > 일 잘하는 비결, 엑셀로 능률 높이기' 카테고리의 다른 글
엑셀_INDEX 함수로 정확한 위치의 값 가져오기 (1) | 2025.05.05 |
---|---|
엑셀_HLOOKUP 함수로 가로 방향 값 찾기 (1) | 2025.05.04 |
엑셀_VLOOKUP 함수로 원하는 값 찾기 (0) | 2025.05.02 |
엑셀_IFERROR 함수로 오류 처리 깔끔하게 하기 (0) | 2025.05.01 |
엑셀_TODAY, NOW 함수로 현재 날짜·시간 자동 입력하기 (0) | 2025.04.30 |