BlueByte
Circular ReferenceFixed

Excel: "하나 이상의 순환 참조가 있습니다"

작성 Haneul Seo2026년 8월 19일 업데이트5 min

안녕하세요, BlueByte입니다. 순환 참조 경고는 막연하게 들리지만 해결은 구체적입니다 — 순환을 닫는 그 한 셀을 찾아 끊으면 됩니다. 오늘은 Excel이 그 셀을 곧장 짚게 해서 고치고, 순환이 실제로 의도된 한 경우까지 짚는 순서로 가보겠습니다.

이 경고가 뜻하는 것

경고가 뜨고 셀이 0이나 틀린 결과를 보입니다:

There are one or more circular references where a formula refers to its own
cell either directly or indirectly.

Excel은 자기 출력에 의존하는 수식을 계산할 수 없어 멈추고, 경고하며, 순환을 끊을 때까지 해당 칸을 0으로 둡니다. 관건은 어느 셀이 순환을 닫는지 정확히 찾는 것 — 경고는 통합 문서를 말하지 셀을 항상 짚지는 않습니다.

수식이 자기를 참조하게 되는 경위

셀의 수식이 계산에 자기 셀을 포함합니다. 두 방식:

  • 직접 — A1에 =A1+1, 자기 참조.
  • 간접 — A1이 B1을, B1이 A1을 써서 사슬로 서로 의존, 때로 여러 셀 길이.

재계산마다 자기 입력이 바뀌므로 안정적 답이 없습니다. 가끔 의도적(반복하는 공학·재무 모델)이지만, 대개 수식을 한 칸 더 끌어서 생긴 사고입니다.

Excel이 정확한 셀을 짚게 하기

직접 찾아 헤맬 필요 없습니다. 수식 탭에서 오류 검사 드롭다운을 열고 순환 참조를 가리키면 문제 셀을 나열하니 클릭해 이동합니다. 상태 표시줄에도 "순환 참조:"와 셀 주소가 표시됩니다. 그다음 같은 탭 참조되는 셀 추적으로 어떤 셀이 수식에 들어가고 어디서 순환이 닫히는지 봅니다 — 화살표를 시작 셀까지 따라가면 사슬 전체가 보입니다.

순환을 끊기(의도된 경우엔 허용)

  1. 순환 참조 목록이 가리키는 셀로 갑니다.

  2. 자기 결과에 더는 의존하지 않게 수식을 고쳐 씁니다 — 보통 다른 입력 셀을 가리키거나, 계산을 두 셀로 나눠 아무것도 자기를 먹지 않게 합니다.

  3. 순환이 의도적이면 의도적으로 켭니다: 파일 → 옵션 → 수식 → 반복 계산 사용, 적절한 최대 반복·변경 임계값 설정.

실제 사례: 자기를 합한 SUM

누계 열이 갑자기 0이 되고 상태 표시줄에 "순환 참조: D10"이 뜹니다. D10으로 가니 =SUM(D2:D10) — 범위를 한 행 더 끌어 합계가 자기 칸을 포함했습니다. =SUM(D2:D9)로 바꾸니 순환이 사라지고 경고가 걷히며 누계가 계산됩니다. D10에 참조되는 셀 추적을 하니 순환이 곧장 D10을 가리켜 수정이 분명해졌습니다.

경고가 사라졌는지 확인

재계산(F9) 후 경고가 사라지고 셀이 기대 값을 보이는지 확인하세요. 상태 표시줄에 더는 "순환 참조"가 없어야 합니다. 숫자가 여전히 이상하면 다른 시트에 두 번째 순환이 있는지 오류 검사를 다시 돌리세요.

다시 겪지 않으려면

모델이 정말 필요하지 않으면 반복 계산을 꺼 두세요 — 켜면 Excel이 순환 참조 경고를 아예 멈춰 실수 순환을 가립니다. 입력에서 읽어 별도 출력에 쓰고 자기 입력으로 되먹이지 않는 수식을 만들고, 수식을 끈 뒤 범위를 다시 확인하세요.

#REF!·#VALUE!와의 구분

순환 참조는 구조적 문제입니다 — 수식이 자기를 가리킴. 삭제된 셀에 대한 잘못된 참조인 #REF!나 잘못된 인수 타입인 #VALUE!와 다릅니다: 그것들은 수식이 무엇을 참조하는가의 문제이지 자기 참조가 아닙니다. 그러니 순환 참조 경고가 보이면 그 셀 자신의 범위부터 보세요.

관련 질문

상태 표시줄에 '순환 참조'는 뜨는데 셀 주소가 없습니다.

참조가 다른 열린 워크시트에 있습니다. 통합 문서의 모든 시트를 검색하는 수식 → 오류 검사 → 순환 참조를 쓰세요.

그냥 반복 계산을 켜서 경고를 없애면 안 되나요?

순환이 의도된 경우에만요. 실수 순환을 조용히 하려고 켜면 조용히 틀린 숫자를 안고 가게 됩니다.

정말 필요하면 반복 횟수는 얼마가 안전한가요?

기본값(100회, 변경 0.001)으로 시작하고 모델이 더 정밀해야 할 때만 조이세요. 아주 큰 횟수는 재계산을 느리게 합니다.

왜 셀이 0을 보이나요?

순환 참조를 감지했고 반복 계산이 꺼져 있으면 Excel은 셀을 계산할 수 없어 순환을 끊을 때까지 0을 표시합니다.

수식을 아래로 끈 뒤 나타났습니다. 왜죠?

끌기가 범위를 수식 자기 칸까지 넓혀 SUM이 자기를 합할 수 있습니다. 경고가 짚는 셀의 범위를 확인해 되돌리세요.

참고 자료

Haneul Seo

Infrastructure engineer · 10+ years running Linux fleets

같은 카테고리 다른 글

5.7.26Fixed

Gmail이 550-5.7.26으로 거부: 도메인의 DMARC 정책 때문에 인증되지 않은 메일이 수신 거부됨

Gmail이 우리 도메인이 직접 게시한 DMARC 정책을 집행한 결과입니다. 메시지가 header From: 도메인 기준으로 SPF·DKIM 정렬을 모두 통과하지 못했고, p=quarantine이나 p=reject 정책이 이를 하드 바운스로 바꿉니다. Authentication-Results 헤더가 어느 검사가 실패했는지 알려주고, SPF·DMARC·DKIM 레코드를 향한 dig 세 번이 원인을 지목합니다. SPF나 DKIM으로 인증하라는 비슷한 문구의 바운스는 정책이 아니라 Gmail의 기본 발신자 요구사항에 걸린 다른 문제입니다.

Gmail / Google Workspace
AADSTS50011Fixed

Microsoft Entra ID: AADSTS50011, 요청에 지정된 redirect URI 가 앱에 등록된 redirect URI 와 일치하지 않음

로그인은 끝까지 성공했는데 마지막 한 단계에서 Entra ID 가 거부합니다. 앱이 보낸 redirect_uri 가 등록된 URI 중 어느 것과도 문자 단위로 같지 않기 때문입니다. 비교는 대소문자를 구분하고 끝의 슬래시를 세며, localhost 를 제외하면 https 를 요구하고 포트도 일치해야 합니다. 목록도 web·spa·publicClient 세 개로 나뉘어 있고, application 객체가 아닌 service principal 에 넣은 URI 는 동기화 과정에서 사라질 수 있습니다. 오류 메시지에서 URI 와 앱 ID 를 꺼내 az ad app show 로 대조하고, az ad app update 나 Graph PATCH 로 정확한 문자열을 넣은 뒤 3~5분 기다리면 됩니다.

Microsoft Entra ID
535 5.7.139Workaround

Exchange Online: 535 5.7.139 Authentication unsuccessful, SmtpClientAuthentication is disabled

smtp.office365.com 으로 메일을 보내던 스캐너·스크립트·앱이 535 5.7.139 로 멈추는 이유는 SMTP AUTH 프로토콜이 테넌트 전체, 해당 메일박스, 또는 Basic 인증을 막는 인증 정책·보안 기본값 중 어딘가에서 꺼져 있기 때문입니다. 문구(Tenant, Mailbox, 'did not meet the criteria')를 읽고 Get-TransportConfig·Get-CASMailbox·Get-AuthenticationPolicy 로 확인한 뒤, 테넌트 전체가 아니라 필요한 메일박스 하나만 엽니다. Basic SMTP AUTH 는 다리일 뿐입니다. Microsoft 는 2026년 12월 말 기존 테넌트에서 기본 비활성화하므로 발신자를 OAuth·High Volume Email·릴레이 커넥터로 옮겨야 합니다.

Exchange Online (Microsoft 365)
Error code: 5003Fixed

Zoom: "Unable to connect" 오류 코드 5003 — 브라우저는 되는데 데스크톱 앱만 Zoom 에 못 붙을 때

오류 5003 은 같은 PC 의 웹 클라이언트는 정상 입장하는데 Zoom 데스크톱 앱이 Zoom 서버와의 연결을 끝내지 못하는 상태입니다. 앱은 브라우저보다 더 많은 것을 필요로 합니다. Zoom 방화벽 문서는 미팅용 TCP 443/8801/8802 와 UDP 3478/3479/8801–8810, 인증서 검증용 CA 호스트 목록을 들고, zoom.us 와 *.zoom.us 를 프록시·SSL 검사에서 제외하라고 권고합니다. 포트 테스트, curl issuer 확인, 앱 내장 Network Connectivity Tool(Ctrl+Alt+Shift+D / Cmd+Option+Shift+D)로 어느 계층이 끊겼는지 보고 그 계층을 고치며, 재설치는 옆자리는 되는데 한 대만 실패할 때 씁니다.

Zoom
Slack cannot connect. / Last updated less than a minute ago…Fixed

Slack: 회사 프록시 뒤에서 뜨는 "Slack cannot connect"와 회색 "Last updated…" 띠

Slack은 채널을 평범한 HTTPS로 불러오지만 새 메시지는 443 포트로 Slack이 이름을 밝힌 wss-*.slack.com 호스트 셋(primary·backup·mobile)에 붙는 지속 WebSocket으로 받습니다. 프록시나 방화벽이 HTTP 쪽은 통과시키고 upgrade는 막으면 — 대개 wss 호스트에 SSL 복호화가 켜져 있거나 허용 목록이 slack.com에서 끝나기 때문에 — 브라우저는 멀쩡해 보이는데 앱은 회색 "Last updated…" 띠나 "Slack cannot connect."를 띄웁니다. 문제의 PC에서 curl 프로브 두 개로 어느 계층이 막혔는지 보고, wss 호스트 세 개를 복호화에서 예외 처리하고, my.slack.com/help/urls의 도메인을 전부 허용한 뒤 my.slack.com/help/test로 확인합니다.

Slack
locked for editingFixed

Word: 문서가 "locked for editing by another user"라며 열리지 않음

Word가 문서의 잠금(owner file)을 발견해 다른 누군가가 열어 두었다고 판단하고 읽기 전용 사본만 제안합니다. 대개는 아무도 열지 않았습니다: 크래시가 잠금을 남겼거나, 숨은 Word 프로세스가 여전히 파일을 쥐고 있는 것입니다. 어느 쪽인지 확인하고 Word 인스턴스를 모두 닫은 뒤 남겨진 ~$ owner file을 삭제하면 문서가 다시 편집 가능하게 열립니다.

Microsoft Word