Post

엑셀 XLOOKUP 함수가 빈 셀을 0으로 가져오는 문제 해결 방법

 엑셀 좀 써본 사람들은 VLOOKUP 함수를 대부분 알 거다. 그런데 이제 더이상 VLOOKUP을 사용할 이유가 없어졌다.    XLOOKUP이라는 새로 나온 함수가 VLOOKUP을 너무나 편안하고 완벽하게 대체하기 때문에. 심지어 구글 스프레드시트에서도 XLOOKUP을 지원한다.

그런데 최근에 문제를 발견했다.

XLOOKUP에서 값을 0으로 가져오는 문제

XLOOKUP을 사용하다 보면 반환할 배열에서 빈 셀을 가져올 때 0으로 값을 가져오는 문제가 발생한다. 예를 들어 A열에서 값을 찾아 B열의 값을 반환하고자 할 경우 이렇게 작성해주는데,

1
=XLOOKUP("찾을값",A:A,B:B)

A열에서 값을 찾아 해당 행의 B열을 조회했는데 셀이 비어있을 경우, 위와 같이 함수를 작성하면 0을 가져오게 된다. 이건 문제다. 그 셀은 0이 아닌데 0이라고 가져오는 거니까. (참고로 이 문제는 구글 스프레드 시트에서는 발생하지 않는다.)

아무튼 이 문제를 해결하는 방법은 크게 두 가지가 있다.

해결 방법 1. IF 함수 사용

일단 IF 함수를 사용해서 다소 무식하게(?) 처리하는 방법이 있다.

찾아보니 가져올 값이 공백 ""일 경우 공백을 반환하고, 그렇지 않다면 값을 찾아 가져오는 원리.

1
=IF(XLOOKUP("찾을값",A:A,B:B)="","", XLOOKUP("찾을값",A:A,B:B))

그런데 이 방법은 굳이 XLOOKUP 함수를 두 번 작성해야 해서 비효율적이다.

해결 방법 2. LET 함수 사용

LET 함수를 사용하면 조금 더 간단히 처리할 수 있다. (LET 함수는 계산 결과에 이름을 할당해서, 수식 중간에서 그 값을 처리할 수 있도록 도와주는 함수다. 자세한 사용 방법을 알고 싶다면 공식 도움말을 참고하자.)

아무튼 아래와 같이 LET 함수 안에 XLOOKUP를 작성해서 처리할 수 있다.

1
=LET(x, XLOOKUP("찾을값", A:A,B:B), IF(x="", "", x))

x라는 값을 정의하여 처리하는 방식.

This post is licensed under CC BY 4.0 by the author.