카테고리 없음

엑셀 함수/VLOOKUP/특정 값을 기준으로 원하는 데이터를 찾을 때

K-직장인 S 2025. 3. 18. 12:30

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 함수의 한계

  1. 왼쪽 방향 조회 불가
     VLOOKUP은 항상 첫 번째 열에서 검색하므로, 검색 값이 오른쪽에 있다면 INDEX + MATCH 조합이 필요함.
  2. 데이터 변경 시 오류 발생 가능
    → 열이 추가되거나 삭제되면 col_index_num이 바뀌어 오류 발생 가능.
  3. 여러 열에서 동시에 검색 불가
     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을 잘 활용하면 데이터 검색 및 자동화 작업을 더욱 효율적으로 처리할 수 있습니다! 🚀