반응형
간단한 방법으로 이 데이터가 소수인지 정수인지 구분해보도록 하자.
구글링을 잘못했는지 엑셀vba 소수를 검색하면 1,2,3,5,7,9,... 과 같은 1과 자기 자신 외에는 약수를 가지지 않는 수에 대해서만 나와있다. 내가 원한건 이게 아닌데...
엑셀vba에서 0.24, 0,123, 23.4234 이런 소수들을 구분하는 방법이 있는지 궁금해서 찾아봤지만, 해답은 찾을 수 없었다. 하지만 수학적 접근으로 비교적 쉽게 해결하였다.
소수 구분 식: x - 정수형 변환(x) = 소수점 아래 숫자
예시.
x 값이 123.24 라고 할 때 정수부분인 123을 x값에서 빼게 되면 0.24만 남게된다. 이 결과를 보면 나머지가 존재하기 때문에 소수라고 얘기 할 수 있다.
x = 4 일때
식: 4 - 정수형 변환(4) = 0
4를 정수형 변환하던 안하던 4이다. 4에서 4를 빼면 0이 된다. 그러므로 4는 정수이다.
x = 4.1 일때
식: 4.1 - 정수형 변환(4.1) = 0.1
4.1을 정수형으로 변환하면 4가 되고, 4.1 - 4 = 0.1이 된다. 그러므로 4.1은 소수이다.
위에서 나타난 식을 vba 함수로 나타내보았다.
Sub 소수구분()
Dim x As Double
x = 123.24
If x - Int(x) = 0 Then
Debug.Print x & " 은(는) 정수입니다."
Else
Debug.Print x & " 은(는) 소수다."
End If
End Sub
반응형
'컴퓨터 공부 > 엑셀 & VBA' 카테고리의 다른 글
[엑셀vba] 시트에 달력을 표시해보자. (0) | 2021.04.13 |
---|---|
[엑셀vba] 사용자 정의 폼을 써보자 (0) | 2021.01.28 |
[엑셀vba] 코드 여러 줄로 작성하기 & IF문 한 줄로 끝내기 (0) | 2020.12.11 |
[엑셀vba] 숨겨진 시트들 한꺼번에 숨기기 취소하기 (0) | 2020.12.09 |
[엑셀vba] 편집기 도킹 기능 해제하기 (0) | 2020.12.08 |