
AI로 만든 엑셀 파일, 시트끼리 숫자가 맞는지 보셨습니까
엑셀 모양으로 만든 급여 계산 화면과 급여명세서 화면의 실지급액을 맞춰 보면 이렇습니다.
20만 원이 달랐습니다.
두 화면 모두 시트 안 계산은 검산을 통과했습니다. 합계와 공제액은 각각 맞았습니다.
차이는 식대 비과세에서 났습니다. 한쪽은 식대를 비과세로 빼고 계산했고, 다른 쪽은 그 처리가 빠져 있었습니다.
AI로 만든 엑셀에서 제가 더 경계하는 건 이런 종류입니다. 수식 하나가 틀린 파일은 검산에 걸립니다.
시트마다 그럴듯한 답을 따로 내는 파일은 사정이 다릅니다. 시트 안 계산만 맞춰 보는 검산으로는 드러나지 않습니다.
108장 중 걸린 자리
지난 8월에 판매 페이지에 올릴 엑셀 모양 업무 화면 목업을 한 번에 108장 만들었습니다. 재고관리 화면이 72장이었고, 급여정산·근태·예약·매출 같은 새 업무 화면이 36장이었습니다.
화면을 채우는 일은 AI 에이전트 여러 개에 나눠 맡겼습니다. 레이아웃은 건드리지 말고 글자와 데이터만 바꾸라고 못 박았습니다.
검수도 AI가 했습니다. 만드는 데 참여하지 않은 새 에이전트가 완성된 이미지를 열어 판정했습니다.
재고 72장은 치명 결함이 0건이었습니다. 새 업무 36장에서 걸린 것들은 하나같이 시트와 시트 사이에서 생긴 문제였습니다.
검수 에이전트는 이 어긋남을 직접 잡아 경미한 결함으로 표시했습니다. 시트 안 계산은 전부 검산을 통과한 상태였습니다.
| 어긋난 곳 | 시트 안 계산 |
|---|---|
| 급여 계산 시트 실지급 ↔ 명세서 실지급 | 각각 검산 통과 |
| 근태 대시보드 지각 수 ↔ 상세 시트 | 각각 검산 통과 |
목업은 기능을 보여 주는 그림이라 회계 서류 수준까지 맞추지 않고 그대로 등록했습니다. 이게 매달 실제로 쓰는 급여 파일이었다면 얘기가 달라집니다.
이런 차이가 한 사람 줄에서 났다면 그 직원 통장에 20만 원이 덜 들어가거나 더 들어갔을 겁니다. 근태 쪽이었다면 지각 횟수를 두고 다툼이 났을 수도 있습니다.
시트 하나씩 보면 왜 안 보이나
이번 어긋남은 화면 여러 장을 교차해 대조해야 보이는 수준이었습니다. 시트 하나만 열어 보면 그 안의 숫자는 전부 맞습니다.
그래서 시트를 한 장씩만 확인하는 점검이라면 이런 어긋남은 그대로 지나갑니다. 시트 사이를 맞춰 보는 단계를 따로 두어야 합니다.
AI가 파일을 만들 때도 사정이 비슷합니다. 한 번에 한 시트씩 만들면 각 시트는 그 순간 정한 규칙대로 계산됩니다.
식대를 비과세로 볼지 같은 판단이 시트마다 따로 내려질 수 있습니다. 그러면 시트끼리 서로 다른 답이 나옵니다.
사람이 직접 짠 급여 파일이라면 명세서의 실지급 칸은 보통 계산 시트를 끌어오는 수식입니다. 숫자를 두 번 적지 않으니 어긋날 자리도 없습니다.
AI에게 받은 파일이라면 명세서 칸을 하나 눌러 보세요. 숫자가 그냥 박혀 있거나 같은 계산을 처음부터 다시 하고 있다면 어긋날 수 있는 구조입니다.
식대 비과세는 저도 손계산에서 틀린 자리입니다. 급여 양식을 검산하면서 과세 대상 금액을 식대를 빼기 전 금액으로 잡았습니다.
파일은 맞게 계산했고 제 기대값이 틀렸습니다.
Excel이 열어야 도는 계산
배포하는 엑셀 파일은 3단으로 만듭니다. 코드로 파일을 만들고, 실제 Excel로 열어 검산하고, PDF로 내보내 화면을 찍습니다.
가운데 단계를 빼지 않는 이유가 있습니다. 파이썬의 openpyxl 같은 라이브러리는 수식을 글자로 적어 넣을 뿐입니다.
계산은 Excel이 그 파일을 열어야 일어납니다. 만든 쪽 화면에서는 계산 결과를 볼 수 없습니다.
AI가 "파일을 만들었습니다"라고 보고해도 그 안의 숫자는 아직 한 번도 계산된 적이 없을 수 있습니다. 실제로 열어 봐야 드러나는 것들이 있습니다.
| 증상 | 원인 |
|---|---|
| 한국어 Excel에서 #VALUE! | TEXT(x,"General")의 "General"을 서식으로 못 알아봄 |
| 받은 파일을 열면 수식 칸이 전부 빈칸 | 계산값 없이 저장돼 보호된 보기에서 재계산 안 됨 |
| Excel 2016 화면에 #NAME? | 2021·365 이후에 생긴 함수(XLOOKUP·FILTER 등) |
앞의 두 줄은 제가 배포용 양식을 만들다 실제로 걸린 것입니다.
한국어 Excel은 TEXT(x,"General")의 "General"을 서식으로 알아보지 못해 #VALUE!를 냅니다. 검산 스크립트에는 -2146826273이라는 코드로 돌아옵니다.
숫자를 글자로 이어 붙일 때는 TEXT를 거치지 말고 & 로 그냥 붙이면 됩니다. 이런 차이는 받는 사람 환경에서만 나타납니다.
그래서 검산은 받는 사람과 같은 버전, 같은 언어판 Excel로 여세요. AI가 파일을 만든 환경과 그 파일을 매달 쓸 사람의 환경은 다를 때가 많습니다.
검산이 제 산수를 잡은 세 번
검산은 샘플 값을 넣고 손으로 미리 낸 기대값과 맞춰 보는 단계입니다. 둘이 다르면 FAIL이 뜹니다.
블로그 글에 붙일 양식 파일을 만들면서 FAIL이 세 번 떴습니다. 세 번 모두 파일 쪽이 맞았습니다.
장기요양보험료가 그중 하나입니다. 장기요양보험료는 건강보험료에 요율을 곱해 냅니다.
건강보험료 95,857원에 당시 양식에 넣어 둔 장기요양 요율 12.95%를 곱하면 12,413원입니다. 저는 12,414원으로 적어 두었습니다.
이 요율은 그때 양식의 설정값입니다. 실제로 쓰실 때는 그해 고시된 요율을 확인해 넣으세요.
나머지 둘은 안전재고 판정과 과세 대상 금액이었습니다. 안전재고가 4인데 현재고 3을 정상으로 기대했고, 과세 대상은 앞에서 말한 대로 식대를 빼기 전 금액으로 잡았습니다.
그 뒤로 FAIL이 뜨면 기대값부터 다시 계산합니다. 파일을 먼저 고치기 시작하면 맞는 수식을 틀리게 바꿀 수 있습니다.
줄 단위 대조 시트
시트 사이 대조를 눈으로 하면 금방 지칩니다. 대조 전용 시트를 하나 두는 편이 낫습니다.
같은 사람, 같은 품목을 열쇠로 삼아 두 시트에서 같은 항목을 끌어와 뺍니다. 열 위치는 파일에 맞게 바꾸세요.
=INDEX(급여계산!$K:$K, MATCH($A2, 급여계산!$A:$A, 0)) - INDEX(명세서!$H:$H, MATCH($A2, 명세서!$A:$A, 0))
결과가 0이 아닌 줄만 조건부 서식으로 칠하면 그게 확인할 목록입니다. #N/A가 뜨는 줄은 한쪽 시트에만 있는 사람이니 따로 봅니다.
합계끼리만 맞추면 안 되는 이유가 있습니다. 한 사람은 20만 원 많고 다른 사람은 20만 원 적으면 합계는 똑같이 나옵니다.
대조할 쌍은 업무마다 다릅니다.
| 파일 | 맞춰 볼 쌍 |
|---|---|
| 급여 | 계산 시트 실지급 ↔ 명세서 실지급 |
| 근태 | 대시보드 지각 수 ↔ 상세 기록 건수 |
| 견적·거래명세 | 발행대장 품목 합계 ↔ 양식 합계 |
| 재고 | 입출고 기록 누계 ↔ 현재고 |
대조 시트는 사후 점검입니다. 더 근본적인 처방은 같은 숫자를 두 곳에 적지 않는 구조입니다.
명세서 칸은 계산 시트를 끌어오는 수식으로 두고, 해마다 바뀌는 요율은 설정 시트 한 곳에만 둡니다.
요율이 어느 수식 하나에 옛 값으로 남아 있으면 대조 시트에서 그 사람 줄만 0이 아닌 값으로 뜹니다. 구조를 고치기 전에도 어디를 볼지는 그 한 줄이 알려 줍니다.
제가 파는 견적서·거래명세서 발행기도 이 원칙으로 짰습니다. 문서를 저장하면 발행대장과 양식 시트가 같은 입력에서 채워지고, 부가세율은 설정 시트 한 곳에만 있습니다.
인쇄 화면이라는 마지막 관문
숫자가 다 맞아도 남는 게 있습니다. 출력물에서 글자가 잘리는 문제입니다.
발주서 양식을 PDF로 찍었더니 "수신 (상호)"가 "신 (상호"로 잘려 있었습니다. 라벨을 좁은 열 하나에 넣은 탓이었습니다.
이 함정은 작업 폴더 설명서에 이미 적혀 있었습니다. 그런데 얼마 뒤 만든 납품확인서에서 같은 실수를 또 했습니다.
적어 둔 함정을 두 번째로 밟은 셈입니다. 지금은 라벨을 두 열 병합, 값을 네 열 병합으로 두고 한 줄에 한 항목만 넣습니다.
화면 목업 작업 때도 좁은 칸의 긴 글자가 줄바꿈되는 일이 있었습니다. 이후 작업 지시에는 "칸 글자는 짧게"를 넣었습니다.
화면과 인쇄물도 따로 봐야 합니다. 틀 고정을 걸어도 인쇄물 2페이지에 제목 줄은 따라오지 않고, 인쇄 반복 행을 따로 지정해야 합니다.
AI가 만든 파일은 대개 인쇄 미리보기를 거치지 않은 채로 옵니다. 이 단계는 PDF를 한 번 뽑아 사람이 직접 봐야 합니다.
혼자 점검할지, 다시 짤지
시트가 두세 장이고 쓰는 사람이 혼자라면 아래 절차로 충분합니다. 줄 단위 차이는 대조 시트에서 드러납니다.
판단이 갈리는 지점은 이렇습니다.
| 상황 | 권하는 방향 |
|---|---|
| 시트 2~3장, 혼자 씀 | 대조 시트를 붙여 그대로 사용 |
| 같은 숫자를 여러 시트에 손으로 적음 | 참조 구조로 다시 짬 |
| 요율·단가가 수식마다 박혀 있음 | 설정 시트로 빼서 다시 짬 |
| 여러 명이 동시에 입력하고 이력이 필요함 | 엑셀 밖의 웹 시스템 검토 |
AI로 받은 파일을 직접 손보고 싶다면 검산하는 법부터 익히는 게 빠릅니다. 엑셀 양식 설계와 AI 수식 검산 강의에서는 답을 아는 표본에 수식을 걸어 판정하는 실습을 합니다.
시트끼리 이미 얽혀 있어 어디서부터 볼지 모르겠다면, 고쳐 쓰기보다 참조 구조로 처음부터 다시 짜는 편이 빠를 때가 많습니다. 그런 파일을 받아 구조부터 다시 잡는 일도 상담으로 받고 있습니다.
납품 전 점검 절차
AI로 만든 엑셀을 남에게 넘기기 전에 이 순서로 봅니다. 앞 단계가 막히면 뒤 단계 결과를 믿을 수 없으니 순서대로 갑니다.
- 받는 사람과 같은 버전, 같은 언어판 Excel에서 엽니다. 수식 칸에 값이 차는지, #VALUE!·#NAME? 같은 오류 칸이 없는지 봅니다.
- 샘플 값을 넣고 손으로 낸 기대값과 맞춥니다. 다르면 기대값부터 다시 계산합니다.
- 같은 사람, 같은 품목을 열쇠로 시트끼리 줄 단위로 뺍니다. 0이 아닌 줄과 #N/A 줄을 하나씩 확인합니다.
- 4대보험 요율과 세율처럼 해마다 바뀌는 값이 설정 시트 한 곳에만 있는지 봅니다. 수식 안에 숫자로 박힌 요율이 있으면 설정 시트로 옮깁니다.
- PDF로 뽑아 라벨이 잘리지 않았는지, 2페이지에 제목 줄이 따라오는지 봅니다.
3번에서 만든 대조 시트는 지우지 말고 숨겨 두세요. 요율이 바뀌는 달마다 같은 자리를 다시 보게 됩니다.
이어서 읽기

사내 AI 챗봇 응답이 느릴 때, 범인은 AI가 아니었습니다
보험대리점 지사 시스템에 붙인 AI 비서가 '생각하는 중'으로 1~4분을 버텼습니다. 언어모델을 의심했지만 범인은 질문 단어마다 돌던 고객 검색이었고, 그걸 찾은 과정과 프롬프트 무게·스트리밍 처리, 다음 챗봇에 쓸 점검 순서까지 담았습니다.

회의록 자동 작성 AI, 화자 분리가 두세 명을 스무 명으로 나눴습니다
실제 정산 회의 녹음 15분 35초를 내 PC에서 돌려 화자별 전사와 회의록, 담당자가 붙은 할 일 6건까지 뽑은 기록입니다. 스무 명으로 쪼개진 화자를 고친 방법과 끝내 사람이 확인해야 하는 자리를 실측으로 적었습니다.

사내 문서 AI 검색, 지식베이스 2,582건 중 90건만 들어갔습니다
보험대리점 지사 시스템의 AI 비서에 실무지식 2,582건을 넣었는데 실제로 들어간 건 90건이었고 오류는 하나도 없었습니다. 조용히 빠진 문서를 찾은 과정과 검색 노이즈를 걷어낸 기준, 도입 전 점검표를 적었습니다.