엑셀 함수/VLOOKUP/특정 값을 기준으로 원하는 데이터를 찾을 때
VLOOKUP 함수란?
엑셀의 VLOOKUP 함수는 세로(Vertical) 방향으로 데이터를 검색하여 원하는 값을 찾아주는 함수입니다. 특정 값(검색 값)을 기준으로 표의 첫 번째 열에서 해당 값을 찾고, 같은 행의 지정된 열에서 값을 반환합니다.
1. VLOOKUP 함수 사용 시점
다음과 같은 상황에서 VLOOKUP을 사용합니다.
✅ 데이터 목록에서 특정 값을 찾아야 할 때
✅ 각종 코드(예: 제품 코드, 사원 번호 등)로 관련 정보를 가져와야 할 때
✅ 두 개의 데이터 표에서 공통된 값을 기준으로 데이터를 연결해야 할 때
✅ 가격표, 성적표, 고객 목록 등에서 특정 정보를 조회해야 할 때
2. VLOOKUP 함수 문법
=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])
인수설명
lookup_value | 찾고자 하는 값 (검색 값) |
table_array | 검색할 범위 (데이터가 있는 표) |
col_index_num | 검색 값이 있는 행에서 가져올 열 번호 (1부터 시작) |
[range_lookup] | TRUE(1) = 근사값 검색, FALSE(0) = 정확한 값 검색 (기본값은 TRUE) |
3. VLOOKUP 함수 예제
예제 1: 제품 코드로 제품명 찾기
다음과 같은 제품 목록이 있다고 가정합니다.
제품코드제품명가격
A001 | 노트북 | 1,500,000 |
A002 | 키보드 | 50,000 |
A003 | 마우스 | 30,000 |
A004 | 모니터 | 300,000 |
이제 A003 제품 코드를 입력하면 해당 제품명을 찾는 VLOOKUP 함수를 작성해 보겠습니다.
=VLOOKUP("A003", A2:C5, 2, FALSE)
동작 방식
- "A003"(검색 값)을 A2:A5(첫 번째 열)에서 찾음
- 찾은 행에서 두 번째 열(제품명)의 값을 반환 → "마우스"
💡 [range_lookup]을 FALSE로 설정하여 정확한 값만 검색하도록 설정
예제 2: 셀에 입력된 제품 코드로 제품명 찾기
제품 코드를 E2 셀에 입력하면 자동으로 제품명을 가져오도록 설정할 수도 있습니다.
=VLOOKUP(E2, A2:C5, 2, FALSE)
✅ E2에 A002를 입력하면 결과는 "키보드"
✅ E2에 A004를 입력하면 결과는 "모니터"
예제 3: 가격 정보 가져오기
제품 코드(E2)를 입력하면 해당 제품의 가격을 가져오고 싶다면?
=VLOOKUP(E2, A2:C5, 3, FALSE)
✅ E2에 A001을 입력하면 결과는 1,500,000
✅ E2에 A004를 입력하면 결과는 300,000
4. VLOOKUP 함수 사용 시 주의할 점
1) 검색 값이 첫 번째 열에 있어야 함
VLOOKUP 함수는 검색 범위(table_array)의 첫 번째 열에서만 검색이 가능합니다.
즉, lookup_value는 table_array의 첫 번째 열에 위치해야 합니다.
2) col_index_num(열 번호)는 1부터 시작
- col_index_num은 table_array의 첫 번째 열을 기준으로 1부터 시작합니다.
- 예를 들어, A2:C5 범위에서 col_index_num=2는 B 열, col_index_num=3은 C 열을 의미합니다.
3) 정확한 값 검색 시 FALSE 사용
- range_lookup을 TRUE(또는 생략)하면 근사값 검색이 수행됩니다.
- 정확한 값을 찾으려면 반드시 FALSE를 사용해야 합니다.
4) 데이터가 정렬되지 않으면 FALSE 필수
- range_lookup=TRUE인 경우 첫 번째 열은 반드시 오름차순 정렬되어 있어야 합니다.
- 정렬이 안 된 경우 FALSE를 사용하여 정확한 일치를 찾도록 설정해야 합니다.
5) #N/A 오류 발생 원인
VLOOKUP을 사용하다 보면 #N/A 오류가 발생할 수 있습니다.
주요 원인은 다음과 같습니다.
- 검색 값이 표에 없음 → lookup_value가 존재하는지 확인
- 검색 범위(table_array)에 검색 값이 없음 → 범위 확인
- 첫 번째 열에 검색 값이 없음 → table_array의 첫 번째 열 확인
- col_index_num이 범위를 벗어남 → col_index_num이 table_array의 열 개수보다 크지 않은지 확인
💡 IFERROR 함수를 활용해 오류를 방지할 수 있음:
=IFERROR(VLOOKUP(E2, A2:C5, 2, FALSE), "찾을 수 없음")
✅ 검색 값이 없을 경우 "찾을 수 없음" 메시지를 표시
5. VLOOKUP 함수의 한계
- 왼쪽 방향 조회 불가
→ VLOOKUP은 항상 첫 번째 열에서 검색하므로, 검색 값이 오른쪽에 있다면 INDEX + MATCH 조합이 필요함. - 데이터 변경 시 오류 발생 가능
→ 열이 추가되거나 삭제되면 col_index_num이 바뀌어 오류 발생 가능. - 여러 열에서 동시에 검색 불가
→ XLOOKUP(엑셀 2019 이상) 또는 INDEX + MATCH 함수 조합을 고려.
6. VLOOKUP 대신 사용할 수 있는 함수
1) INDEX + MATCH 조합
INDEX와 MATCH를 조합하면 VLOOKUP보다 더 유연하게 데이터를 검색할 수 있습니다.
=INDEX(C2:C5, MATCH(E2, A2:A5, 0))
✅ VLOOKUP과 달리 왼쪽 방향 검색 가능
✅ col_index_num을 지정할 필요 없음
2) XLOOKUP (엑셀 2019 이상)
엑셀 최신 버전에서는 XLOOKUP을 사용하면 더욱 강력한 기능을 사용할 수 있습니다.
=XLOOKUP(E2, A2:A5, C2:C5, "찾을 수 없음")
✅ VLOOKUP보다 빠르고 직관적인 방식
✅ #N/A 오류를 방지하는 기본 옵션 제공
✅ 왼쪽 방향 검색 가능
7. 결론
- VLOOKUP은 특정 값을 기준으로 표에서 원하는 데이터를 찾을 때 유용한 함수.
- table_array의 첫 번째 열을 기준으로 검색해야 하며, 오른쪽 방향으로만 검색 가능.
- 정확한 일치를 찾으려면 FALSE를 사용해야 함.
- INDEX + MATCH 또는 XLOOKUP을 사용하면 VLOOKUP의 단점을 보완할 수 있음.
📌 VLOOKUP을 잘 활용하면 데이터 검색 및 자동화 작업을 더욱 효율적으로 처리할 수 있습니다! 🚀