글

10월, 2026의 게시물 표시

엑셀함정 - 항목 순서가 뒤바뀌어도 합계는 맞는다

매달 원천 파일을 받아서 보고용 파일에 옮긴다. 원천의 C열을 보고용 D열에 그대로 붙여넣거나, 같은 행 번호로 참조를 건다. 순서가 늘 같았으니까. 그러다 원천 쪽에서 항목 순서가 한 번 바뀐다. 보고용 파일은 그 사실을 모른다. 결론 값은 위치가 아니라 이름으로 가져온다. 행 번호로 가져오는 순간, 원천의 순서가 곧 내 파일의 정답이 된다. 자리가 바뀌면 무슨 일이 생기나 원천 파일에서 두 항목의 순서가 바뀌었다고 하자. 행 번호로 참조하는 보고용 파일은 여전히 3행을 A라고, 4행을 B라고 부른다. 하지만 이제 3행에는 B의 값이, 4행에는 A의 값이 들어 있다. 원천 파일 (순서가 바뀜) 3행 B사업부 80 4행 A사업부 20 5행 C사업부 50 합계 150 행 번호로 참조 보고용 파일 A사업부 80 B사업부 20 C사업부 50 합계 150 이름표와 값이 엇갈렸다 합계는 같다 값은 하나도 틀리지 않았다. 틀린 건 각 값이 앉은 자리다. 숫자 하나하나는 전부 원천과 일치한다. 합계도 맞는다. 대사를 해도 통과한다. 틀린 건 어떤 값에 어떤 이름표가 붙었는가 뿐이다. 그리고 이게 가장 비싼 종류의 오류다. A사업부가 잘한 달에 B사업부가 칭찬받고, B사업부가 부진한 달에 A사업부가 불려간다. 왜 순서가 바뀌나 원천 파일을 만드는 쪽에서는 순서를 바꾸는 게 아무 일도 아니다. 정렬 기준을 이름순에서 금액순으로 바꿨다 조직이 바뀌어 항목이 하나 추가되거나 합쳐졌다 시스템에서 내려받는 조회 조건이 달라졌다 담당자가 보기 편하게 행을 옮겼다 모두 원천 쪽 입장에서는 정당하다. 문제는 받는 쪽 파일이 순서가 영원히 같을 거라는 가정 위에 서 있다는 것이다. 그 가정은 어디에도 적혀 있지 않다. 어떻게 잡아내나 합계는 소용없다. 대신 각 항목을 자기 자신의 과거와 비교한다. 신호 의미 한 항목이 급증했다 실제 변동일 수 있다 다른 항목이 급...

결산검증 - 오류 셀 0개가 안전을 뜻하지 않는 이유

결산 파일을 넘기기 전에 오류 검사를 돌린다. 초록색 삼각형도 없고 #REF! 도 없다. 통과다. 그런데 지금까지 본 함정 여섯 개 중에 오류 표시가 뜬 것은 하나도 없었다. 결론 엑셀의 오류 검사는 수식이 돌아가는지만 본다. 수식이 맞는지는 보지 않는다. 그건 사람이 설계해야 할 영역이다. 엑셀이 잡아주는 것 엑셀이 경고를 띄우는 건 계산 자체가 불가능한 상황 이다. 참조하던 셀이 삭제됐다 ( #REF! ) 숫자여야 할 자리에 글자가 있다 ( #VALUE! ) 0으로 나눴다 ( #DIV/0! ) 찾는 값이 없다 ( #N/A ) 인접한 셀이 범위에서 빠진 것 같다 (초록 삼각형) 공통점이 있다. 전부 엑셀이 답을 못 내는 경우 다. 답을 낼 수 있으면 그 답이 맞는지는 묻지 않는다. 그래서 이런 것들은 전부 통과한다 무슨 일이 일어났나 엑셀이 보는 것 열 전체 참조로 같은 계정을 두 번 셌다 정상적인 덧셈 검증줄에 수식 대신 값이 들어 있다 정상적인 숫자 범위가 옆 블록을 한 칸 먹었다 정상적인 범위 새 항목이 소계에서 빠졌다 정상적인 범위 이름표와 값이 엇갈렸다 정상적인 참조 배부 기준을 잘못 걸었다 정상적인 곱셈 엑셀 입장에서는 아무 문제가 없다. 시킨 대로 계산했을 뿐이다. 틀린 건 시킨 내용이다. 엑셀이 보는 영역 계산이 가능한가 참조가 살아 있는가 사람이 봐야 할 영역 범위가 맞는가 무엇을 세고 있는가 구조가 봐야 할 영역 사람이 놓쳐도 걸리게 되어 있는가 오류 셀 0개는 왼쪽 칸만 통과했다는 뜻이다. 결산 사고는 거의 전부 가운데와 오른쪽 칸에서 난다. 그럼 무엇으로 대신하나 오류 검사가 못 보는 자리를 메우는 건 결국 다른 경로로 한 번 더 계산해보는 것 이다. 같은 수식을 다시 보는 건 도움이 안 된다. 틀린 수식은 몇 번을 봐도 같은 답을 낸다. 오류 검사를 대신하는 다섯 가지 다른 파일과 대사한다 — 내 파일 안에서만 맞춰보면 같이 틀린 걸 못 ...