Please Enable JavaScript!
Gon[ Enable JavaScript ]

엑셀 VBA 년도, 월 비교해서 발생 횟수 조회하는 방법

엑셀(Excel)/VBA
반응형

오늘 작업할 예제는 날짜 정보에서 일치하는 년도와 월이 얼마나 있는지 체크하는 것입니다. 이 예제를 구현하기 위해서는 어떤 함수들이 필요할까요? 년도를 비교하고 싶다면 날짜 데이터에서 년도를 뽑아 내야 합니다. 그럼 VBA 에서 제공하는 년도와 월을 추출하는 함수가 있어야겠죠. 오늘은 예제를 통해서 년, , , , , 초를 분리하는 방법에 대해 알아 봅니다.

 

 

구현하려는 예제는 다음과 같습니다. 왼쪽 날짜 목록에서 년도와 월에 일치하는 날짜가 몇 개나 있는지 알아내는 것입니다.

엑셀 VBA 년도, 월 비교해서 발생 횟수 조회하는 방법

 

먼저 함수를 구성하기 위해서 필요한 변수를 선언합니다. 그리고 날짜 데이터들을 체크하기 위해 영역을 지정합니다. ActiveSheet.Range("B3:B18") 영역을 가져온 뒤 For Each 반복문을 사용해서 값을 하나씩 꺼냅니다.  

 

Dim yearCount As Integer, yearNo As Integer
Dim rng As Range, cell As Range
 
yearCount = 0
Set rng = ActiveSheet.Range("B3:B18")
yearNo = ActiveSheet.Range("D3").Value
 
For Each cell In rng
 
Next cell

 

 

 

반복문에는 날짜 데이터에서 년도를 뽑아 비교할 소스가 들어가야 합니다. 날짜에서 년도를 뽑는 함수는 Year() 입니다. 그 외 함수는 다음과 같습니다.

 

l  Day :

l  Month :

l  Hour : 시간

l  Minute :

l  Second :

 

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 날짜 관련 함수, 개체 사용하는 방법
엑셀 VBA 날짜 차이를 계산하는 DateDiff 함수 사용하기
엑셀 VBA 날짜 데이터를 비교하거나 연산하기
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음
엑셀 VBA 개발할 때 로그 출력하는 방법



 

 

 

아래는 사용자가 제시한 년도와 Year 함수로 뽑은 년도를 비교해서 몇 개 인지 계산하는 소스입니다.

 

If Year(cell.Value) = yearNo Then
    yearCount = yearCount + 1
End If

 

 

 

다음은 지금까지 설명한 내용들을 합친 전체 소스 입니다. 사용자가 제시한 년도가 날짜 데이터에서 몇 개나 되는지 체크해서 메시지 박스로 출력하였습니다.

 

Sub OccureYear()
 
    Dim yearCount As Integer, yearNo As Integer
    Dim rng As Range, cell As Range
 
    yearCount = 0
    Set rng = ActiveSheet.Range("B3:B18")
    yearNo = ActiveSheet.Range("D3").Value
   
    For Each cell In rng
       
        If Year(cell.Value) = yearNo Then
            yearCount = yearCount + 1
        End If
       
    Next cell
   
    MsgBox yearNo & " 년 발생 횟수 : " & yearCount
 
End Sub

 

엑셀 VBA 년도, 월 비교해서 발생 횟수 조회하는 방법

 ※ 아래는 참고하면 좋을 만한 글들의 링크를 모아둔 것입니다.
엑셀 VBA 날짜 관련 함수, 개체 사용하는 방법
엑셀 VBA 날짜 차이를 계산하는 DateDiff 함수 사용하기
엑셀 VBA 날짜 데이터를 비교하거나 연산하기
엑셀 VBA 입력된 값 형식 확인 Information 관련 함수 모음
엑셀 VBA 개발할 때 로그 출력하는 방법
반응형
Posted by 녹두장군

댓글을 달아 주세요