※ 오늘 Daily Tip은 염기웅님이 제공해주신 내용입니다.
엑셀에서는 반올림 함수, 올림 함수, 버림 함수가 각각 존재합니다. 따라서 사용자는 원하는 값으로 변환할
수 있습니다. 반면에 액세스의 경우 반올림 함수만 존재합니다. 그래서 올림이나 버림의 경우 적용하기가
상당히 까다롭지요. 오늘은 반올림, 올림, 버림의 기능을 적용하는 방법을 알아보도록 하겠습니다.(사용버전:
공통)모듈을 하나 만든 다음
다음의 VBA 코드를 삽입하기 바랍니다.
Function RoundEx(dblNumber As
Double, lngNumberDigitAfterDecimal As Long,
strMethod As String) As Double
작성일:
2002-1-22
작성자: 염기웅
기능: 원하는 자리수에서 숫자를
올림, 버림,
반올림해서 반환한다.'
dblNumber : 반올림할 수
lngNumberDigitAfterDecimal : 반올림할 자리수
*** 기본적으로 소수점 이하 자리수를 말한다
*** 음수일 경우 소수점에서 왼쪽방향의 자리수를 말한다.
즉, 정수부분을 말한다.
strMethod : 올림, 버림,
반올림인지를 결정한다.
*** RoundNormal : 반올림
*** RoundUp : 올림
*** RoundDown : 버림
Dim dblRoundValue As Double
Select Case strMethod
Case "RoundNormal"
dblRoundValue = 0.5000001
Case "RoundDown"
dblRoundValue = 0
Case "RoundUp"
dblRoundValue = 0.9
End Select
RoundEx = Int((dblNumber * 10
^ lngNumberDigitAfterDecimal) + dblRoundValue) / 10
^ lngNumberDigitAfterDecimal
End
Function |
RoundEx 함수를 이용하면 올림,
버림, 반올림을 원하는 데로 적용할 수
있습니다.
사용법 |
RoundEx(적용할_숫자값,
자리수, 방법) |
방법 |
RoundNormal
– 반올림
RoundUp – 올림
RoundDown –
버림 |
1. 소수점 이하에서 반올림,
올림, 버림
1) 반올림
예를 들어, 3.141592 라는 수를 소수점 둘째
자리에서 반올림 한다면 3.14가 됩니다.
이 때는 다음과 같이 적용하면 됩니다.
RoundEx(3.141592, 2, "RoundNormal") |
2) 올림
3.141592 를 소수점 둘째 자리에서 올림하면
3.15가 됩니다.
RoundEx(3.141592,2,"RoundUp") |
3) 버림
3.141592 를 소수점 둘째 자리에서 버림하면 3.14가
됩니다.
RoundEx(3.141592,2,"RoundDown") |
2. 정수부분에서 반올림,
올림, 버림
이 함수에서
‘자리수’를
입력할 때 1, 2, 3 과 같은 수는 소수점 이하를
지칭합니다. 따라서 정수부분에서의 반올림,
올림, 버림은 다른 값을 적용해야 합니다.
0의 자리는 -1, 10의 자리는
-2, 100의 자리는 -3 으로 지정하면
됩니다.
1) 반올림
3840 을 정수부분 세번째 자리(100의
자리)에서 반올림하면
4000이 됩니다.
RoundEx(3840,-3,"RoundNormal") |
2) 올림
3840을 정수부분 세번째 자리(100의 자리)에서
올림하면 4000이 됩니다.
RoundEx(3.141592,-3,"RoundUp") |
3) 버림
3840을 정수부분 세번째 자리(100의 자리)에서
버림하면 3000이 됩니다.
RoundEx(3.141592,-3,"RoundDown") |
이제 기본적인
RoundEx 함수의 사용방법은 이해하셨으리라고 생각됩니다.
쿼리에서는 어떻게 적용해야 할까요?
샘플 파일을 첨부하였으니 참고하기 바랍니다.
[샘플파일
다운받기]
실제로 액세스에서 사용할 때는 함수에 특정 값을 넣기 보다는 다음
그림과 같이 필드 명을 부여하게 됩니다.
다음 그림은 여러 숫자에 대해 소수점 이하 두 번째 자리에서
반올림, 올림,
버림을 수행한 결과입니다.
다음 그림은 여러 숫자에 대해 정수부분 세 번째 자리(100의
자리) 에서 반올림,
올림, 버림을 수행한 결과입니다.
어떻습니까? 앞으로
반올림, 올림,
버림에 대해서 걱정할 필요는 없겠죠? 잘
활용하시기 바랍니다.
|