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

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

UDF에 의한 계산 결과 오류

엑셀일반 조회 수 3013 추천 수 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 48981
582 엑셀수식 indirect file [5] [레벨:1]엑셀짱 2011-08-11 3088
581 엑셀일반 원하는 열만 추출할수 없나요?? imagefile [1] [레벨:1]wooljima0 2012-06-07 3088
580 엑셀수식 연도명으로 만들어지는 시트에서 올해것만 자동참조하기 file [2] [레벨:4]성투은자 2013-06-13 3094
579 액셀요 ..정년일 구하기. [1] [레벨:1]Dookie 2011-03-07 3110
578 아별툴관련질문 이미지 일괄삽입기능에서 옵션을 주고 나면 2번째 그림부터 밀려남 file [1] [레벨:4]성투은자 2013-12-31 3111
577 SUMIF sumifs 에서 조건에 있는 값을 다 더해주는 기능은 없을까요? [2] [레벨:1]곤냥이 2014-08-29 3111
576 엑셀수식 엑셀 수식이랑 함수오류에 대해 질문할게요 file [1] [레벨:4]요셉 2013-04-18 3115
575 차트 엑셀에서 라인 차트 질문입니다. imagefile [2] [레벨:6]해피엔드 2011-08-04 3122
574 엑셀수식 countif 함수 질문 file [2] [레벨:5]눈물바다 2014-10-05 3128
573 엑셀일반 그래프작성 file [1] [레벨:0]핑크푸우 2013-02-08 3132
572 엑셀수식 엑셀 수식 질문.. _ OFFSET 활용하여 특정 범위값만 합계로 표시하기 file [1] [레벨:1]박주연 2012-02-29 3132
571 엑셀일반 머리글 file [2] [레벨:1]키스의왕자 2013-07-12 3134
570 엑셀일반 아별님! 감사합니다.다시질문드립니다 file [2] [레벨:2]북곰 2013-06-07 3138
569 엑셀일반 용량이 큰 엑셀파일 불럭오기 하면 시간이 많이 걸려요 file [3] [레벨:1]도상우 2012-04-03 3139
568 VBA 논리식 일거라 예상은 하는데.... 도저히 모르겠어서 여쭤봅니다^^ file [레벨:1]mr_han123 2014-10-28 3142
567 VBA 특정폴더 내 숨기지 않은 파일 모두 열기 [2] [레벨:4]고수가되고파 2012-10-18 3143
566 VBA 매크로.. [1] [레벨:2]광택입니다 2011-10-18 3148
565 엑셀에서 이메일 입력 시 @이메일 주소 자동 입력하는 방법이 없을까요? [2] [레벨:3]읍내꽃미남 2011-01-14 3153
564 엑셀일반 countifs 관련 질문 file [6] [레벨:2]봉2 2013-09-02 3157
563 VBA api에 대해서 [2] [레벨:4]열심회원 2013-08-22 3166