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

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

UDF에 의한 계산 결과 오류

엑셀일반 조회 수 2925 추천 수 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 44905
382 엑셀수식 average [1] [레벨:5]눈물바다 2012-06-20 1915
381 엑셀수식 여러셀을 지정하여 다른 시트에서 같은 값 찾기 imagefile [3] [레벨:2]시나브로 2012-06-20 4785
380 엑셀일반 엑셀 작업한 내용이 안보여요. file [5] [레벨:2]시나브로 2012-06-20 4386
379 VLookup 표에서 해당 값 찾기 질문입니다. file [2] [레벨:3]rynoel 2012-06-26 2437
378 엑셀일반 텍스트 나누기 [1] [레벨:5]눈물바다 2012-06-27 1877
377 VLookup vlookup 의 true 기능 관련. [5] [레벨:3]rynoel 2012-07-02 2837
376 파워포인트연계 엑셀과 파워포인트 _ ppt 연계 자동 업데이트 [3] [레벨:5]눈물바다 2012-07-02 7692
375 엑셀일반 폴더이름을 엑셀로 가져오고 싶습니다. imagefile [5] [레벨:1]통통삼겹살 2012-07-03 3634
374 엑셀일반 엑셀 파일들끼리 연결(??), 호환 이 안돼는거 같습니다. ㅜㅜ imagefile [2] [레벨:3]월전천넘 2012-07-04 4286
373 엑셀일반 일일단위로 순위갱신되는 인터넷 참조 시트 만들기 질문입니다. imagefile [2] [레벨:6]파이스 2012-07-05 2241
372 VBA [긴급] Range 범위 "A2:A10" -> 를 변수로 받게 하는 방법.. file [3] [레벨:1]마리너 2012-07-05 4419
371 기타 만족도 조사 file [2] [레벨:3]빛의행운아 2012-07-09 2595
370 VBA 시트와 차트에 따라 다른 함수 실행? [4] [레벨:3]고독한나그네 2012-07-14 1843
369 SUMPRODUCT 저자 정리 부분 file [2] [레벨:4]pgpoch 2012-07-17 1807
368 VBA 필터된 데이터 가져오기 시 문제점 [5] [레벨:3]엑셀대단해 2012-07-23 4127
367 VBA 조건문을 변수화 하는 방법 [2] [레벨:3]엑셀대단해 2012-07-23 6649
366 VBA [ XML PARSING ] 오픈 API 관련된 질문입니다. [3] [레벨:2]난호 2012-07-26 2832
365 피벗테이블 피벗테이블 질문입니다... file [1] [레벨:2]Merak 2012-07-30 1856
364 엑셀일반 엑셀에서 사진 고정하는 방법 없을까요? [3] [레벨:3]빛의행운아 2012-07-30 12779
363 엑셀수식 시작점 지정에 관한 질문입니다. file [1] [레벨:1]bugi87 2012-08-03 1592