월말, 제품 사용 설문에 응답 100건이 모였다. 그중에 “이번 달 이 기능을 몇 번 썼나요"라는 질문이 있다. AI에게 정리를 맡기자 “62%가 이번 달 이 기능을 쓰지 않았다"는 답이 나왔다. 깔끔한 숫자다. 문제는 그 62건 중 응답자가 분명히 0이라고 답한 것은 24건뿐이었다는 점이다. 나머지 38건은 빈칸이었고, AI는 그것을 모두 0으로 셌다. 빈칸 38건 중 28건은 그 제품을 아예 써 본 적이 없어서 설문이 이 질문을 건너뛴 사람들이었고, 10건은 아직 답하지 않았을 뿐이었다.
빈칸이 나타내는 것은 데이터의 상태이고, 0은 의미 있는 관측이다. AI에게 스프레드시트 집계를 맡기기 전에 열마다 빈칸을 세 가지로 나눈다. 0으로 확인됨, 알 수 없음, 해당 없음. 비율을 낼 때는 어떤 분모를 썼고 빠진 값이 얼마인지도 분명히 밝힌다.
계산은 맞는데 답한 질문이 틀렸다
이것은 AI에게 다시 계산하라고 해서 고쳐지는 오류가 아니다. “빈칸이 무엇을 뜻하는지"가 적혀 있지 않은 한, AI도, 스프레드시트 수식도, 분석 프로그램도 저마다 다른 기본값을 쓸 수 있다.
널리 쓰이는 데이터 분석 도구 pandas의 공식 문서는 분명히 적고 있다. 합계를 낼 때 빠진 값이나 빈 데이터는 0으로 처리된다. 전부 빈칸인 열을 더하면 0이 나온다. 계산은 완벽하게 맞지만, 답은 엉뚱한 질문에 답하고 있다.
영국 정부 분석 부서의 스프레드시트 통계 공개 지침도 경고한다. 빈칸은 왜 데이터가 없는지 읽는 사람에게 알려 주지 않으며, 읽는 사람은 그것을 0으로 여기거나 뭔가 잘못됐다고 생각할 수 있다.
빈칸에는 적어도 세 가지 뜻이 있다
0으로 확인됨: 가게가 이번 주 반품이 0건이라고 확인했거나, 응답자가 “써 본 적 없음"을 분명히 골랐다. 실제 관측이므로 분자에도, 유효 응답의 분모에도 넣을 수 있다.
알 수 없음: 아직 답하지 않았거나, 동기화에 실패했거나, 원래 항목이 빠져 있다. 지금 값이 없다는 뜻일 뿐이니 슬그머니 0으로 바꿔서도 안 되고, 보고서에서 조용히 사라지게 해서도 안 된다. 적어도 개수, 출처, 누가 확인할지를 남긴다.
해당 없음: 그 제품을 써 본 적 없는 사람은 애초에 “이번 달 몇 번 썼나"에 답할 대상이 아니다. 퇴사한 직원을 이번 달 재직자 만족도에 넣어서도 안 된다. 해당 없음은 더 작은 숫자가 아니라, 그 기록이 이번 질문에 속하지 않는다는 뜻이다.
같은 기호를 여러 열에 똑같이 적용해서는 안 된다. 매출 열의 0, 아직 입력하지 않은 빈칸, 시스템이 내보낸 “N/A”, 배치를 위해 넣은 “-“는 모두 열과 출처에 따라 해석해야 한다. 근거는 항목 설명, 설문의 건너뛰기 규칙, 시스템 문서, 혹은 데이터 책임자에게 직접 묻는 것에서 나온다. 근거를 찾지 못하면 “알 수 없음"에 두고, 옆의 몇 행이 “그렇게 보인다"는 이유로 값을 채우지 않는다. 웹 표준 기구 W3C가 표 형식 데이터에 메타데이터(부가 설명) 표준을 정해 열마다 빈 값을 어떻게 읽을지 적을 수 있게 한 것도 바로 이 때문이다. CSV 파일에는 칸 안의 글자만 있을 뿐, 프로그램이 스스로 맞게 추측할 만큼의 의미가 담겨 있지 않다.
숫자를 낼 때는 분모와 빠진 값도 함께 낸다
처음의 설문으로 돌아가 보자. 100건 중 62명이 횟수를 분명히 적었고 그중 24명은 0이었다. 28명은 제품을 써 본 적이 없어서 해당 없음이었다. 10명은 아직 답하지 않았다.
“0회 사용자는 24%“는 100건 전체를 분모로 삼은 것이다. “유효 응답자 중 38.7%가 이번 달 쓰지 않았다"는 유효 응답 62건만 본 것이다. 둘 다 계산할 수 있지만 답하는 질문이 다르다. AI가 처음 내놓은 62%는 해당 없음과 알 수 없음을 0으로 셌기 때문에 어느 질문에도 제대로 답하지 못했다.
그래서 넘길 수 있는 AI 요약이라면 적어도 다음 숫자를 나란히 보여야 한다. 원래 행 수, 유효 관측 수, 0으로 확인된 수, 알 수 없음의 수, 해당 없음의 수, 이번에 쓴 분모, 그리고 각 상태를 어떤 규칙으로 판단했는지. 월별로 비교한다면 규칙이 중간에 바뀌지 않았는지도 확인한다.
채우기로 정한 뒤에도 원래 열은 남긴다
데이터 책임자가 결국 어떤 종류의 빈칸은 0으로 봐도 된다고 정하더라도, 원본 파일에 바로 채워 넣지 않는다. 원래 열은 그대로 두고 변환한 열을 따로 추가해 규칙, 바꾼 사람, 시각을 기록한다. 그래야 “원래 무엇이었는지"와 “어떤 규칙으로 무엇이 됐는지"를 언제든 비교할 수 있다.
위험도가 높은 데이터는 더 조심해야 한다. 의료, 신용, 보험, 채용, 인사 평가 기록의 빠진 값은 개인의 권리에 영향을 줄 수 있다. 범용 AI가 멋대로 값을 추정해 채우게 해서는 안 되고, 개인 정보가 담긴 파일 전체를 승인받지 않은 도구에 올려서도 안 된다. 먼저 개인을 식별할 수 없는 작은 표본으로 규칙을 확인하고, 데이터와 업무 책임자에게 분석 범위를 승인받는다.
다음에 AI에게 스프레드시트 정리를 맡길 때는 바로 비율을 계산하게 하지 말고, 먼저 빠진 값을 점검하게 하자. 회사 숫자에 공식 출처를 정하는 것과 같은 원칙을, 놓치기 쉬운 열 단위까지 좁힌 것이다. AI에게 회사 숫자를 묻게 할 때, 정확도는 정의를 관리하는 사람이 있느냐에 달렸다를 참고하자. 정리한 표를 다른 사람에게 넘긴다면 분모와 빠진 값에 대한 설명도 붙이자. 잘 정리된 AI 요약이 곧바로 넘겨줄 수 있는 업무는 아니다도 참고할 만하다.
AI 정리 카드
AI에게 스프레드시트 집계를 맡기고 싶은데, 빈칸을 0으로 처리할까 걱정된다.
판단 방법은 이 글에서 가져왔다: https://boosterminiclass.com/ko/posts/ai-spreadsheet-blank-cell-meaning/
글의 관점은 이렇다. 빈칸은 0이 아니다. 집계 전에 열마다 빈칸을 "0으로 확인됨", "알 수 없음", "해당 없음" 세 가지로 나누고, 비율을 낼 때는 쓴 분모와 빠진 값의 개수를 밝힌다. 근거가 없으면 알 수 없음으로 두고, 근처 데이터로 값을 추측하지 않는다.
내가 허락한 이 파일만 읽어 달라. 빈칸을 채우거나, 행을 지우거나, 수식을 바꾸거나, 원본을 덮어쓰지 말 것. 최종 비율이나 추세 결론도 아직 내지 말 것.
1. 시트, 데이터 범위, 열 이름, 그리고 빠진 값을 나타낼 수 있는 빈칸, 0, N/A, 대시, 기타 특수 코드를 찾아낼 것;
2. 열마다 데이터 형식, 전체 행 수, 비어 있지 않은 값 수, 명확한 0의 수, 각 특수 코드와 그 수, 빈칸 수, 찾아낸 항목 설명이나 건너뛰기 규칙을 적을 것;
3. 빠진 값 후보를 "0으로 확인됨", "알 수 없음", "해당 없음", "의미 확인 필요"로 나누고, 그것이 분자와 분모를 어떻게 바꾸는지 설명할 것;
4. 데이터 책임자에게 물어볼 질문을 최대 다섯 개 적고, 원본 파일을 바꾸지 않고 변환용 열을 추가하는 방안을 제시할 것.
내가 규칙을 확인할 때까지 이 단계에서 멈출 것.
참고 자료
- pandas documentation: Working with missing data — https://pandas.pydata.org/docs/user_guide/missing_data.html [accessed: 2026-10-11]
- UK Government Analysis Function (official guidance): Releasing statistics in spreadsheets — https://analysisfunction.civilservice.gov.uk/policy-store/releasing-statistics-in-spreadsheets [accessed: 2026-10-11]
- W3C Recommendation: Metadata Vocabulary for Tabular Data — https://www.w3.org/TR/tabular-metadata/ (2015-12-17)



