특정 요일·공휴일 가중 일수 계산 공식
지원 버전 자세히 보기
특정 요일과 공휴일에 가중치를 적용해 일수를 합산하는 공식입니다.
인수 설명
01특정 요일·공휴일 가중 배열수식
{=SUM ( IF ( WEEKDAY ( 시작일+ROW ( INDIRECT ( "A1:A"&종료일-시작일+1 ) )-1, 2 )=요일번호, 요일가중치, IF ( COUNTIF ( 공휴일범위, 시작일+ROW ( INDIRECT ( "A1:A"&종료일-시작일+1 ) )-1 )>0, 공휴일가중치, 1 ) ) )}인수 설명 자세히 보기(인수를 클릭하면 해당 영역만 강조됩니다. 여러 개를 함께 켜고 끌 수 있습니다.)
02공휴일 가중 배열수식
{=SUM ( IF ( COUNTIF ( 공휴일범위, 시작일+ROW ( INDIRECT ( "A1:A"&종료일-시작일+1 ) )-1 )>0, 공휴일가중치, 1 ) )}인수 설명 자세히 보기
03LET·SEQUENCE 함수 공식 (Excel 2021+)
=LET ( 날짜배열, SEQUENCE ( 종료일-시작일+1, , 시작일 ), SUM ( IF ( WEEKDAY ( 날짜배열, 2 )=요일번호, 요일가중치, IF ( COUNTIF ( 공휴일범위, 날짜배열 )>0, 공휴일가중치, 1 ) ) ) )인수 설명 자세히 보기
동작 원리
01특정 요일·공휴일 가중 배열수식
ROW 함수와 INDIRECT 함수로 종료일까지의 날짜 배열을 만들고, IF 함수가 요일과 공휴일 가중치를 차례로 적용한 뒤 SUM 함수가 합산합니다.
특정 요일·공휴일 가중 배열수식의 예제 시트에서 E2 셀이 9를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
종료일까지 날짜 배열을 만듭니다
종료일-시작일+1을 배열 길이로 사용하므로 종료일까지 빠짐없이 포함하고, 시작일과 종료일이 같아도 길이 1의 배열을 만듭니다.
=$B$2+ROW ( INDIRECT ( "A1:A"&$B$3-$B$2+1 ) )-1
= {46266;46267;46268;46269;46270;46271}
2026-09-01부터 2026-09-06까지 6개의 날짜 일련번호입니다. 요일과 공휴일 가중치를 적용합니다
WEEKDAY 함수로 지정 요일을 먼저 판정하고, 그 밖의 날짜만 COUNTIF 함수로 공휴일 여부를 확인합니다. 2026-09-06은 일요일과 공휴일이 겹치지만 먼저 판정한 요일가중치 3을 적용합니다.
=IF ( WEEKDAY ( 날짜배열, 2 )=$B$4, $B$5, IF ( COUNTIF ( $C$2:$C$8, 날짜배열 )>0, $B$6, 1 ) )
= {1;1;2;1;1;3}
9월 3일은 공휴일가중치 2, 9월 6일은 요일가중치 3을 적용한 배열입니다. SUM 함수가 가중 일수를 합산합니다
SUM 함수는 날짜별 가중치 여섯 개를 더해 전체 가중 일수를 계산합니다.
=SUM ( {1;1;2;1;1;3} )
= 9
1+1+2+1+1+3=9입니다. 02공휴일 가중 배열수식
ROW 함수와 INDIRECT 함수로 종료일까지의 날짜 배열을 만들고, COUNTIF 함수와 IF 함수로 공휴일 가중치를 적용한 뒤 SUM 함수가 합산합니다.
공휴일 가중 배열수식의 예제 시트에서 E2 셀이 8을 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
종료일까지 날짜 배열을 만듭니다
종료일-시작일+1을 배열 길이로 사용하므로 종료일까지 빠짐없이 포함하고, 시작일과 종료일이 같아도 길이 1의 배열을 만듭니다.
=$B$2+ROW ( INDIRECT ( "A1:A"&$B$3-$B$2+1 ) )-1
= {46266;46267;46268;46269;46270;46271}
2026-09-01부터 2026-09-06까지 6개의 날짜 일련번호입니다. 공휴일 가중치를 적용합니다
COUNTIF 함수는 9월 3일과 9월 6일에 1을 반환합니다. IF 함수는 두 날짜에 공휴일가중치 2를 적용하고 나머지 날짜에는 1을 적용합니다.
=IF ( COUNTIF ( $C$2:$C$8, 날짜배열 )>0, $B$6, 1 )
= {1;1;2;1;1;2}
공휴일 두 날짜에만 가중치 2를 적용한 배열입니다. SUM 함수가 가중 일수를 합산합니다
SUM 함수는 날짜별 가중치 여섯 개를 더해 전체 가중 일수를 계산합니다.
=SUM ( {1;1;2;1;1;2} )
= 8
1+1+2+1+1+2=8입니다. 03LET·SEQUENCE 함수 공식 (Excel 2021+)
SEQUENCE 함수로 종료일까지의 날짜 배열을 만들고, LET 함수가 요일과 공휴일 가중치 계산을 묶어 SUM 함수의 결과로 반환합니다.
LET·SEQUENCE 함수 공식의 예제 시트에서 E2 셀이 9를 반환하는 계산 과정입니다. 단계마다 강조된 부분이 어떻게 계산되는지 살펴보세요.
SEQUENCE 함수가 날짜 배열을 만듭니다
종료일-시작일+1을 행 개수로 지정해 시작일부터 종료일까지 6개의 날짜를 세로 배열로 반환합니다.
=SEQUENCE ( $B$3-$B$2+1, , $B$2 )
= {46266;46267;46268;46269;46270;46271}
2026-09-01부터 2026-09-06까지의 날짜 일련번호입니다. IF 함수가 날짜별 가중치를 반환합니다
WEEKDAY 함수가 지정 요일을 먼저 판정하고 COUNTIF 함수가 나머지 날짜의 공휴일 여부를 확인하므로, 겹치는 날짜에는 요일가중치가 우선 적용됩니다.
=IF ( WEEKDAY ( dates, 2 )=$B$4, $B$5, IF ( COUNTIF ( $C$2:$C$8, dates )>0, $B$6, 1 ) )
= {1;1;2;1;1;3}
9월 3일은 공휴일가중치 2, 9월 6일은 요일가중치 3을 적용한 배열입니다. LET 함수가 합계를 반환합니다
LET 함수는 날짜 배열을 dates로 저장해 두 번 계산하지 않고, SUM 함수가 날짜별 가중치를 더한 9를 결과값으로 반환합니다.
=LET ( dates, SEQUENCE ( $B$3-$B$2+1, , $B$2 ), SUM ( IF ( WEEKDAY ( dates, 2 )=$B$4, $B$5, IF ( COUNTIF ( $C$2:$C$8, dates )>0, $B$6, 1 ) ) ) )
= 9
1+1+2+1+1+3=9입니다.
위 링크를 참고해보세요.
공식 뒤에 +1 이 빠져있었네요 ..ㅜㅜ; 죄송합니다.
종료일이 포함되도록 공식을 수정해드렸으니 다시 확인해보시겠어요?
확인해주셔서 감사드립니다.