자세히보기

엑셀

엑셀 #REF! 오류 왜 뜨는걸까? 해결방법 완벽 가이드

엑셀퀘스트 2025. 11. 7. 09:29

 

엑셀을 사용하다 보면 한 번쯤은 만나게 되는 오류가 있다.
그중 가장 대표적인 것이 바로 #REF! 오류다.


초보자뿐 아니라 실무자에게도 자주 발생하며, 원리만 이해하면 쉽게 해결할 수 있다.

 

#REF!는 ‘Reference(참조)’의 줄임말로, 말 그대로 참조가 끊어졌다는 뜻이다.


엑셀의 수식은 항상 다른 셀이나 범위를 참조해 계산하는데,그 대상이 삭제되거나 이동되면 엑셀이 더 이상 참조할 수 없어 #REF! 오류를 표시한다.

 

 

 

예를 들어 =A1+B1 이라는 수식이 있는데,

B열 전체를 삭제하면 B1 셀은 사라진다.

그 결과 엑셀은 수식을 이렇게 바꾼다.

=A1+#REF!

즉, 더 이상 존재하지 않는 셀을 찾을 수 없어 오류로 표시하는 것이다.

시트나 파일을 삭제했을 때

=Sheet2!A1 이라는 수식이 있다고 가정하자.

그런데 Sheet2를 삭제하면 이 참조는 끊어진다.

이때도 #REF! 오류가 발생한다.

또는 다른 통합문서의 셀을 참조하고 있었는데

그 파일을 이동하거나 이름을 바꿔버려도 마찬가지다.

수식 복사·이동 중 참조가 어긋난 경우

수식을 복사하거나 이동할 때 상대 참조가 자동으로 변한다.

하지만 이동한 위치에 참조 대상이 존재하지 않으면

결과적으로 #REF!가 된다.

예를 들어,

=VLOOKUP(A1, B2:D10, 3, 0)

이라는 수식을 아래로 복사했는데

복사한 위치의 B2:D10 범위가 사라지면

VLOOKUP이 참조할 수 없어 #REF!로 바뀐다.


범위를 벗어난 참조

OFFSET, INDEX, INDIRECT 같은 참조 기반 함수에서도 자주 발생한다.

예를 들어

=INDEX(A1:A5, 10)

은 A1~A5 중 10번째 셀을 찾으라는 뜻이다.

하지만 10번째는 존재하지 않기 때문에 #REF!가 뜬다.

수식이 걸린 셀 자체가 삭제된 경우

다른 시트에서 참조 중인 셀을 삭제하면,

그 시트의 모든 연결 수식이 한 번에 #REF!로 바뀐다.

이런 현상은 여러 시트 간 계산을 자주 하는 실무 문서에서 자주 나타난다.


#REF!가 위험한 이유

이 오류의 무서운 점은 단순히 보기에 불편한 게 아니라,

다른 계산까지 연쇄적으로 망가뜨린다는 것이다.

합계, 평균, 비율 등 여러 함수가 #REF!를 포함한 결과를 계산할 수 없게 된다.

따라서 한 번 발생하면 문서 전체에 영향이 미친다.


예방 방법

삭제 전 참조 관계 확인

열이나 시트를 삭제하기 전에는 ‘수식 → 추적 화살표’ 기능을 켜서

어디서 참조되고 있는지 확인한다.


절대참조($) 사용

수식을 복사하거나 이동할 일이 많다면

$A$1처럼 절대참조로 고정해 두면

위치가 바뀌어도 참조가 깨지지 않는다.


이름 정의 사용

자주 쓰는 범위는 ‘이름 정의’로 관리한다.

예를 들어 ‘판매데이터’라는 이름으로 A2:D100 범위를 지정해두면,

수식이 =SUM(판매데이터)처럼 되어

범위가 이동되더라도 #REF!가 뜨지 않는다.


INDIRECT 남용 주의

INDIRECT 함수는 텍스트로 참조를 지정하기 때문에

시트 이름이나 셀 주소가 바뀌면 그대로 #REF!가 된다.

가급적 다른 참조 방식으로 대체하는 게 안정적이다.

파일 간 연결은 상대경로보다 고정경로로

외부 파일을 참조할 때는

상대경로(예: ..\폴더\파일.xlsx)보다는

고정경로(C:\Data\파일.xlsx)를 사용하는 게 낫다.

파일 이동 시 끊어지는 경우를 줄일 수 있다.


해결 방법

수식 직접 수정

#REF!로 표시된 부분을 클릭하고

올바른 셀 주소를 다시 지정한다.


IFERROR로 감싸기

=IFERROR(수식, "") 형태로 작성하면

오류가 발생했을 때 빈 셀로 처리되어 깔끔하다.


백업본 확인

#REF!는 원본 참조가 완전히 사라진 경우 되돌리기 어렵다.

가능하다면 이전 버전 파일에서 원본 셀의 내용을 복사해 복구한다.


정리

#REF!는 Reference Error, 즉 참조 불가능 오류다.

삭제, 이동, 복사 중 깨진 참조가 원인이며

수식의 논리적 문제라기보다 구조적 문제다.

수식 작성 시 절대참조, 이름 정의, 추적 기능을 적절히 사용하면

대부분 예방할 수 있다.

결국 #REF!는 ‘엑셀이 나를 공격하는 에러’가 아니라,

‘내가 참조를 잃어버린 셀을 여전히 부르고 있는 상태’다.

수식의 방향과 참조 구조를 이해하면

다시는 두려울 일이 없는 오류다.