• 최초 작성일: 2006-03-16
  • 최종 수정일: 2026-09-26
  • 조회수: 18 회
  • 작성자: 권현욱 (엑셀러)
  • 강의 제목: 전자계산기 계산값과 엑셀 계산값이 다를 경우

들어가기 전에

오래 전 엑셀 파일로 진행하던 강의를 웹 글로 복원한 것이라, "버튼을 눌러보세요"처럼 엑셀에서 직접 조작하라는 표현이 남아 있을 수 있습니다. 결과는 본문의 그림이나 표로 확인하실 수 있으며, 현재와 맞지 않는 내용은 보완하되 전반적인 스타일은 당시의 갬성(?)을 유지했습니다.

원본 강의의 질문과 설명, 예제, 단계별 이미지를 원본의 흐름에 맞춰 복원했습니다.

권현욱(엑셀러)
저자: 권현욱(엑셀러), 아이엑셀러 대표

필자는 Excel 컨설턴트, 작가, 그리고 크리에이터입니다. 현재 Microsoft Excel MVP이며, 『챗GPT+엑셀 업무자동화 정석』을 비롯한 10여 권의 도서를 집필했습니다. Excel 자동화 및 생산성 향상 분야에서 25년 넘는 경력을 보유하고 있습니다.

권현욱(엑셀러) 님의 최신 포스트:
  • 최신 글을 불러오는 중...


26년 경력 Microsoft MVP 권현욱(엑셀러) 지음

📊 신간 전자책(PDF) · 287쪽 · 13500원

엑셀 대시보드를 만드는 최적의 '표준 3계층 구조'

  • 3초 안에 읽히는 화면 설계 감각 습득
  • Microsoft Excel MVP의 실전 노하우 수록
  • 중간마진 없는 합리적인 가격, 오직 아이엑셀러에서만!
지금 구매하기 완성 화면 보기

전자계산기 계산값과 엑셀 계산값이 다를 경우

핵심 요약

  • 전자계산기 계산값과 엑셀 계산값이 다를 경우의 핵심 기능과 실제 활용 방법을 단계별로 살펴봅니다.
  • 엑셀계산, 전자계산기, 부동소수점를 중심으로 원본 강의의 예제와 수식, 설정 방법을 확인할 수 있습니다.
  • 원본 강의의 설명과 예제 흐름을 따라가며 실무에서 활용할 수 있는 방법을 익힐 수 있습니다.

강의 내용

예제 파일을 내려받으려면 여기를 클릭하세요.

엑셀로 계산한 결과값과 전자계산기로 계산한 결과값이 서로 다르게 나오는데

어찌된 영문일까요? 이 많은 걸 일일이 다시 계산할 수도 없고…

손바닥만한 전자계산기로 계산한 결과값과 엑셀로 계산한 결과값이 서로 다른

경우가 있습니다. 예를 들어 '=1*(.5-.4-.1) ' 라는 수식을 엑셀로 계산해 보면,

보신 것과 같이 -2.78E-17(또는 -0.0000000000000000278 )이라는 이상한 값이

나옵니다. 평소 부하 직원이 엑셀로 문서를 작성해서 오면 꼭 계산기로 두들겨서

엑셀로 계산한 것을 검산(?)을 해 보아야 직성이 풀리던 나소심 부장님은 이렇게

말합니다.

"거 봐, 엑셀은 믿을 게 못된단 말이야!

계산이란 모름지기 전자계산기로 해야지 엑셀은 무슨…"

똑똑하기로 정평이 나있는 엑셀에 왜 이런 현상이 생겨서 사람을 당황스럽게

만드는 것일까요?

마이크로소프트사의 KnowledgeBase에서는 이것에 이렇게 설명하고 있습니다.

Microsoft Excel은 IEEE 754 규정에 따라 부동 소수점 숫자의 저장과 계산이

설계되었습니다. IEEE는 Institute of Electrical and Electronics Engineers의 약어로,

컴퓨터 소프트웨어와 하드웨어의 표준을 결정하는 국제 기구입니다. 754 규정은

부동 소수점 숫자를 이진 컴퓨터에 저장하는 방법 기술에 널리 사용되는 규정입니다.

이 규정은 부동 소수점 숫자를 적절한 크기의 공간에 저장하고 상대적으로 빠르게

계산할 수 있기 때문에 많이 사용됩니다. 754 표준은 Intel, Motorola, Sun 및 MIPS

프로세서를 포함하여 부동 소수점 연산을 구현하는 현재의 거의 모든 PC 기반

마이크로프로세서의 부동 소수점 단위와 수치 데이터 프로세서에서 사용됩니다.

무슨 얘기인지 이해가 되십니까?

어쩌면… MS사는 쉬운 것을 어렵게 말하는 독특한 재주라도 가진 것만 같습니다. ^^;

아마도 MS사는 다음과 같은 말을 하고 싶었던 것이 아닌가 짐작됩니다.

이런 오류는 '부동 소수점 연산 오류'라고 하는 것으로, 마이크로소프트 엑셀에서만

나타나는 현상이 아니라 IEEE 754 규격을 사용하는 모든 컴퓨터(Processor)에서는

공통적으로 나타나는 현상이다. 즉 MS나 엑셀의 잘못이 아니다!!

컴퓨터(엑셀)은 모든 것을 0 아니면 1로 해석합니다. 즉 사람은 10진수를 기준으로

계산을 하지만 컴퓨터는 2진수를 사용합니다.

이런 현상은 바로 10진수를 2진수로 변환하는 과정에서 발생하는 문제입니다.

예를 들어 1/10을 10진수로 표기하면 0.1이 됩니다. 그런데 0.1을 이진수로 변환하면

0001100110011100110011…와 같이 무한 순환 소수가 됩니다. 이것을 유한한 셀에

표시할 때에는 약 -2.8E-17로 반올림으로 처리 되기 때문에 이런 문제가 생기는 것입니다.

이 문제는 두 가지 방법으로 해결이 가능합니다.

방 법 1 '표시된 정밀도' 옵션 조정

(1) '도구-옵션' 메뉴를 선택합니다.

(2) '계산' 탭을 선택하고 '표시된 정밀도' 항목을 클릭하여 체크 표시를 한 다음

'확인' 버튼을 클릭합니다.

0405 단계별 설명 이미지 1
아이엑셀러

(3) 데이터 정밀도를 영구히 잃게 된다는 메시지 상자가 나타나는데 겁먹지 말고

대범하게 '확인' 버튼을 클릭합니다.

0405 단계별 설명 이미지 2
아이엑셀러

이렇게 하면 전자계산기로 계산하였을 때와 동일한 결과값을 얻을 수 있습니다.

참고로 '표시된 정밀도' 옵션을 선택한다는 것은… 눈에 보이지 않는 소수점을

변경한다는 의미입니다. 예를 들어 1/3을 하면 결과값은 0.3333333....이지만

화면에 표시된 값이 0.3이면 0.3333333....을 0.3으로 반올림 처리하여 영구히

변경한다는 의미입니다.

방 법 2 Round 함수 사용

또다른 방법으로, Round 계열 함수를 사용해도 됩니다.

=ROUND((1*(0.5-0.4-0.1)),0)
 =ROUND((1*(0.5-0.4-0.1)),0)

참고로, 부동 소수점 연산 오류와 관련된 Microsoft KnowledgeBase 자료는

다음 게시물에서 살펴보실 수 있습니다.

http://support.microsoft.com/default.aspx?scid=KB;ko;78113&product=xlwkor

다음 시간에…