======


엑셀을 사용해서 숫자를 계산하다보면 소수점 이하로 값이 나올 때가 있다.


보통 이런 경우 셀 서식을 이용해서 소수점 아래 N자리까지 표시를 하게 설정을 해서 사용하게 되는데, 이 때 한 가지 문제가 생긴다.


1.201048 이라는 값이 있을 때, 소수점 아래 2자리까지 표시하게 설정했을 경우 내가 원하는 노출값은 1.2일 것이다. 하지만 셀에는 1.2가 아닌 1.20으로 표시가 된다.


소수점 끝자리가 0일 때 1.20이나 1.0으로 표시하도록 할거면 서식에서 #.0#이나 #.00으로 했겠지만.. 내가 원하는건 소수점 끝자리가 0일 때, 0을 아예 표시하지 않는 것이다.




내가 원하는 것은 1.20이 아닌 1.2로 표시가 되는 것인데.. 어떻게 해야 할까 고민하다가 한 가지 생각을 떠올린다. 엑셀의 숫자 표시 형식은 사용자가 임의로 설정해서 표시되게 할 수 있다. [셀 서식 - 표식 형식 - 사용자 지정] 에서 형식을 '#,###.##'으로 설정하자 1.201048이 1.2로 표시가 된다.



이걸로 소수점 이하의 값이 나올 때 셀에 표시되는 값에 대한 문제가 해결된 것처럼 보였다. 하지만 얼마 지나지 않아 또다른 문제가 생기고 말았다.


이번에는 1.002048이라는 숫자를 입력했을 때 문제가 생겼다. 내가 보고 싶은 셀값은 1인데, 셀에는 '1'이 아닌 '1.'으로 값이 표시되는 것이다.



이것은 굉장히 거슬린다. 다른 수식으로 해결할 수 있나 이것저것 시도해 보아도 해결되지 않았다. 네이버 지식인의 도움을 구하기도 해봤지만 역시나 다들 수식에서 해결방법을 찾아보았지만 이거다! 하고 생각되는 해결법은 보이지 않았다.



그러다가 한 가지 방법을 떠올리게 되었고, 그 방법은 성공했다. 1.002048로 입력하더라도 셀에는 '1'로 표시가 된 것이다. 소수점 끝자리가 0이 아닌 다른 수를 입력할 경우 소수점 이하 2자리까지 정상적으로 표시가 된다.



방법은 굉장히 간단했는데, 셀 서식의 도움을 받지 않고 함수인 'ROUND' 함수를 이용하는 것이 정답이이었다. ROUND 함수의 경우 2개의 인수를 입력해야 하는데, 필요한 인수는 다음과 같다.


=ROUND('입력값', '표시할 소수점 자릿수')


즉, 1.1135479887 라는 숫자가 입력되었을 때 입력된 값의 소수점 아래 2자리까지 표시하고 싶다면 아래와 같이 입력하게 된다.


=ROUND(1.1135479887,2)


그러면 셀에는 1.11로 표시가 된다. 1.002048을 입력하면 다음과 같이 '1'로 표시된다. 셀 서식에서 소수점 2자리까지 표시하게 했을 경우 나타나던 1.00 이나, 사용자 지정 서식인 #,###.##으로 표시했을 때 표시되던 1. 이 아닌 1이라는 숫자만 표시된다. ROUND 함수는 반올림해서 표시가 되기 때문에 소수점을 무조건 올림해서 표시하고 싶으면 ROUNDUP 함수를, 그냥 버리고 싶으면 ROUNDDOWN 함수를 사용하면 된다.



어떻게 보면 왜 이런 것을 가지고 고민했을까 싶을 정도의 문제지만, 막상 해결법을 찾을 때는 셀 서식으로 해결해야한다고 생각해서 한동안 어떻게 해결할까 고민했던 문제였다. 혹시 모르니 기록용으로 남겨둔다.




======

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기