
얼마 전 지인이 보내온 엑셀 파일을 열었는데, 제품명을 찾는 칸마다 #NAME? 오류가 떠 있었습니다. 수식에는 XLOOKUP이 들어 있었고, 제 PC에서는 멀쩡하던 파일이었죠. 이런 경우 수식을 고치기 전에 엑셀 버전부터 확인하는 게 빠릅니다. 같은 파일이라도 설치된 엑셀에 따라 계산할 수 있는 함수가 다릅니다.
엑셀 xlookup 버전은 어디부터 지원할까
마이크로소프트 안내 기준으로 XLOOKUP은 Microsoft 365용 엑셀과 엑셀 2021, 엑셀 2024에서 사용할 수 있습니다. 반면 엑셀 2016과 2019에는 이 함수가 없습니다. 오래된 엑셀에서 새 버전으로 만든 파일을 열 수는 있지만, 그 안의 XLOOKUP 수식을 정상적으로 다시 계산할 수 있다는 뜻은 아닙니다.
여기서 헷갈리는 게 버전 번호입니다. 엑셀의 자세한 정보에 ‘버전 16.0’처럼 표시되어도 제품이 엑셀 2019일 수 있습니다. 그 숫자만 보고 XLOOKUP 지원 여부를 판단하면 틀리기 쉽습니다. 제품 이름이 Microsoft 365인지, Office 2019인지부터 봐야 합니다.
엑셀 2019에 최신 업데이트를 설치해도 엑셀 2021이 되지는 않습니다. 업데이트는 현재 보유한 제품을 관리하는 것이지, 영구 구매 제품의 세대를 올려 주는 작업은 아닙니다. 함수가 필요해서 새 버전을 고려한다면 먼저 본인이 쓰는 제품 이름을 확인하는 편이 낫습니다.
내 PC에서 버전과 함수 상태 확인하기
윈도우용 엑셀에서는 파일을 열고 파일 → 계정으로 이동합니다. ‘제품 정보’ 아래에 Microsoft 365 또는 Office 2021 같은 이름이 표시됩니다. 계정 메뉴가 보이지 않으면 파일 메뉴의 ‘도움말’을 확인합니다. ‘Excel 정보’를 누르면 세부 버전과 32비트·64비트 여부도 볼 수 있지만, XLOOKUP 지원 여부는 우선 제품 이름으로 가리는 게 정확합니다.
그다음 빈 통합 문서에 A2부터 A4까지 제품 번호 101, 102, 103을 넣고, B2부터 B4까지 각각 키보드, 마우스, 모니터를 적습니다. 다른 셀에 =XLOOKUP(102,A2:A4,B2:B4)를 입력해 보세요. ‘마우스’가 나오면 함수 자체는 작동합니다. 원래 파일에서만 오류가 난다면 그 파일의 수식과 참조 범위를 확인할 차례입니다.
함수 이름을 입력할 때 자동 완성 목록에 XLOOKUP이 없고 계산 결과가 #NAME?이라면 지원하지 않는 버전일 가능성이 큽니다. 다른 사람이 만든 파일의 수식 앞에 _xlfn.이 붙어 보이는 경우도 구버전에서 새 함수를 인식하지 못할 때 나타날 수 있습니다. 다만 #NAME?은 함수 이름 오타 등으로도 발생하므로, 제품 이름과 간단한 시험 수식을 함께 확인해야 원인을 가릴 수 있습니다.
XLOOKUP이 되는데 결과가 이상할 때
XLOOKUP의 기본 형태는 =XLOOKUP(찾을값,찾을범위,반환범위)입니다. 앞의 예에서는 102를 A2:A4에서 찾아 같은 행의 B열 값을 가져옵니다. 찾을범위와 반환범위의 크기는 맞춰야 합니다. 한쪽은 2행부터 100행, 다른 쪽은 3행부터 100행으로 잡아 놓으면 엉뚱한 값을 기대하게 됩니다.
함수는 작동하는데 #N/A가 뜬다면 버전 문제와 구분해서 봐야 합니다. XLOOKUP은 기본적으로 정확히 일치하는 값을 찾습니다. 제품 번호 102와 문자로 저장된 ‘102’, 셀에 섞인 앞뒤 공백처럼 눈에는 비슷해 보여도 데이터 상태가 다른 경우를 확인합니다. 반대로 #NAME?이라면 값이 없는 문제가 아니라 함수 이름을 엑셀이 알아듣는지부터 확인하는 편이 빠릅니다.
값이 없을 때 표시할 문구가 필요하면 네 번째 인수를 넣을 수 있습니다. 예를 들어 =XLOOKUP(105,A2:A4,B2:B4,"해당 제품 없음")은 105를 찾지 못했을 때 문구를 표시합니다. 수식을 받는 사람이 엑셀 2019를 쓴다면 이 옵션을 추가해도 호환 문제는 해결되지 않습니다.
엑셀 2016·2019와 파일을 주고받는다면
상대방의 버전을 바꿀 수 없다면 기존 함수로 수식을 작성하는 게 현실적입니다. 앞의 예처럼 찾을 열이 왼쪽, 가져올 열이 오른쪽이라면 =VLOOKUP(102,A2:B4,2,FALSE)로 같은 값을 구할 수 있습니다. 마지막 FALSE는 정확히 일치하는 값만 찾겠다는 뜻입니다. 이를 빼면 데이터 정렬 상태에 따라 예상과 다른 결과가 나올 수 있으니 명시하는 편이 안전합니다.
가져올 열이 찾을 열의 왼쪽에 있으면 INDEX와 MATCH를 조합할 수 있습니다. 예를 들어 제품 번호가 B2:B4, 제품명이 A2:A4에 있다면 =INDEX(A2:A4,MATCH(102,B2:B4,0))입니다. MATCH의 0은 정확히 일치하는 위치를 찾고, INDEX는 그 위치의 제품명을 가져옵니다. XLOOKUP보다 길지만 구버전과 파일을 주고받을 때는 쓸 만합니다.
제가 공유용 파일을 만들 때는 먼저 받는 쪽의 엑셀 버전을 묻습니다. 혼자 쓰는 파일이라면 XLOOKUP의 간결함이 편하지만, 여러 PC에서 열 파일이라면 가장 오래된 버전에서도 계산되는 수식이 작업 시간을 아껴 줍니다.
