카테고리 없음

엑셀함수/XLOOKUP/특정 값을 기준으로 데이터를 찾을 때 더 강력하고 유용한 함수

K-직장인 S 2025. 3. 18. 14:19

1. XLOOKUP 함수란?

XLOOKUP은 특정 값을 검색 범위에서 찾아서, 해당 값이 있는 위치의 다른 열 또는 행의 값을 반환하는 함수입니다.
기존 VLOOKUP과 HLOOKUP의 기능을 통합하고, INDEX + MATCH 조합보다 쉽게 사용할 수 있습니다.

✅ XLOOKUP을 사용해야 하는 경우

🔹 VLOOKUP처럼 특정 키 값으로 데이터를 찾고 싶을 때
🔹 VLOOKUP과 달리 왼쪽 방향 검색도 필요할 때
🔹 VLOOKUP에서 열이 추가되거나 삭제될 때 발생하는 문제를 피하고 싶을 때
🔹 #N/A 오류를 방지하고 기본값을 설정하고 싶을 때


2. XLOOKUP 함수 문법

=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])

인수설명

lookup_value 찾고자 하는 값 (검색할 키 값)
lookup_array 검색할 범위 (이 범위에서 lookup_value를 찾음)
return_array 찾은 값과 같은 행/열에서 반환할 데이터 범위
[if_not_found] (선택) 검색 값이 없을 때 반환할 기본값 (예: "값 없음")
[match_mode] (선택) 0: 정확한 일치(기본값), -1: 작은 값 중 가장 가까운 값, 1: 큰 값 중 가장 가까운 값, 2: 와일드카드 검색
[search_mode] (선택) 1: 처음부터 검색(기본값), -1: 뒤에서부터 검색, 2: 이진 검색(오름차순 정렬 필요), -2: 이진 검색(내림차순 정렬 필요)

3. XLOOKUP 함수 예제

예제 1: 제품 코드로 제품명 찾기

다음과 같은 제품 목록이 있다고 가정합니다.

제품코드제품명가격

A001 노트북 1,500,000
A002 키보드 50,000
A003 마우스 30,000
A004 모니터 300,000

이제 A003 제품 코드를 입력하면 해당 제품명을 찾는 XLOOKUP 함수를 작성해 보겠습니다.

=XLOOKUP("A003", A2:A5, B2:B5)

 "A003"을 A2:A5 범위에서 찾고, 같은 행에서 B2:B5 범위의 값을 반환
✅ 결과: "마우스"


예제 2: 셀에 입력된 제품 코드로 제품명 찾기

제품 코드를 E2 셀에 입력하면 자동으로 제품명을 가져오도록 설정할 수도 있습니다.

=XLOOKUP(E2, A2:A5, B2:B5)

 E2에 A002를 입력하면 결과는 "키보드"
 E2에 A004를 입력하면 결과는 "모니터"


예제 3: 가격 정보 가져오기

제품 코드(E2)를 입력하면 해당 제품의 가격을 가져오고 싶다면?

=XLOOKUP(E2, A2:A5, C2:C5)

 E2에 A001을 입력하면 결과는 1,500,000
 E2에 A004를 입력하면 결과는 300,000


4. XLOOKUP의 강력한 기능

1) 값이 없을 때 기본값 반환 ([if_not_found])

검색 값이 없으면 기본적으로 #N/A 오류가 발생합니다.
이를 방지하려면 [if_not_found] 인수를 추가하여 기본값을 설정할 수 있습니다.

=XLOOKUP(E2, A2:A5, B2:B5, "찾을 수 없음")

 E2에 없는 제품 코드를 입력하면 **"찾을 수 없음"**이 표시됨


2) VLOOKUP과 달리 왼쪽 방향 검색 가능

VLOOKUP은 항상 오른쪽 방향으로만 검색할 수 있지만, XLOOKUP은 왼쪽 방향도 검색 가능합니다.

예제: 제품명으로 제품 코드 찾기

=XLOOKUP(E2, B2:B5, A2:A5)

 E2에 "마우스"를 입력하면 결과는 "A003"
(제품명이 B2:B5에 있고, 제품 코드는 A2:A5에 있음)


3) 와일드카드 검색 ([match_mode])

검색 값이 특정 단어를 포함하는 경우 검색하려면 match_mode=2를 사용하면 됩니다.

=XLOOKUP("*노트*", B2:B5, A2:A5, "없음", 2)

 "노트"가 포함된 제품명의 제품 코드를 찾음 → "A001"
 E2에 "모니터"를 입력하면 결과는 "A004"


4) 마지막 값 검색 ([search_mode])

search_mode=-1을 사용하면 리스트에서 마지막으로 나타나는 값을 검색할 수 있습니다.

=XLOOKUP(E2, A2:A10, B2:B10, "없음", 0, -1)

✅ 여러 개의 동일한 값이 있을 때 마지막 값을 반환


5) 여러 개의 열에서 데이터 가져오기

return_array를 여러 개의 열로 지정하면 한 번에 여러 개의 값을 반환할 수도 있습니다.

=XLOOKUP(E2, A2:A5, B2:C5)

 E2에 A002를 입력하면 결과는 "키보드", 50,000 (두 개의 값을 반환)


5. VLOOKUP vs XLOOKUP 비교

기능VLOOKUPXLOOKUP

검색 방향 오른쪽만 가능 왼쪽 & 오른쪽 모두 가능
열 번호 사용 col_index_num 사용 필요 없음 (자동 선택)
기본값 설정 IFERROR(VLOOKUP(...)) 사용해야 함 [if_not_found] 인수로 쉽게 설정
여러 개의 열 반환 불가능 가능 (return_array에 여러 열 지정)
와일드카드 검색 불가능 가능 (match_mode=2)
마지막 값 검색 불가능 가능 (search_mode=-1)

 XLOOKUP은 VLOOKUP보다 더 강력하고 유연하게 데이터 검색이 가능합니다.
 VLOOKUP의 단점(열 추가 시 오류, 오른쪽 방향만 검색 가능 등)을 해결할 수 있습니다.


6. 결론

  • XLOOKUP은 VLOOKUP과 HLOOKUP의 기능을 개선한 최신 검색 함수입니다.
  • 왼쪽 방향 검색, 기본값 설정, 여러 개의 열 반환, 마지막 값 검색 등의 기능을 지원합니다.
  • VLOOKUP보다 사용이 간편하고 강력하므로 엑셀 2019 이상 버전에서는 XLOOKUP을 적극 활용하는 것이 좋습니다. 🚀