XLOOKUP · XMATCH로 VLOOKUP 완전 대체! (정확 일치·가까운 값·와일드카드·다중조건 1분 컷)

XLOOKUP · XMATCH로 VLOOKUP 완전 대체! (정확 일치·가까운 값·와일드카드·다중조건 1분 컷)

XLOOKUP · XMATCH로 VLOOKUP 완전 대체! (정확 일치·가까운 값·와일드카드·다중조건 1분 컷)

이 글은 편집자가 실제 Excel 365에서 재현·검증했으며, 초안 정리에 AI 도구를 보조적으로 사용했습니다.

문법 & 핵심 옵션

함수형식포인트
XLOOKUP=XLOOKUP(lookup_value, lookup_array, return_array, [if_not_found], [match_mode], [search_mode])왼쪽/오른쪽/상하 모두 가능, 기본=정확 일치
XMATCH=XMATCH(lookup_value, lookup_array, [match_mode], [search_mode])위치 반환(인덱스), SORTBY/INDEX와 궁합

match_mode: 0=정확(기본), -1=이하, 1=이상, 2=와일드카드. search_mode: 1=첫번째부터, -1=뒤에서부터, 2/ -2=이진 검색(정렬 필요).

정확 일치·와일드카드

SKU로 가격 찾기(없으면 “미등록”)

=XLOOKUP(G2, SKU, Price, "미등록")

제품명에 “pro” 포함 행의 단가

=XLOOKUP("*pro*", Product, UnitPrice, "없음", 2)   // 2=와일드카드

뒤에서부터(최신 항목 우선)

=XLOOKUP(G2, OrderID, Status, "없음", 0, -1)

근사값(이상·이하)

요율표·할인테이블에 최적. 표를 해당 방향으로 정렬하세요.

구매액 이하 구간의 할인율

=XLOOKUP(Amount, Threshold, Rate, , -1)   // 이하

점수 이상 학점(하한표)

=XLOOKUP(Score, Cutline, Grade, , 1)     // 이상

다중조건·2차원 조회

지역+제품 다중조건 → 가격

=XLOOKUP(1, (Region=G2)*(Product=H2), Price, "없음")

XMATCH로 2D(행+열) 교차 조회

=INDEX(Data, XMATCH(G2, RowKey), XMATCH(H2, ColKey))

범위 반환·여러 열 한 번에

한 번의 조회로 여러 필드 스필

=XLOOKUP(G2, SKU, HSTACK(Price, Stock, Supplier), "없음")

날짜별 최신 가격(뒤에서 찾기)

=XLOOKUP(1, (SKU=G2)*(Date<=H2), Price, "없음", 0, -1)

실무 패턴 12가지

① 없는 코드에 기본가 반환

=XLOOKUP(Code, SKUs, Price, DefaultPrice)

② 다국어명(한국어→영어)

=XLOOKUP(KoName, KoList, EnList, KoName)

③ 고객 최신 주문 상태

=XLOOKUP(1,(Cust=G2), Status,"없음",0,-1)

④ 범주→색상(맵핑 테이블)

=XLOOKUP(Category, Map!A:A, Map!B:B, "gray")

⑤ 부분일치 여러 건 중 첫 매치

=XLOOKUP("*"&G2&"*", Product, Price, "없음", 2)

⑥ 근사값 요율 + 계산

=LET(r, XLOOKUP(Amount, Step, Rate,, -1), Amount*r)

⑦ 2D: 월×지역 매출

=INDEX(SalesTbl, XMATCH(Region, SalesTbl[지역]), XMATCH(Month, SalesMonths))

⑧ 목록 유효성(동적): 카테고리 고유값

=UNIQUE(XLOOKUP("*",Category,Category))

⑨ 병합키 없이 다중조건(날짜+SKU)

=XLOOKUP(1,(SKU=G2)*(Date=H2), Price, "없음")

⑩ 재고 부족 품목의 공급사

=FILTER(HSTACK(SKU,Supplier), XLOOKUP(SKU, SKU, Stock)<MinStock)

⑪ VLOOKUP 호환식 변환

// =VLOOKUP(key, table, 3, FALSE)
=XLOOKUP(key, table[1열], table[3열])

⑫ IFERROR 없이 사용자 문구

=XLOOKUP(key, keyRange, valRange, "데이터 없음")

자주 하는 실수 & 체크

  • 근사값 정렬 누락 → -1은 오름차순, 1은 오름차순(하한표/상한표)에 맞게 정렬.
  • 다중조건 괄호(조건1)*(조건2) 전체를 2번째 인수에 넣기.
  • 범위 반환 크기 → 반환 배열(HSTACK/CHOOSECOLS)은 동일 행 수가 맞아야 함.
  • 텍스트 숫자NUMBERVALUE로 정규화 후 조회.

요약

목표대표 공식
정확 일치XLOOKUP(key, keyRange, valRange, "없음")
와일드카드XLOOKUP("*"&키&"*", range, val,, 2)
근사값XLOOKUP(x, 기준, 값,, -1/1)
다중조건XLOOKUP(1, (A=…)*(B=…), 값)
2D 조회INDEX(표, XMATCH(행키), XMATCH(열키))
기존 VLOOKUP을 사용하는 보고서에서 XLOOKUP으로 한 줄씩 치환해 보세요. “왼쪽도 조회·오류문구 지정·여러 열 스필” 덕분에 수식과 유지보수가 훨씬 간단해집니다.

Leave a Reply

Your email address will not be published. Required fields are marked *