1. FAQ
  2. 엑셀(Excel)
  3. AfterEffects
  4. Premiere
  5. Photoshop
  6. ETC

이 게시판은 아별닷컴 회원만 질문을 올릴 수 있습니다. 회원에게 주어지는 특권인셈이지요. 회원이 아닌 분들은 열람만 가능합니다.

UDF에 의한 계산 결과 오류

엑셀일반 조회 수 2942 추천 수 0 2012.01.13 11:08:43

안녕하세요^^

 

엑셀의 초짜가 감히 매크로 함수를 이용한 금액 집계표를 만들었습니다. 첨부한 3개 xlsm file은 입력 숫자만 다른 같은 시트입니다.

사용한 함수는 금액 집계를 위한 것인데, 첨부한 참고서의 예제를 따라 "=fn동일색합계(G4:G17,F3,1)" "=fn동일색합계(G5:G10,G4,0)" 두 가지를 사용 했습니다.

사용한 UDF들이 아별 UDF “sumbyCellColor”와 같은 기능인 것을 뒤늦게 알게 됐습니다.

 

함수 작성 기록을 정리해보면;

     1) "=fn동일색합계(G4:G17,F3,1)"는 색상이 같은 Cell의 값을 더하는 것으로서,

        각 대공종(Test Item 1 & 2)의 합계인 공사비 합계를 구하기 위해 F3,H3,J3에 등록했습니다.

     2) "=fn동일색합계(G5:G10,G4,0)"는 글꼴색이 같은 숫자를 더하는 것으로서,

        각 Sub-Item의 계를 구하기 위해 Test Item 행인 G4,I4,K4G11,I11,K11에 등록했습니다.

두 수식의 차이점은 마지막 인수가 “0”이면 글꼴색을, 그 이외의 숫자를 기입하면 바탕색을 참조하는 것입니다.

 

그 외의 행과 열의 수식은 그 아래나 왼쪽의 값을 더하기 위해 단순히 “=SUM(“ 함수를 사용 했습니다.

 

< 현 상 >

시트를 작성하고 테스트를 해보았더니 매우 큰 숫자의 집계 결과의 표현에 오류가 생기는 것입니다.

     - File “Result-Test_Case1_Step1.xlsm” 단계 까지는 정확한 결과를 보여 줍니다.

     - File “Result-Test_Case1_Step2.xlsm”에서 J13의 값을 증가시키자 총액 합계에 8이 부족한 오류가 나타납니다.

       이런 현상은 입력된 숫자에 따라 “Test Item”의 총액에도 발생하며 오차는 +인 경우도 있고 인 경우도 있습니다.

     - File “Result-Test_Case2.xlsm"은 더 큰 숫자를 표현해보기 위해 Cell 폭을 임시로 변경했습니다.

       백억 단위를 입력하니 총액의 계가 모두 큰 오차를 보여주는데, 테스트를 해보니 천만 단위에서도 같은 현상이 나타납니다. 특히 입력 숫자의 마지막이 0이 아닌 다른 숫자인 경우에 더욱 그렇습니다. 내부적으로 뭔가 숨어 있는듯 합니다.

 

< 질 문 >

이 시트의 함수를 위해 참고서 저자가 제공한 “mod색합계.bas”를 사용했으며 이 모듈에 대한 설명은 첨부 참고서 (1~5).jpg”에 있습니다.

제가 엑셀의 초짜라 어떤 오류에 기인한 것인지 찾아내지를 못하고 있습니다.

그리고 혹 VB 모듈을 수정해서 해결이 가능하다면 수정과 시트에 재적용 방법도 궁금합니다.

 

< 대 안 >

“sumbyCellColor”““sumbyFontColor”로 대체하면 해결이 될 것 같은데 VB 모듈을 구하는 길과 사용법을 알고 싶습니다.

 

 

출판사를 통하여 저자에게 질문을 해도 감감 무소식이라 고수님들께 해답을 구해봅니다.

 


댓글 '2'

profile

[레벨:30]아별

2012.01.13 14:53:49
*.104.126.21

안녕하세요? 엑셀의 초짜님..

사용자 정의 함수(UDF)를 공부하시는군요..

본인이 필요한 함수를 직접 개발해서 사용한다는 것은 멋진일이죠.. 화이팅입니다.


일단 답변부터 드리겠습니다.


    아래 선언문을 

    Dim sSum As Single


    아래처럼 변경하시면 됩니다.

    Dim sSum As Double


데이터 형식에 대한 것은 엑사모에서 참고하시면 될 것 같아요..

http://examo.co.kr/

위 링크로 들어가서 로그인 하신 다음에 아래 링크 참조..

http://examo.co.kr/tn/board.php?board=qqqVBA&search=%C7%FC%BD%C4&shwhere=subject%7C&command=body&no=12



음.. 그리고..


    결과 값을 돌려줄때.. 왜 반올림을 하는지는 모르겠네요..

    fn동일색합계 = Round(sSum, 2)


    그냥 계산 결과를 리턴하는게 좋을 것 같습니다.

    fn동일색합계 = sSum


도움이 되셨기를..

[레벨:0]엑셀의 초짜

2012.01.13 15:07:01
*.196.124.177

아이고 엑셀의 "신"님 감사합니다.

대략 엑셀을 등한시 하다가 뭔가 새로 시작을 해볼려니 그리 만만치 않군요.

우선 용어가 생소해서 퍼뜩 다가오지를 않습니다.

 

항상 즐거운 시간 되시기 바랍니다. ♡

문서 첨부 제한 : 0Byte/ 2.00MB
파일 제한 크기 : 2.00MB (허용 확장자 : *.*)
List of Articles
번호 제목 글쓴이 날짜 조회 수sort
공지 공지 [공지] 아별닷컴의 엑셀 질문방 폐쇄합니다. 카페 질문방 이용하세요.. imagefile [레벨:30]아별 2015-04-23 45365
136 엑셀일반 아별툴 설치 문제 [2] [레벨:1]neo 2013-08-21 2765
135 엑셀일반 도와주세요~!! 2탄 file [2] [레벨:2]딸꾹질쟁이 2013-07-16 2770
134 엑셀일반 win7에서 파일열기시 imagefile [2] [레벨:3]말키리 2013-02-25 2772
133 엑셀일반 질문드립니다 ^^! file [레벨:1]쎔히 2014-08-04 2794
132 엑셀일반 기본 라인 없는 문서 만드는 법 file [2] [레벨:6]파이스 2012-04-12 2819
131 엑셀일반 엑셀 질문이 있습니다. file [레벨:1]최영석 2014-09-01 2827
130 엑셀일반 안녕하세요 아별님 file [2] [레벨:2]북곰 2013-06-04 2835
129 엑셀일반 하이퍼 링크 [1] [레벨:5]눈물바다 2014-09-26 2835
128 엑셀일반 엑셀 관련 질문입니다. imagefile [2] [레벨:1]JYK 2013-11-11 2859
127 엑셀일반 도움 부탁드려요 ㅜㅜ 정렬 질문입니다. [2] [레벨:1]captainkidd 2013-11-25 2872
126 엑셀일반 셀 병합 [4] [레벨:5]눈물바다 2012-06-18 2910
125 엑셀일반 질문하나 더 드립니다! [1] [레벨:4]나카타 2011-12-09 2924
124 엑셀일반 신입 주제에 질문 먼저라 죄송합니다 ㅠㅠ file [3] [레벨:1]에봉이 2011-12-09 2933
123 엑셀일반 활성창 이동 [2] [레벨:3]해바라기1 2011-09-01 2940
» 엑셀일반 UDF에 의한 계산 결과 오류 [2] [레벨:0]엑셀의 초짜 2012-01-13 2942
121 엑셀일반 아별님! 감사합니다.다시질문드립니다 file [2] [레벨:2]북곰 2013-06-07 2954
120 엑셀일반 머리글 file [2] [레벨:1]키스의왕자 2013-07-12 2957
119 엑셀일반 자동채우기 기능(급합니다...ㅠㅠ) file [2] [레벨:1]hydon 2014-02-14 2978
118 엑셀일반 특정열을 밑으로 25칸 내리는 방법이 있나요? file [2] [레벨:0]싸이 2012-10-30 2986
117 엑셀일반 countifs 관련 질문 file [6] [레벨:2]봉2 2013-09-02 2987