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 를 넣으면 계산이 틀어지는 자리를 찾아 드립니다. 무료이고 파일은 서버로 올라가지 않습니다 — 브라우저 안에서만 처리되고 저희도 내용을 볼 수 없습니다.
매달 같은 순서로 고치고 계신다면 그 순서를 프로그램으로 옮겨둔 것이 있습니다 — 쇼핑몰 월 정산 자동화. 되는지부터 보시려면 무료 진단.