엑셀 공휴일 휴일 수 다르게 계산 공식
엑셀 공휴일 휴일 수 다르게 계산 목차 바로가기
함수 공식
{ =SUM(IF(WEEKDAY(시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1,2)=7,일요일휴일수,IF(COUNTIF(공휴일범위,시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1)>0,공휴일휴일수,1))) + 1 }
'본 수식은 배열수식이므로 M365 이전버전 사용자는 Ctrl + Shift + Enter로 입력해야 합니다.
'본 수식은 배열수식이므로 M365 이전버전 사용자는 Ctrl + Shift + Enter로 입력해야 합니다.
인수 설명
인수 | 설명 |
시작일 | 휴일 수를 계산하기 위한 날짜 범위의 시작일입니다. |
종료일 | 휴일 수를 계산하기 위한 날짜 범위의 종료일입니다. |
일효일휴일수 | 일요일일 경우 적용할 휴일 수 입니다. '=7을 각 요일 번호로 바꾸면 특정 요일의 휴일수로 적용할 수 있습니다. 1 : 월요일 / 2 : 화요일 / 3 : 수요일 / 4 : 목요일 5 : 금요일 / 6 : 토요일 / 7 : 일요일 |
공휴일휴일수 | 공휴일일 경우 적용할 휴일 수 입니다. |
공휴일범위 | 공휴일이 입력된 범위입니다. |
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [엑셀공식] 엑셀 특정요일 공휴일 휴일 수 다르게 계산 공식예제파일
호환성
운영체제 호환성 Windows 버전 모든 엑셀 버전에서 사용 가능합니다. Mac 버전 모든 엑셀 버전에서 사용 가능합니다. 사용된 기초 함수
엑셀 공휴일 휴일 개수 다르게 계산 공식 알아보기
공식 설명
본 공식은 특정 요일 또는 공휴일마다 휴일 수를 다르게 계산하여 시작일~종료일 사이의 전체 요일수를 계산하는 엑셀 함수 공식입니다. 배열수식이므로 MS365 이전 버전 사용자는 Ctrl + Shift + Enter로 입력해야 합니다.
상황에 따라 일요일이 아닌 토요일인 경우의 휴일수를 다르게 계산하려면 공식의 =7 를 =6으로 변경하여 사용합니다.
{ =SUM(IF(WEEKDAY(시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1,2)=6,토요일휴일수,IF(COUNTIF(공휴일범위,시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1)>0,공휴일휴일수,1))) + 1 }만약 공휴일의 경우만 휴일수를 다르게 계산하려면 아래 공식을 사용합니다.
{ =SUM(IF(COUNTIF(공휴일범위,시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1)>0,공휴일휴일수,1)) + 1 }만약 평일은 제외하고 휴일의 개수만 세려면 IF 함수의 마지막 인수를 1에서 0으로 변경합니다.
{ =SUM(IF(WEEKDAY(시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1,2)=7,일요일휴일수,IF(COUNTIF(공휴일범위,시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1)>0,공휴일휴일수,0))) + 1 }공식의 동작원리
- 시작일~종료일 사이의 날짜를 돌아가며, 해당 날짜가 공휴일인지 여부를 확인합니다.
=COUNTIF(공휴일범위,시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1)>0
- 시작일~종료일 사이의 날짜를 돌아가며, 해당 날짜가 특정 요일(예제 공식에서는 일요일)인지 여부를 확인합니다.
=WEEKDAY(시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1,2)=7
- 시작일~종료일 사이의 날짜를 돌아가며, 해당 날짜가 특정 요일의 휴일수를, 공휴일이면 공휴일 휴일수를, 그렇지 않으면 1을 반환합니다.
=IF(WEEKDAY(시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1,2)=7,일요일휴일수,IF(COUNTIF(공휴일범위,시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1)>0,공휴일휴일수,1))
- 시작일~종료일 사이 요일수의 합계를 계산합니다.
=SUM(IF(WEEKDAY(시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1,2)=7,일요일휴일수,IF(COUNTIF(공휴일범위,시작일+ROW(INDIRECT("A1:A"&종료일-시작일))-1)>0,공휴일휴일수,1)))
- 시작일~종료일 사이의 날짜를 돌아가며, 해당 날짜가 공휴일인지 여부를 확인합니다.