수식을 끝까지 쓰고 엔터를 눌렀는데 계산 결과 대신 #NAME?이 앉아 있습니다. 숫자가 틀린 것도 아니고 참조가 깨진 것도 아니라, 엑셀이 수식 안의 어떤 글자를 이름으로 읽었다가 그 이름을 끝내 못 찾은 것입니다.
그래서 고치는 순서도 단순합니다. 수식 안에서 엑셀이 이름이라고 착각할 만한 자리를 하나씩 짚으면 됩니다. 함수 이름, 따옴표 없이 들어간 글자, 콜론이 빠진 범위, 정의해 둔 이름, 그리고 남이 만든 파일에 섞여 온 낯선 함수까지 다섯 곳입니다.
다만 같은 오류라도 수식을 내가 방금 썼을 때와 받은 파일을 열자마자 떴을 때는 봐야 할 곳이 다릅니다. 앞의 네 가지는 내 손끝에서 생기고 마지막 하나는 파일이 건너오면서 생기기 때문에, 아래 분기표에서 내 화면이 어느 쪽인지부터 가르고 들어가면 훨씬 빠릅니다.
목차
#NAME?은 이름을 못 알아봤다는 뜻
오류 코드마다 엑셀이 멈춰 선 단계가 다릅니다.
엑셀은 수식을 받으면 계산을 시작하기 전에 글자를 조각내어 종류부터 가립니다. 괄호 앞에 붙은 덩어리는 함수인지, 알파벳과 숫자가 붙은 덩어리는 셀 주소인지, 그것도 아니면 누가 미리 정의해 둔 이름인지 차례로 맞춰 봅니다. 이 세 가지 중 어디에도 걸리지 않는 조각이 하나라도 있으면 그 자리에서 계산을 포기하고 #NAME?을 돌려줍니다.
그래서 이 오류는 값이 이상하다는 신호가 아니라 글자를 못 읽었다는 신호입니다. 같은 수식을 옆 셀에 그대로 복사해도 결과가 똑같이 나오고, 참조하는 데이터를 아무리 고쳐도 변하지 않습니다. 고쳐야 할 것이 데이터가 아니라 수식 안의 글자이기 때문입니다.
지금 해보세요 — 확인
오류가 뜬 셀을 한 번 누르고 수식 입력줄을 봅니다. 함수 이름이 파랗게 강조되지 않고 검은 글자로만 남아 있으면 엑셀이 그 덩어리를 함수로 못 읽은 것입니다.
이름이 아니라 값의 종류가 어긋나서 멈추면 코드가 달라집니다. 곱셈에 글자가 섞여 들어갔을 때 뜨는 #VALUE! 오류는 원인이 전혀 다른 쪽에 있고, 참조하던 셀이 통째로 지워졌을 때는 #REF!가 뜹니다. 코드를 먼저 읽어 두면 헛다리를 짚는 시간이 줄어듭니다. 세 코드는 엑셀이 멈춰 선 단계가 서로 달라서, 코드만 보고도 어느 쪽을 뒤져야 하는지 가를 수 있습니다.
이 글에서 쓰는 예제
아래 수식은 전부 이 표를 기준으로 씁니다.
지역과 월, 금액 세 열짜리 작은 표를 쓰겠습니다. 같은 폴더의 sample.xlsx를 열면 시트마다 아래 표가 똑같이 들어 있고, 오류가 난 수식과 고친 수식이 나란히 놓여 있습니다.
| 행 | A · 지역 | B · 월 | C · 금액 |
|---|---|---|---|
| 2 | 서울 | 1월 | 120 |
| 3 | 부산 | 1월 | 80 |
| 4 | 서울 | 2월 | 50 |
| 5 | 서울 | 1월 | 30 |
서울의 1월 금액만 더하는 수식은 아래와 같고 결과는 150입니다. 이 값을 기준선으로 삼아, 뒤에서는 같은 수식을 한 글자씩 망가뜨려 가며 어떤 모양일 때 오류가 뜨는지 봅니다.
조건이 하나뿐일 때 쓰는 =SUMIF(A:A,"서울",C:C)는 200, 서울이 몇 번 나오는지 세는 =COUNTIF(A:A,"서울")는 3이 나옵니다. 세 수식 모두 따옴표와 콜론이 제자리에 있을 때의 값입니다.
행이 네 줄뿐이라 결과를 눈으로 검산할 수 있다는 점이 중요합니다. 실무 파일에서는 값이 틀려도 틀렸다는 것 자체를 모르고 넘어가기 쉬운데, 여기서는 120과 30을 더한 150이 맞는지 바로 보입니다. 아래 원인들을 따라가다 화면과 글이 어긋나는 것 같으면 이 표로 돌아와 숫자부터 맞춰 보면 됩니다. 조건에 쓰는 서울과 1월은 표에 실제로 들어 있는 글자 그대로 적어야 하고, 앞뒤에 공백이 끼면 조건이 맞지 않아 0이 나옵니다.
먼저 60초만 — 세 군데부터
여기서 끝나는 경우가 가장 많습니다.
1함수 이름을 지우고 다시 골라 넣습니다
등호 뒤의 함수 이름만 지우고 세 글자쯤 다시 칩니다. 목록이 떠오르면 눈으로 읽지 말고 방향키로 골라 탭 키로 넣습니다. 이렇게 넣은 이름은 철자가 틀릴 수가 없습니다.
2수식 안의 한글과 영문 단어에 따옴표가 있는지 봅니다
셀 주소나 숫자가 아닌 글자는 전부 큰따옴표 안에 들어가 있어야 합니다. 서울, 완료, 미납처럼 조건으로 쓴 단어가 맨몸으로 놓여 있으면 그 자리가 원인입니다.
3범위 가운데 콜론이 살아 있는지 봅니다
C2C5처럼 두 주소가 붙어 버리면 엑셀은 이것을 하나의 이상한 단어로 읽습니다. 마우스로 범위를 다시 끌어 잡으면 콜론이 저절로 들어갑니다.
세 가지를 다 해봤는데도 그대로라면 수식이 아니라 파일 쪽에 원인이 있을 가능성이 큽니다. 아래 분기표에서 내 화면이 어느 줄에 해당하는지 고르고 그 자리로 건너뜁니다.
순서를 이렇게 잡은 이유는 확인에 드는 시간이 짧은 것부터 놓았기 때문입니다. 함수 이름은 한 번 다시 고르면 끝나고, 따옴표와 콜론은 눈으로 훑기만 해도 보입니다. 반대로 이름 정의나 파일 호환성은 창을 열고 목록을 확인해야 하므로 앞쪽 세 가지를 먼저 걷어 내는 편이 빠릅니다. 세 가지를 훑는 데 드는 시간이 1분을 넘지 않으니, 창을 열기 전에 한 바퀴 돌려 보는 편이 결국 빠릅니다.
내 화면은 어디에 해당하나
수식 입력줄의 모양으로 원인이 거의 갈립니다.
오류 셀을 한 번 누르면 수식 입력줄에 수식이 글자 그대로 나타납니다. 셀에 보이는 오류 코드는 다섯 가지 원인 모두에서 똑같이 생겼지만, 입력줄에 적힌 모양은 원인마다 다릅니다. 아래 표에서 내 입력줄과 가장 비슷한 줄을 골라 그 자리로 건너뜁니다.
| 수식 입력줄이 이렇게 보인다 | 원인 | 갈 곳 |
|---|---|---|
| 함수 이름이 낯선 철자다 (SUMIFF, VLOOKPU) | 철자 오타 | 철자 보기 |
| 조건 자리에 단어가 따옴표 없이 있다 | 따옴표 누락 | 따옴표 보기 |
| 범위가 C2C5처럼 한 덩어리로 붙어 있다 | 콜론 누락 | 콜론 보기 |
| 범위 자리에 한글 단어 하나가 들어 있다 | 이름 정의 문제 | 이름 보기 |
| 함수 이름 앞에 _xlfn. 이 붙어 있다 | 내 판에 없는 함수 | 받은 파일 보기 |
주의 — 오류 셀을 지우고 다시 쓰기 전에
수식을 통째로 지워 버리면 어느 글자가 문제였는지 확인할 길이 사라집니다. 같은 실수를 옆 셀에서 또 하게 되므로, 지우기 전에 수식 입력줄의 글자를 복사해 빈 셀에 붙여 두고 시작합니다.
두 줄 이상에 걸린다면 원인이 겹쳐 있는 것입니다. 따옴표와 콜론이 같이 빠지는 일이 드물지 않으니, 한 자리를 고친 뒤에도 오류가 남아 있으면 표로 돌아와 남은 줄을 다시 짚습니다. 반대로 다섯 줄 중 어디에도 안 걸린다면 수식이 아니라 셀 서식이나 계산 설정 쪽을 봐야 할 수도 있습니다. 그럴 때는 오류 셀 옆에 뜨는 느낌표 단추를 눌러 엑셀이 무엇을 문제로 보는지부터 읽어 봅니다.
함수 이름 철자가 하나 틀렸을 때
가장 많이 나오는 자리이고 가장 빨리 끝나는 자리입니다.
아주 흔함SUMIFS를 SUMIFF로, VLOOKUP을 VLOOKPU로 친 경우입니다. 엑셀에 그런 이름의 함수가 없으니 정의된 이름인지 마지막으로 한 번 더 찾아보고, 그것도 없으면 오류를 돌려줍니다.
지금 해보세요 — 확인
오류 셀을 두 번 눌러 편집 상태로 들어갑니다. 정상적인 함수라면 이름 뒤 괄호 아래로 인수 안내 풍선이 뜹니다. 풍선이 안 뜨면 엑셀이 그 이름을 함수로 인정하지 않은 것입니다.
지금 해보세요 — 해결
함수 이름만 지우고 앞 세 글자를 다시 칩니다. 아래로 목록이 펼쳐지면 방향키로 내려가 탭 키를 누릅니다. 이름과 여는 괄호가 함께 들어가므로 철자도 괄호도 틀릴 일이 없습니다.
한글 자판 상태로 함수 이름을 치다가 생기는 경우도 여기에 들어갑니다. 화면에는 영문으로 보여도 실제로는 전각 문자가 섞여 들어가 엑셀이 다른 글자로 읽습니다. 이럴 때도 지우고 목록에서 고르면 한 번에 정리됩니다. 함수 이름을 대문자로 쓰든 소문자로 쓰든 결과는 같으니, 대소문자 때문에 오류가 났을 가능성은 지우고 시작해도 됩니다. 제대로 들어간 함수는 입력을 마치는 순간 이름이 대문자로 바뀌므로, 소문자로 남아 있다면 그것도 신호입니다.
글자를 큰따옴표 없이 넣었을 때
조건에 단어를 쓰는 함수에서 거의 다 여기서 걸립니다.
아주 흔함SUMIF나 COUNTIF의 조건 자리에 서울이라고만 적으면 엑셀은 그것을 글자가 아니라 이름으로 읽습니다. 그런 이름이 정의돼 있지 않으니 오류가 납니다. 숫자는 따옴표 없이 써도 되기 때문에 숫자 조건만 다뤄 본 사람은 이 차이를 만날 일이 없다가 한글 조건에서 처음 부딪힙니다.
지금 해보세요 — 해결
조건 자리의 단어 앞뒤에 큰따옴표를 붙입니다. 홑따옴표가 아니라 큰따옴표여야 하고, 한글 자판에서 자동으로 바뀐 둥근 따옴표는 엑셀이 인정하지 않습니다.
조건을 셀에서 가져오면 따옴표 고민 자체가 없어집니다. 빈 셀에 서울이라고 입력해 두고 수식에서는 그 셀을 가리키면, 나중에 부산 실적이 궁금해질 때 수식을 건드리지 않고 그 셀 하나만 고치면 됩니다.
주의 — 부등호가 섞인 조건
100보다 큰 값을 세려고 할 때는 부등호까지 통째로 따옴표 안에 넣어야 합니다. 숫자만 따옴표 밖으로 빼면 조건이 두 조각으로 갈라져 오류가 납니다. 셀 주소를 조건에 섞어 쓸 때도 마찬가지라, 부등호만 따옴표 안에 넣고 주소는 앰퍼샌드로 이어 붙여야 조건 하나로 전달됩니다. 조건이 두 개 이상인 SUMIFS에서는 조건마다 따옴표가 따로 필요하니, 하나만 빠져도 수식 전체가 멈춥니다. 눈으로 훑을 때는 따옴표 짝이 맞는지부터 셉니다.
범위에서 콜론이 빠졌을 때
손으로 주소를 칠 때만 생기는 실수입니다.
흔함C2부터 C5까지를 더하려고 C2C5라고 치면 엑셀은 두 주소가 아니라 C2C5라는 한 단어를 본 것으로 처리합니다. 셀 주소로는 성립하지 않는 모양이니 마지막으로 정의된 이름 목록을 뒤지고, 거기에도 없으면 오류를 냅니다.
지금 해보세요 — 해결
수식을 편집 상태로 열고 범위 부분만 지운 다음, 시트에서 C2부터 C5까지 마우스로 끌어 잡습니다. 콜론은 엑셀이 알아서 넣어 주므로 손으로 칠 일이 없습니다.
다른 시트를 가리킬 때는 느낌표가 같은 자리에서 빠지곤 합니다. 시트명과 주소 사이에 느낌표가 없으면 역시 한 덩어리로 읽혀 같은 오류가 납니다. 시트 이름에 띄어쓰기가 들어 있으면 이름을 작은따옴표로 감싸야 한다는 점도 함께 기억해 두면 좋습니다.
한 가지 헷갈리기 쉬운 점은 콜론이 빠졌을 때와 쉼표가 빠졌을 때의 결과가 서로 다르다는 것입니다. 인수 사이의 쉼표가 빠지면 엑셀이 수식을 받아 주지 않고 입력하는 순간 경고창이 뜨지만, 콜론은 빠져도 모양상 문제가 없어 보이기 때문에 그대로 입력되고 셀에서 오류로 나타납니다. 그래서 쉼표는 입력하는 순간에, 콜론은 계산이 끝난 뒤에 발견되는 차이가 생깁니다. 범위를 통째로 이름으로 정의해 두면 이 실수 자체가 사라지지만, 그때는 이름 쪽에서 다른 문제가 생길 수 있습니다.
정의해 둔 이름이 사라졌을 때
수식은 그대로인데 어느 날 갑자기 오류가 뜬다면 이 자리입니다.
흔함범위에 금액합계 같은 이름을 붙여 두고 수식에서 그 이름을 쓰다가, 시트를 지우거나 이름을 다시 정리하면서 정의만 사라진 경우입니다. 수식 쪽은 글자 그대로 남아 있으니 눈으로는 아무 문제가 없어 보입니다.
지금 해보세요 — 확인
이름 관리자를 열어 수식에 적힌 이름이 목록에 있는지 봅니다. 없으면 정의가 사라진 것이고, 있는데도 오류가 난다면 참조 대상 칸이 #REF!로 바뀌어 있는지 확인합니다.
지금 해보세요 — 해결
목록에 이름이 없으면 같은 이름으로 새로 만들고 범위를 다시 지정합니다. 이름이 살아 있는데 철자만 다르면 수식 쪽을 목록의 철자에 맞춥니다. 이름은 대소문자를 가리지 않지만 사이에 들어간 밑줄이나 마침표까지 같아야 합니다.
표를 표 서식으로 만들어 쓰는 경우에는 열 제목이 곧 이름 역할을 합니다. 제목을 바꾸면 그 제목을 쓰던 수식이 한꺼번에 오류로 바뀌므로, 열 제목을 고칠 때는 그 표를 참조하는 수식이 어디에 있는지 먼저 훑어 두는 편이 안전합니다.
이름을 새로 만들 때는 범위를 통합 문서 전체로 둘지 한 시트 안으로 둘지도 같이 정해집니다. 시트 안으로 좁혀 둔 이름은 다른 시트의 수식에서 부르면 찾지 못해 같은 오류가 납니다. 이름 관리자 목록의 범위 칸에 시트 이름이 적혀 있으면 그 시트 전용이라는 뜻입니다.
받은 파일의 함수가 내 엑셀에 없을 때
내가 쓴 수식이 아닌데 열자마자 오류가 떠 있다면 여기입니다.
가끔최신 판에서만 동작하는 함수로 만든 파일을 열면 함수 이름 앞에 _xlfn. 이라는 표시가 붙습니다. 내 엑셀이 그 함수를 모르지만 파일을 망가뜨리지는 않겠다는 뜻으로 이름만 보관해 둔 상태입니다.
이 표시가 보이면 철자나 따옴표를 아무리 고쳐도 소용이 없습니다. 고칠 자리가 수식이 아니라 함수 선택에 있기 때문입니다. 파일을 보낸 쪽에 어느 함수를 썼는지 물어보고, 같은 일을 하는 오래된 함수로 바꿔 쓰면 어느 판에서나 열립니다.
지금 해보세요 — 해결
_xlfn. 뒤에 붙은 이름을 보고 같은 일을 하는 오래된 함수로 갈아 끼웁니다. TEXTSPLIT은 데이터 탭의 텍스트 나누기로 열을 미리 갈라 두면 되고, TEXTBEFORE와 TEXTAFTER는 LEFT·RIGHT·MID를 FIND와 함께 쓰면 같은 결과가 나옵니다. LAMBDA로 묶어 둔 계산은 보조 열 하나로 펼쳐 두는 편이 나중에 읽기도 쉽습니다.
반대로 내가 만든 파일을 밖으로 보낼 때도 같은 일이 생깁니다. 받는 쪽 판을 모를 때는 익숙한 함수로만 짜 두는 편이 안전하고, 그래도 최신 함수를 써야 한다면 결과 값을 따로 복사해 값으로 붙여 넣은 시트를 한 장 같이 보내면 상대가 숫자만이라도 볼 수 있습니다. 파일 이름에 어느 판으로 만들었는지 적어 두는 것도 받는 쪽이 헤매지 않게 하는 방법입니다.
다시 안 나게 하는 습관
손버릇 두 가지만 바꾸면 대부분 사라집니다.
첫째는 함수 이름을 끝까지 타자로 치지 않는 것입니다. 세 글자만 치고 목록에서 고르는 습관을 들이면 철자 오타는 아예 생기지 않고, 인수 안내 풍선이 같이 떠서 따옴표를 빠뜨릴 확률도 줄어듭니다. 둘째는 범위를 마우스로 끌어 잡는 것입니다. 콜론과 느낌표가 저절로 들어가니 손으로 칠 이유가 없습니다.
지금 해보세요 — 확인
빈 셀에 등호와 함께 세 글자를 쳐 봅니다. 아래로 목록이 안 펼쳐지면 수식 자동 완성이 꺼져 있는 것이므로 엑셀 옵션의 수식 항목에서 켭니다.
이름을 정의해 쓰는 통합 문서라면 이름 관리자를 가끔 열어 참조 대상 칸을 훑어보는 것도 도움이 됩니다. 시트를 지우면 그 시트를 가리키던 이름이 조용히 망가지는데, 그 상태로 몇 주가 지난 뒤에 발견하면 어느 시트가 있었는지조차 기억나지 않습니다.
파일을 넘겨받아 이어서 작업할 때는 손대기 전에 오류 셀부터 한 번 훑어 두면 좋습니다. 내가 고친 부분 때문에 생긴 오류인지 원래 있던 오류인지 나중에 가릴 수 있기 때문입니다.
수식을 고쳤는데도 화면이 그대로라면 오류가 아니라 계산 설정 쪽 문제일 수 있습니다. 수식이 계산되지 않고 글자 그대로 보이는 경우는 원인이 따로 있어 그쪽을 먼저 확인해야 합니다. 오류 코드조차 안 뜨고 수식이 글자로만 남아 있다면 이 글의 다섯 자리와는 아예 다른 갈래입니다.
자주 묻는 질문
본문에서 다루지 못한 것만 모았습니다.
Q.한 셀만 오류인데 옆 셀은 멀쩡합니다
A.수식을 복사한 것이 아니라 셀마다 따로 친 경우입니다. 멀쩡한 셀의 수식을 복사해 오류 셀에 붙여 넣고 참조만 맞춰 주면 두 수식이 같은 모양이 됩니다.
Q.오류를 숨기고 싶은데 IFERROR로 덮어도 되나요
A.화면에서는 사라지지만 수식은 여전히 고장난 상태로 남습니다. 합계가 조용히 비어 버리는 일이 생기므로 원인을 먼저 고치고, 덮는 것은 값이 없을 수 있는 자리에만 씁니다.
Q.매크로 파일에서만 오류가 납니다
A.직접 만든 함수를 쓰는 파일이라면 매크로가 차단된 상태일 수 있습니다. 노란 보안 경고 막대가 떠 있는지 보고, 신뢰할 수 있는 파일일 때만 콘텐츠 사용을 누릅니다.
Q.오류 셀이 너무 많아 하나씩 찾기 어렵습니다
A.이동 옵션에서 수식 항목의 오류만 골라 선택하면 오류 셀이 한꺼번에 잡힙니다. 그 상태로 첫 셀부터 수식 입력줄을 보며 넘어가면 같은 원인이 반복되는 것이 금방 보입니다.
정리 — 위에서부터 체크하세요
□ 함수 이름을 지우고 목록에서 다시 골라 넣었다
□ 조건으로 쓴 단어가 큰따옴표 안에 들어가 있다
□ 범위 가운데 콜론이, 시트 참조에 느낌표가 살아 있다
□ 수식에 쓴 이름이 이름 관리자 목록에 있다
□ 함수 이름 앞에 _xlfn. 이 붙어 있지 않다
□ 고친 수식을 같은 열의 나머지 셀에도 복사했다
#엑셀 #NAME오류 #수식오류 #이름정의 #오류해결








