Please Enable JavaScript!
Gon[ Enable JavaScript ]

반응형

연산자의 종류에는 산술 연산자, 연결 연산자, 비교 연산자, 논리 연산자가 있습니다. 그 중에서 몫과 나머지를 구할 수 있는 연산자는 산술 연산자에 포함되어 있습니다. 나머지를 구하는 연산자는 “Mod” 이며, 몫은 “\” 연산자를 사용합니다. 물론 몫은 ”\” 가 아닌 나누기 “/” 연산자를 사용해서 구할 수도 있지만 소수점에서 반올림이 되기 때문에 값이 틀릴 수 있습니다. 이 때 보정하는 방법도 알려 드리겠습니다.

 

 

 

Mod 연산자를 사용해서 나머지 구하기

 

나머지를 구하기 위한 연산자는 Mod 입니다. Mod 의 왼쪽에 나눌 대상이 오고, 오른쪽에는 나누는 수를 둡니다. 아래 샘플의 결과값은 62 에 대한 3의 몫을 구하는 것이기 때문에 2 가 되겠죠. 

 

Sub ModOperator()
   
    Dim score1 As Integer, score2 As Integer
    Dim result As Integer
   
    score1 = 62
    score2 = 3
   
    result = score1 Mod score2
   
    MsgBox "나머지 : " & result
 
End Sub

 

엑셀 VBA 나머지를 구하기 위한 Mod 연산자와 몫 구하는 연산자 사용법

 

만약 분모에 값이 없거나 0 이면 DivideByZeroExcepion 예외를 반환하게 됩니다. 에러가 발생한다는 것이죠. Mod 연산자에서 나누는 값은 0 이 되면 안됩니다

엑셀 VBA 나머지를 구하기 위한 Mod 연산자와 몫 구하는 연산자 사용법

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 이항 논리 And, Or, Xor 단항 논리 Not 연산자 사용하기
엑셀 VBA 연산자 용해서 String 문자열을 합치기
엑셀 VBA 날짜 데이터를 비교하거나 연산하기
엑셀 VBA IF 지시 구문 사용하는 방법
셀 VBA 반복문 For Next 사용하기

 

 

몫을 구하는 방법

 

몫을 구하는 연산자는 두 가지가 있습니다. “/” Operator “\” Operator 가 그것입니다. 좀더 정확한 몫을 구하고자 한다면 “\” 을 사용해야 합니다. 왜냐하면 부동소수점이 나올 때 반올림이 돼서 두 값이 틀려 지기 때문입니다.

 

Sub ModOperator()
   
    Dim score1 As Integer, score2 As Integer
    Dim result1 As Integer, result2 As Integer
   
    score1 = 62
    score2 = 4
   
    result1 = score1 / score2
    result2 = score1 \ score2
   
    Debug.Print "/ 연산자 몫 : " & result1
    Debug.Print "\ 연산자 몫 : " & result2
 
End Sub

 

 

소스를 실행한 결과 “/” 연산자를 사용했을 때 “\” 보다 1 이 더 큰 이유는 반올림을 했기 때문입니다. 그럼 두 값이 동일하도록 만드는 방법은 무엇일까요

엑셀 VBA 나머지를 구하기 위한 Mod 연산자와 몫 구하는 연산자 사용법

 

그것은 소수점 데이터를 버리는 Fix 함수를 사용하는 것입니다. Fix 2.98 의 데이터를 2 로 만듭니다. “/” 연산자를 사용한 결과물에 Fix 함수를 사용하면 “\” 와 결과가 같아 지겠죠. 

 

Sub ModOperator()
   
    Dim score1 As Integer, score2 As Integer
    Dim result1 As Integer, result2 As Integer
   
    score1 = 62
    score2 = 4
   
    result1 = Fix(score1 / score2)
    result2 = score1 \ score2
   
    Debug.Print "/ 연산자 몫 : " & result1
    Debug.Print "\ 연산자 몫 : " & result2
 
End Sub

 

엑셀 VBA 나머지를 구하기 위한 Mod 연산자와 몫 구하는 연산자 사용법

아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 이항 논리 And, Or, Xor 단항 논리 Not 연산자 사용하기
엑셀 VBA 연산자 용해서 String 문자열을 합치기
엑셀 VBA 날짜 데이터를 비교하거나 연산하기
엑셀 VBA IF 지시 구문 사용하는 방법
셀 VBA 반복문 For Next 사용하기
반응형
Posted by 녹두장군1
,