-
[& Chronicle] 두 날짜 사이에서 특정 요일의 개수 구하기VB(A)/당근쨈 & Chronicle 2017. 5. 2. 22:35
두 날짜 사이에서 특정 요일의 개수를 세는 법입니다.
먼저 Chronicle님의 배열수식입니다. - http://blog.naver.com/asaph16/220622364366
{=SUM(N(WEEKDAY(ROW(INDIRECT(A1&”:”&B1)),2)=2}
- 날짜의 일련번호를 구한 뒤
- WeekDay 함수로 특정 요일에 해당하는 숫자와 비교
- 결과값을 모두 더함
의 흐름을 가집니다. 이번 매크로도 위 흐름과 다르지 않습니다.
결국 VBA도 엑셀 안에서 움직이며 이것은 엑셀을 모르면 VBA를 다룰 때 한계가 있다는 것을 의미합니다.날짜에 대한 개념은 위 Chronicle님 블로그에 자세히 나와있으니 여기서는 VBA만 풀어내겠습니다.
코드는 아래와 같으며 알고리즘은 위 1~3에 해당합니다.Function GetDay(StartDate As Long, EndDate As Long, WhenIsIt As Integer) As IntegerDim i As LongDim iSum As Integer'시작날짜부터 마지막날짜까지 순환하면서'해당 날짜가 무슨 요일인지 판단합니다.For i = StartDate To EndDateIf Weekday(i, 2) = WhenIsIt Then iSum = iSum + 1Next iGetDay = iSumEnd Functioncs 날짜사이특정요일구하기.xlsm
'VB(A) > 당근쨈 & Chronicle' 카테고리의 다른 글
[& Chronicle] 공급업체가 다를 경우 행삽입 하기 (0) 2017.05.03 [& Chronicle] 불규칙한 그룹의 문자열 구분 (0) 2017.05.03 [& Chronicle] 숫자와 영문자가 혼용된 상태에서 영문자만 추출하기 (0) 2017.05.02 [& Chronicle] 문자 거꾸로 출력하기 (0) 2017.05.02 [& Chronicle] 중복값 제거 & 중복값의 개수 (0) 2017.05.02 댓글