엑셀 #NAME? _xlfn 오류, 하위 버전에서 여는 법

2026-08-23

받은 정산 파일을 열었더니 수식 칸마다 #NAME? 이 떠 있고, 셀을 눌러 수식 입력줄을 보니 `=_xlfn.XLOOKUP(...)` 처럼 함수 앞에 `_xlfn.` 이 붙어 있습니다. 이 글은 그 상황을 위한 글입니다.

먼저 안 되는 것부터 말씀드립니다. 이건 고칠 수 있는 오류가 아닙니다. `_xlfn.` 은 "이 파일에 적힌 함수를 지금 이 엑셀이 모른다"는 표시입니다. 괄호를 세어 보거나 쉼표를 세미콜론으로 바꾸거나 파일을 다른 이름으로 저장해도 살아나지 않습니다. 호환성 검사도 못 고칩니다. 함수 자체가 이 버전에 존재하지 않기 때문에, 옛 함수 조합으로 다시 짜는 것 외에는 방법이 없습니다. 그리고 LET·LAMBDA는 아예 대체 수식이 없습니다. 이 둘은 계산을 보조 열 두세 개로 쪼개서 단계별로 만드는 수밖에 없습니다.

작업 전에 원본 파일 사본을 먼저 떠 두십시오. 수식을 갈아엎는 작업이라 되돌릴 자리가 필요합니다.

바꿔 쓰는 표

아래는 2007 버전 이상이면 전부 동작합니다.

XLOOKUP        =INDEX($C$2:$C$999,MATCH($F2,$A$2:$A$999,0))

조건 2개 조회   =INDEX($C$2:$C$999,MATCH(1,($A$2:$A$999=$F$2)*($B$2:$B$999=$G$2),0))
               → Ctrl+Shift+Enter 로 입력

FILTER         =IFERROR(INDEX($C$2:$C$999,SMALL(IF($A$2:$A$999=$F$2,
               ROW($A$2:$A$999)-ROW($A$2)+1),ROW(A1))),"")
               → Ctrl+Shift+Enter 후 아래로 끌어내림

MAXIFS         =MAX(IF($A$2:$A$999=$F$2,$C$2:$C$999))   → Ctrl+Shift+Enter
IFS            → 중첩 IF
TEXTJOIN       → & 연결 또는 CONCATENATE
UNIQUE         → 데이터 탭 · 중복된 항목 제거 또는 고급 필터
TEXTSPLIT      → 데이터 탭 · 텍스트 나누기
SEQUENCE       → ROW(A1) 을 끌어내림
LET, LAMBDA    → 대체 없음. 보조 열로 분해

SUMIFS·COUNTIFS·AVERAGEIFS는 2007부터 있는 함수라 그대로 두셔도 됩니다. 여기까지 손댈 필요 없습니다.

배열 수식은 그냥 Enter로 넣으면 결과가 한 칸만 나오거나 오류가 납니다. 제대로 들어가면 수식 입력줄 양끝에 중괄호가 저절로 생깁니다. 그 중괄호를 손으로 타이핑하면 안 됩니다. 타이핑한 중괄호는 배열 표시가 아니라 그냥 글자입니다.

실무에서 걸리는 함정 넷

첫째, 날짜가 날짜가 아닙니다. 쇼핑몰이나 PG사에서 내려받은 파일의 날짜 열은 텍스트로 들어오는 경우가 많습니다. 셀을 클릭했을 때 왼쪽으로 붙어 있으면 텍스트입니다. 이 상태면 MATCH·SUMIFS가 눈에 똑같은 값을 못 찾습니다. 해당 열을 통째로 선택하고 데이터 탭의 텍스트 나누기를 눌러 마지막 화면까지 간 뒤, 열 데이터 서식을 날짜 YMD로 지정하고 마침을 누르면 한 번에 정리됩니다.

둘째, 주문번호가 한쪽은 숫자 한쪽은 텍스트입니다. 앞자리 0이 살아 있거나 셀 왼쪽 위에 초록 삼각형이 보이면 이 경우입니다. 옆 칸에 `=ISNUMBER(A2)` 를 넣어 양쪽 시트를 비교해 보시고, 결과가 다르면 `=VALUE(A2)` 나 `=A2&""` 로 한쪽을 맞추십시오. 여기에 눈에 안 보이는 공백이 겹칩니다. 웹에서 복사된 값에는 일반 공백이 아니라 CHAR(160)이 섞여 들어오는데, TRIM도 CLEAN도 이건 못 지웁니다. `=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160),"")))` 로 한 번 훑고 비교하시는 편이 안전합니다.

셋째, 빈 셀이 0으로 돌아옵니다. INDEX나 VLOOKUP이 가져온 칸이 비어 있으면 결과가 0으로 찍히는데, 이건 오류가 아니라서 IFERROR로 안 걸러집니다. 합계와 평균이 조용히 어긋나는 원인 대부분이 이 0입니다. `=IF(INDEX($C$2:$C$999,MATCH($F2,$A$2:$A$999,0))="","",INDEX($C$2:$C$999,MATCH($F2,$A$2:$A$999,0)))` 로 감싸십시오.

넷째, 배열 수식에 전체 열을 넣지 마십시오. `($A:$A=$F$2)*($B:$B=$G$2)` 처럼 쓰면 백만 행을 매번 계산해서 파일이 눈에 띄게 느려집니다. 위 예시처럼 `$A$2:$A$999` 같이 실제 데이터 끝까지만 잡으십시오. 일반 INDEX/MATCH는 전체 열을 써도 괜찮습니다.

우리 쪽에서 겪은 같은 종류의 사고

엑셀은 아니었지만 뿌리가 같은 일을 겪었습니다. 2026년 8월 17일, 자동 실행 작업 30개 중 28개가 실행 결과를 아무 데도 안 남기고 있는 걸 발견했습니다. 로그를 붙이려고 명령을 `cmd /c` 로 감쌌더니, 그 명령줄을 건너가는 순간 한글 폴더 이름의 인코딩이 바뀌면서 `덜쓰기연구소` 가 `ëœì“°ê¸°ì—°êµ¬ì†Œ` 가 됐고, 12개 작업이 존재하지 않는 폴더를 가리키게 됐습니다. 그런데 화면에 찍힌 결과는 "적용 27개"였습니다. 실패한 것이 성공으로 보고된 겁니다. 고친 방법은 한글을 명령줄에 아예 안 싣는 것이었습니다. 실행기를 영문 경로 파일로 빼고 한글 경로는 그 파일 안에만 뒀습니다. 그리고 화면 출력을 믿지 않고 등록된 작업을 하나씩 되읽어 확인했습니다. 사람 눈에는 글자지만 프로그램에는 바이트입니다. 눈에 같아 보이는 주문번호가 매칭에 실패하는 것도 정확히 같은 이유입니다.

물어보실 때

쓰고 계신 엑셀 버전, 오류가 난 수식 원문 한 줄, 오류 표시가 #NAME? 인지 #VALUE? 인지, 그리고 시트의 열 제목 한 줄을 같이 적어주시면 어느 함수가 걸린 건지 훨씬 빨리 좁혀집니다. 특히 `_xlfn.` 뒤에 붙은 함수 이름을 그대로 적어 주시는 게 가장 빠릅니다.


지금 그 파일, 어디가 문제인지 먼저 보시겠습니까

CSV 를 넣으면 계산이 틀어지는 자리를 찾아 드립니다. 무료이고 파일은 서버로 올라가지 않습니다 — 브라우저 안에서만 처리되고 저희도 내용을 볼 수 없습니다.

정산 파일 진단기 열기  ·  무료 자료실

매달 같은 순서로 고치고 계신다면 그 순서를 프로그램으로 옮겨둔 것이 있습니다 — 쇼핑몰 월 정산 자동화. 되는지부터 보시려면 무료 진단.

CHEONOK SYSTEM · 업무 자동화 제작
안 되는 파일이면 안 된다고 말씀드립니다 · 문의 actorlee007@gmail.com
매출이나 수익을 보장하지 않습니다.