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

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

UDF에 의한 계산 결과 오류

엑셀일반 조회 수 2883 추천 수 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 42586
382 VBA 엑셀 질문드립니다. file [2] [레벨:1]박상민 2014-02-14 3631
381 엑셀일반 가입인사겸 질문올립니다. _ 파일오류,매크로바이러스,데이터손실 복구 방법 [3] [레벨:1]바람길 2011-11-16 3622
380 배열수식 수식에 대해 문의드려요! file [2] [레벨:1]예진 2013-03-07 3618
379 VLookup 앞시트에서 지정 값 정하여 계산 할 수 있나요? file [5] [레벨:3]이구람 2012-11-12 3600
378 엑셀일반 폴더이름을 엑셀로 가져오고 싶습니다. imagefile [5] [레벨:1]통통삼겹살 2012-07-03 3588
377 피벗테이블 시간표 관리, 피벗 부분합의 활용 질문?? file [5] [레벨:1]메타포 2011-09-05 3584
376 함수질문입니다~^^ (셀 값 자체 변경하기_반올림) [1] [레벨:1]ctg0303 2011-04-14 3579
375 시각화 시켜논 셀의 모양을 표로 만들기(질문) file [4] [레벨:6]ryanoh 2010-09-30 3578
374 피벗테이블 피벗테이블 정렬 문의입니다 file [4] [레벨:2]조기리 2013-11-06 3569
373 엑셀일반 틀고정 질문입니다. file [3] [레벨:5]정화 2011-08-12 3567
372 셀서식(표시형식) 다른 시트에서 조건을 만족하면 해당시트 셀에서 색칠하거나 글씨 표시하기 file [2] [레벨:4]성투은자 2013-04-02 3557
371 엑셀일반 빈셀 지정이 안되요. ㅜㅜ file [1] [레벨:3]fmbass98 2012-11-02 3544
370 배열수식 엑셀 수식 질문이요 file [1] [레벨:4]요셉 2013-04-09 3532
369 배열수식 배열수식_rank 질문 _ 2가지 조건으로 순위 정하기 file [4] [레벨:3]타케 2013-11-01 3530
368 VBA 아별님 안녕하세요? 파이스입니다. _ 엑셀창과 VBE창 창전환 쉽게 하는 방법 [3] [레벨:6]파이스 2011-11-23 3525
367 엑셀일반 부분합 질문입니다. file [7] [레벨:5]정화 2013-02-06 3517
366 엑셀 서식을..안 바뀌게 [1] [레벨:1]ottee 2010-10-04 3516
365 엑셀일반 글자수 세는 방법 질문입니다. imagefile [4] [레벨:6]파이스 2013-05-27 3492
364 엑셀일반 시트의 연도별 사용내역 중 각 시트의 해당연도 페이지만 한꺼번에 인쇄하는 법? file [3] [레벨:4]성투은자 2013-04-02 3491
363 엑셀일반 혹시 입력된 데이터숫자 사이에 - << 이걸 집어 넣을수 잇나요? [1] [레벨:1]월계몽키 2015-02-24 3481