AI 해결 노트 · 2026-09-18 · 실측 2026-09-18
엑셀 수식이 계산되지 않을 때 — 텍스트 서식·앞따옴표·수동 계산을 하나씩 재현했습니다
한 줄로
수식이 안 먹는 경우 네 가지를 각각 만들어 놓고 증상과 복구 후 값을 재 봤습니다. 화면에 =A1+A2 라는 글자가 그대로 보인 두 경우는 그 칸이 수식으로 인정되지 않았고(텍스트 서식, 앞 작은따옴표), 숫자는 보이는데 값이 안 바뀐 경우는 계산 옵션이 수동이었습니다.
증상
- 칸에
=A1+A2라고 적힌 글자가 그대로 보이고 결과가 안 나옵니다. - 참조하는 칸의 숫자를 바꿨는데 합계가 그대로입니다.
- 어떤 칸은 되고 어떤 칸은 안 됩니다.
실측 환경
| 항목 | 값 |
|---|---|
| OS | Microsoft Windows 11 Home 10.0.26200 (build 26200) |
| 셸 | PowerShell 7.6.6 |
| 엑셀 | Excel 16.0, build 20326 |
| 시험 파일 | 빈 통합 문서를 새로 만들어 직접 넣은 값 (A1=10, A2=20) |
각 경우마다 엑셀이 그 칸을 어떻게 보고 있는지 여섯 가지를 찍어 확인했습니다. 화면에 보이는 글자(.Text), 값(.Value2), 수식(.Formula), 수식으로 인정되는가(.HasFormula), 셀 서식(.NumberFormat), 앞에 붙은 글자(.PrefixCharacter)입니다.
네 가지를 하나씩 만들어 봤습니다
아래는 돌린 스크립트에서 설정 부분만 뽑은 것입니다. 실제로는 경우 3에서 수동으로 바꾼 뒤 A1을 100으로 고쳐 값이 안 따라오는 것을 확인했고, 경우 4는 계산 옵션을 자동으로 되돌리고 A1을 10으로 돌려놓은 상태에서 돌렸습니다.
$xl = New-Object -ComObject Excel.Application
$wb = $xl.Workbooks.Add()
$ws = $wb.Worksheets.Item(1)
$ws.Range("A1").Value2 = 10
$ws.Range("A2").Value2 = 20
# 경우1 — 셀 서식을 '텍스트'로 만들어 두고 수식을 넣는다
$ws.Range("B1").NumberFormat = "@"
$ws.Range("B1").Formula = "=A1+A2"
# 경우2 — 앞에 작은따옴표를 붙여서 넣는다
$ws.Range("B2").Value2 = "'=A1+A2"
# 경우3 — 계산 옵션을 수동으로 바꾼다 (-4135 = xlCalculationManual)
$ws.Range("B3").Formula = "=A1+A2"
$xl.Calculation = -4135
# 경우4 — 자기 칸을 가리키는 수식
$ws.Range("B4").Formula = "=B4+1"결과 — 증상과 복구
| 경우 | 화면에 보이는 것 | .HasFormula | 알아보는 표시 | 복구 방법 | 복구 후 값 |
|---|---|---|---|---|---|
| 1 · 셀 서식이 텍스트 | =A1+A2 | False | .NumberFormat 이 @ | 서식을 일반으로 바꾼 뒤 수식을 다시 입력 | 30 |
| 2 · 앞에 작은따옴표 | =A1+A2 | False | .PrefixCharacter 가 ' | 수식을 다시 입력 | 30 |
| 3 · 계산 옵션 수동 | 30 (옛 값) | True | 상태 표시줄에 「계산」 | 한 번 계산시키거나 계산 옵션을 자동으로 | 120 |
| 4 · 순환 참조 | 0 | True | .CircularReference 가 B4 | 자기 칸을 가리키지 않게 고침 | 20 |
경우 1과 2는 화면에서 똑같이 보입니다. 둘 다 .Text 가 =A1+A2 이고 .HasFormula 가 False 입니다. 구분은 셀 서식과 앞글자로 합니다.

글자로 들어간 칸은 왼쪽 맞춤, 계산된 숫자는 오른쪽 맞춤 으로 붙습니다. 맞춤을 손대지 않은 표라면 이것이 가장 빨리 눈에 띄는 표시입니다.
경우 1 — 서식만 되돌려서는 안 됩니다
셀 서식을 텍스트에서 일반으로 되돌린 직후에 다시 찍어 보면 이렇습니다.
[서식만 일반으로 바꾼 뒤] B1
화면에 보이는 것(.Text) = '=A1+A2'
값(.Value2) = '=A1+A2'
수식인가(.HasFormula) = False
셀 서식(.NumberFormat) = 'G/표준'서식은 일반으로 바뀌었는데 여전히 글자입니다. 이미 글자로 들어간 값은 서식을 바꾼다고 수식으로 돌아오지 않습니다. 같은 수식을 한 번 더 넣어야 합니다.
[수식을 다시 넣은 뒤] B1
화면에 보이는 것(.Text) = '30'
수식인가(.HasFormula) = True저희가 확인한 복구는 COM으로 .Formula 를 한 번 더 설정하는 것이었습니다. 화면에서 같은 일에 해당하는 조작으로는 그 칸을 누르고 F2 를 눌렀다가 그대로 Enter 를 치는 방법이 쓰입니다. 그 방법이 같은 결과를 내는지는 이번 시험에서 확인하지 않았습니다.
경우 2 — 작은따옴표는 화면에 안 보입니다
'=A1+A2 를 넣은 칸은 서식이 G/표준 으로 멀쩡한데도 계산되지 않았습니다. 앞에 붙은 작은따옴표는 .Text 에 들어 있지 않았고 .PrefixCharacter 에만 ' 로 남았습니다. 화면에 보이는 글자는 경우 1과 똑같았다는 뜻입니다. 이 칸도 수식을 다시 넣으니 30이 나왔고 .PrefixCharacter 가 비었습니다.
경우 3 — 숫자는 보이는데 안 바뀝니다
=A1+A2 가 30을 내고 있는 상태에서 계산 옵션을 수동으로 바꾼 뒤 A1을 10에서 100으로 고쳤습니다. 120이 되어야 하는데 30 그대로였습니다.

왼쪽 아래 상태 표시줄을 보시면 「준비」 옆에 「계산」 이라는 글자가 하나 더 떠 있습니다. 계산할 것이 밀려 있다는 표시입니다. 복구 후 캡처에서는 이 글자가 사라졌습니다.
복구는 두 가지입니다.
- 한 번만 계산 — COM으로는
$xl.Calculate(). 부르고 나니 120으로 바뀌었습니다. 화면에서 여기에 해당하는 키는F9인데, 키를 눌러서 확인하지는 못했습니다. - 계속 자동으로 — COM으로는
$xl.Calculation = -4105. A1을 7로 바꾼 뒤 이 값을 자동으로 되돌리자 27이 됐습니다.

남이 보낸 파일 하나가 다른 파일까지 멈춥니다
계산 옵션은 파일마다 따로 걸리지 않습니다. 확인해 봤습니다. 계산 옵션을 수동으로 둔 채 저장한 파일과 자동으로 둔 채 저장한 파일을 하나씩 만들고, 새 엑셀에서 여는 순서를 바꿔 가며 Application.Calculation 을 읽었습니다.
| 먼저 연 파일 | 그때 계산 옵션 | 이어서 연 파일 | 그 뒤 계산 옵션 |
|---|---|---|---|
| 수동으로 저장한 파일 | 수동(-4135) | 자동으로 저장한 파일 | 수동(-4135) 그대로 |
| 자동으로 저장한 파일 | 자동(-4105) | 수동으로 저장한 파일 | 자동(-4105) 그대로 |
두 순서 모두, 먼저 연 파일의 설정이 뒤에 연 파일에까지 그대로 갔습니다. 수동 파일을 먼저 연 상태에서 자동으로 저장한 파일을 열고 그 파일의 A1을 100으로 고쳐 봤더니, 합계 칸은 3에 멈춘 채 102로 바뀌지 않았습니다. 멀쩡하던 내 파일이 갑자기 계산을 멈췄다면 그날 먼저 연 파일을 의심하시면 됩니다. 저희가 확인한 범위는 같은 엑셀 안에서 연 통합 문서 두 개까지입니다.
경우 4 — 순환 참조
B4 에 =B4+1 을 넣었습니다. 값은 0 이 됐고 .HasFormula 는 True 였습니다. 수식이긴 한데 계산이 안 된 것입니다. 시트의 .CircularReference 를 읽으니 B4 가 나왔습니다. 자기 칸을 가리키지 않는 =A1*2 로 고치니 20이 됐습니다.
저희는 COM에서 대화상자를 끄고 돌렸기 때문에 화면 경고는 보지 않았습니다.
어디부터 보면 되나
- 그 칸이 왼쪽·오른쪽 어느 쪽에 붙어 있는지 봅니다. 저희 캡처에서는 글자로 들어간 칸이 왼쪽, 계산된 숫자가 오른쪽이었습니다. 맞춤을 손댄 표에서는 이 표시가 통하지 않으니 참고로만 쓰시고 서식과 함께 보셔야 합니다.
- 그 칸의 셀 서식이 「텍스트」인지 봅니다. 저희 경우 1의 칸은
.NumberFormat이@였고.HasFormula가False였습니다. - 서식이 일반인데도 글자로 남는 경우를 저희는 두 가지 봤습니다. 서식만 바꾸고 수식을 다시 넣지 않은 경우(경우 1)와 앞에 작은따옴표가 붙은 경우(경우 2)입니다. 둘 다 고치는 법은 수식을 다시 넣는 것으로 같습니다.
- 숫자는 나오는데 안 바뀌면 상태 표시줄에 「계산」이 있는지 봅니다 → 경우 3.
- 0이 나오면 그 수식이 자기 칸을 포함하고 있지 않은지 봅니다 → 경우 4.
실패한 것
- 한국어 엑셀에서 COM으로
NumberFormat = "General"을 주니Range 클래스 중 NumberFormat 속성을 설정할 수 없습니다.오류가 났습니다.NumberFormatLocal = "G/표준"으로 바꿔서 통과했습니다. 이 글의 복구는 그 방법으로 돌린 결과입니다. - 통합 문서가 하나도 열려 있지 않을 때
$xl.Calculation을 읽으면-2146826246이 나옵니다. 문서를 하나 열면-4105, 다시 다 닫으면-2146826246으로 돌아갔습니다. 세 번 다 확인했지만 이 값이 무엇을 뜻하는지는 알아내지 못했습니다. 이 글의 계산 옵션 값은 모두 문서를 연 상태에서 읽은 것입니다. - 화면에서 메뉴나 키를 눌러 재현하지는 못했습니다. 그림 세 장은 COM으로 값을 바꾸면서 엑셀 창만 따로 캡처한 것입니다.
확인하지 않은 것
- 계산 옵션을 바꾸는 리본 메뉴를 눌러 보지 않았습니다. 이 글에 그 메뉴 경로를 적지 않은 이유입니다. 확인한 것은
Application.Calculation값과 상태 표시줄의 「계산」 글자입니다. - 텍스트로 들어간 칸 여러 개를 한꺼번에 고치는 방법은 돌려 보지 않았습니다.
- 작은따옴표가 붙은 칸을 눌렀을 때 수식 입력줄에 그 따옴표가 보이는지는 확인하지 않았습니다. 저희가 본 것은
.Text와.PrefixCharacter값입니다. - 「수식 표시」 기능은 켜 보지 않았습니다. 이 기능의 동작과 단축키는 이번 시험에서 확인하지 않았습니다. 시트의 수식이 죄다 글자로 보인다면 한 칸씩 고치기 전에 이쪽을 먼저 찾아보시는 편이 좋습니다.
- 순환 참조일 때 화면에 뜨는 경고 문구와 상태 표시줄 표시는 보지 않았습니다.
- 반복 계산(
Iteration)을 켠 상태의 순환 참조는 시험하지 않았습니다. 시험할 때Iteration은False였습니다. - 쓴 수식은 덧셈(
=A1+A2,=B1+B2)과 순환 참조용=B4+1, 복구용=A1*2넷뿐입니다. VLOOKUP처럼 인수가 많은 함수에서 같은지는 보지 않았습니다.