회계팀 엑셀관리 노하우 ④ 검증수식오류 해결 (+숫자인식오류 방지, 엑셀 유효숫자)
지난 글에 이어서 회계팀 엑셀 시리즈 4번째 True/False 검증오류에 대해서 알아보자.
분명 같은데 다르다고 말하는 엑셀, 검증 수식 FALSE의 공포를 끝내보자.

1. 검증수식오류 : True 좋아, False 싫어
회계 감사 시즌이나 결산 마감일 D+1일, 전표 입력을 모두 마치고 보조부와 총계정원장을 대조할 때가 있다.
이때 가장 우리를 당황스럽게 하는 것은 눈으로 보기에는 분명히 똑같은 ‘2.1’인데,
엑셀 검증 수식인 =A1=A2를 넣었을 때 당당하게 FALSE가 뜨는 순간이다.
숫자 하나에 결산의 정당성이 부여되는 재무팀에서 ‘같지 않다’는 결과값은 나의 심기를 건드린다.
왜 이런 현상이 발생할까? 먼저 유효숫자의 개념을 이해해야 한다.
2. 소수점 자릿수가 아닌 엑셀 유효숫자 개념을 이해해야 한다
많은 실무자가 “소수점 몇째 자리까지 맞춰야 하나요?”라고 묻지만, 사실 엑셀에게 중요한 건 소수점의 위치가 아니라 전체 숫자의 개수다. 이를 유효숫자(Significant Digits)라고 부른다.
예를 들어, 1.23456789012345라는 숫자가 있다면 엑셀은 이 15개의 숫자를 모두 기억한다. 하지만 여기에 숫자 하나를 더해 1.234567890123456을 입력하면, 엑셀은 마지막 ‘6’을 무시하고 ‘0’으로 처리해버린다.
결산 시 다루는 숫자가 만 원, 억 단위처럼 커질수록 소수점 아래에서 허용되는 자릿수는 줄어든다. 반대로 숫자가 아주 작다면 소수점 아래 아주 깊은 곳까지 비교하게 된다. 결국 숫자의 크기와 상관없이 앞에서 부터 딱 15개까지만 같으면 엑셀은 비로소 TRUE를 내뱉는다.

예를 들어 A1 셀에는 2.14가 입력되어 있고, A2 셀에는 2.06이 입력되어 있다고 가정해 보자. 만약 두 셀 모두 소수점 첫째 자리까지만 표시하도록 서식을 설정했다면, 우리 눈에는 둘 다 반올림된 2.1로 보인다. 하지만 엑셀은 내부적으로 원래의 소수점 데이터를 그대로 보존한다.
검증 수식인 =A1=A2는 눈에 보이는 텍스트가 아니라 셀에 담긴 원천 데이터를 비교한다. 결과적으로 엑셀 입장에서는 $2.14 \neq 2.06$이기에 거짓(FALSE)을 뱉어내는 것이다.
3. 부동 소수점이 만드는 ‘보이지 않는 유령’
컴퓨터는 10진수 숫자를 2진수로 변환하여 계산하는데, 이 과정에서 우리가 입력한 2.1 같은 숫자가 내부적으로는 “2.09999999999999…”로 저장될 때가 있다. 이를 부동 소수점 오차(Floating Point Error)라고 한다.
이 오차는 대개 15자리 뒤쪽에서 발생하기 때문에 평소에는 눈에 보이지 않는다. 하지만 수많은 연산을 거친 데이터끼리 비교할 때는 이 ‘유령’ 같은 잔여 값이 발목을 잡는다.
내가 A1과 A2에 직접 2.1을 타이핑했다면 TRUE가 나오겠지만, 하나는 수식의 결과값이고 하나는 직접 입력한 값이라면 15자리 어딘가에서 발생한 미세한 차이 때문에 FALSE가 뜰 확률이 높다. 이것이 실무자들이 비교 수식 앞에서 좌절하는 진짜 이유다.
4. 실무자가 쓰는 해결책
해결책 ① : ROUND 함수로 비교의 기준을 통일하라
실무에서 가장 추천하는 방식은 비교하려는 두 값에 모두 ROUND 함수를 씌워 비교하는 것이다. 검증 수식을 작성할 때 단순히 =A1=A2라고 쓰지 말고, 다음과 같이 작성하는 습관을 들여야 한다.
=ROUND(A1, 1) = ROUND(A2, 1)
이렇게 하면 두 데이터의 소수점 첫째 자리까지만 남기고 나머지를 강제로 반올림하여 비교하게 된다. 비교 수식을 짤 때 반드시 ROUND 함수를 습관화해야 하는 이유가 여기 있다. 이처럼 작성하면 엑셀이 15자리까지 파고들며 억지 부리는 것을 사전에 차단할 수 있다.
해결책 ② : ABS 함수를 활용한 오차 범위 허용
데이터의 성격상 정확히 일치하기 어려운 경우, 즉 아주 미세한 차이 정도는 ‘같음’으로 인정해야 할 때는 절댓값 함수(ABS)를 활용한다.
=ABS(A1 – A2) < 0.01
두 값의 차이가 $0.01$보다 작다면 TRUE를 반환하라는 의미다. 이 방식은 대규모 데이터를 대조할 때 발생하는 반올림 누적 오차를 회피하는 데 매우 유용하다. 보통 감사인에게 제출할 명세서를 만들 때, 단수 차이로 인해 발생하는 불필요한 질의응답을 사전에 차단하기 위해 자주 사용하는 테크닉이다.
5. 실무자의 요약 및 조언
엑셀은 도구일 뿐, 그 결과를 맹신해서는 안 된다. FALSE라는 결과값이 떴을 때 당황하지 말고, 해당 셀을 클릭해 수식 입력줄에 나타나는 실제 값을 확인하는 여유가 필요하다.
- 눈에 보이는 값이 같아도 FALSE가 뜨는 이유는 표시 형식과 실제 저장된 값의 자릿수가 다르기 때문이다
- 엑셀의 계산 과정에서 발생하는 부동 소수점 오차나 보이지 않는 미세한 잔여 값이 비교 결과를 왜곡할 수 있다.
- 이를 해결하기 위해 ROUND 함수로 비교 자릿수를 통일하거나, ABS 함수로 허용 오차 범위를 설정하는 것을 추천한다.
- 검증 수식의 오류를 해결하는 과정 자체가 데이터의 정합성을 높이는 필수적인 결산 절차임을 명심해야 한다.
+도움이 되셨다면 공감이나 댓글 부탁드립니다.
