Excel

휴일에 해당하는 열에 색칠 하기

별동산 2023. 8. 25. 08:59
반응형

조건부 서식을 적용해서 특정한 셀에 색칠하는 경우가 일반적이고, 조건을 충족하는 한 줄 전체에 색칠하는 경우도 있는데 이 글을 참고 바랍니다.

 

1. 공휴일 여부 판단하기

근무일을 구하는 함수만 Workday, Workday.Intl, NetworkDays, NetWorkdays.Intl 등이 있기 때문에 공휴일은 근무일이 아닌 날로 정의하면 됩니다.

 

각각의 구문은 아래와 같습니다.

가. WORKDAY(start_date, days, [holidays])

start_date(시작일)로부터 며칠 후(days) 근무일을 구하는 함수인데, 옵션인 holidays는 Workday함수에 등록되지 않은 공휴일, 예를 들어, 설날, 광복절, 제헌절 등 우리나라 또는 기업에 특수한 휴일을 일정한 범위에 등록하는 것입니다.

 

workday(start_date-1, days)=start_date라고, start_date에서 하루 전날에서 근무일로 하루 더한 날이 start_date라면 start_date는 근무일이고, 아니면 공휴일이 됩니다.

 

나. NETWORKDAYS(start_date, end_date, [holidays])

end_date(종료일)와 start_date(시작일) 사이의 근무일수를 구해주는 함수로, 마찬가지로 특별한 공휴일을 등록한 범위를 세번째 인수로 입력합니다.

 

다. WORKDAY.INTL(start_date, days, [weekend], [holidays])

시작일로부터 몇 일후의 근무일을 구하는 함수인데, 세 번째 인수를 제외하고는 Workday함수와 동일한데, 나라별로 한 주의 시작일, 다시 말해 휴일이 다르므로 weekend(주말)을 의미하는 숫자를 세 번째 인수로 입력하는 것만 다릅니다.

생략하면 토,일이 휴일인 주 5일제 근무형태입니다. 따라서, 주 6일제 근무라면 11, 다시 말해 일요일만 휴일에 해당하는 숫자를 입력해야 합니다.

weekend-number Weekend days
1 or omitted Saturday, Sunday
2 Sunday, Monday
3 Monday, Tuesday
4 Tuesday, Wednesday
5 Wednesday, Thursday
6 Thursday, Friday
7 Friday, Saturday
11 Sunday only
12 Monday only
13 Tuesday only
14 Wednesday only
15 Thursday only
16 Friday only
17 Saturday only

 

라.NETWORKDAYS.INTL(start_date, end_date, [weekend], [holidays])

end_date(종료일)와 start_date(시작일) 사이의 근무일수를 구해주는 함수인데, Workdays.Intl함수와 마찬가지로 세 번째 인수인 Weekend만 Networkdays함수와 다르며, Weekend에 해당하는 숫자는 Workday.Intl 함수와 동일합니다.

 

 

2. 휴일에 해당하는 날짜에 색칠하기

 

일반적으로는 토,일이 휴일이지만, 광복절인 8/15일이 공휴일이므로 요일을 기준으로 휴일여부를 판단할 수 없습니다.

휴일에 체크하기.xlsx
0.01MB

 

 

 

가. 요일명 구하기

=CHOOSE(WEEKDAY(DATE(2023,8,B1)),"일","월","화","수","목","금","토")

 

요일을 구하는 함수는 Weekday이며, 숫자를 반환하는데 1이 일요일, 2는 월요일 식이 됩니다. 그런데, 숫자를 요일명으로 바꿔야 하므로 Choose함수를 이용해 1부터 숫자에 해당하는 요일명을 두 번째 인수부터 입력했습니다.

 

또한 2023년도 휴일을  AH2셀부터 AH16셀까지 입력했습니다.

 

나. Workday 함수 이용

B11셀에 =WORKDAY(DATE(2023,8,B1)-1,1,$AH$2:$AH$17)=DATE(2023,8,B1)라고 입력하면 True가 반환됩니다.

 

① WORKDAY(DATE(2023,8,B1)-1,1,$AH$2:$AH$17)는 8/1에서 하루를 뺀 7/31일부터 1일 후는 8/1인데 근무일이므로 8/1이 그대로 반환됩니다. 이때 토, 일이거나 휴일 범위인 $AH$2:$AH$17에 해당하는 날짜가 있다면 휴일을 지난 후 첫 번째 근무일이 반환됩니다.

예를 들어 8/15일이라면 8/16일이 반환됩니다.

 

수식 탭의 수식 분석 그룹에서 수식 계산 명령을 누른 후 계산 버튼을 계속 누르면 WORKDAY(DATE(2023,8,B1)-1,1,$AH$2:$AH$17)의 값은 45139가 되며,

 

② DATE(2023,8,B1)의 계산값도 45139로서 같기 때문에

 

③ True가 반환됩니다.

닫기 버튼을 눌러 수식 계산 창을 닫습니다.

 

AH19셀에 45139라고 입력하면 2023-08-01이라고 표시됩니다. 1900-01-01부터 45139번째 날은 2023-08-01입니다.

 

B11셀의 채우기 핸들을 AF열까지 끌면 열 너비가 좁아서 True 또는 False 값이 안보이므로 A열과 1행 사이 모퉁이를 클릭한 다음 B열과 C열 사이의 경계선을 더블 클릭합니다.

 

그러면 근무일을 True, 휴일은 False가 반환됩니다.

 

토, 일이 False인데, 8/15만 화요일인데 False입니다.

 

다. Networkdays 함수 이용

B12셀에 =NETWORKDAYS(DATE(2023,8,B1),DATE(2023,8,B1),$AH$2:$AH$17)=1라고,

시작일과 종료일을 모두 2023/8/1로 입력하면 8/1이 근무일이기 때문에 근무일수가 1이 되고 1과 같으므로 True가 반환됩니다.

 

마찬가지로 8/15은 공휴일이기 때문에 근무일수는 0이 반환되고, 1과 다르므로 False가 반환됩니다.

 

라. Workday.Intl 함수 이용

B13셀에 =WORKDAY.INTL(DATE(2023,8,B1)-1,1,,$AH$2:$AH$17)=DATE(2023,8,B1)라고 입력하는데,

토, 일이 휴일인 경우 1이지만 생략가능하므로 세 번째 인수를 비워두었습니다.

 

11행부터 13행까지의 결과가 같습니다.

 

B13셀에 수식 입력할 때 B11셀의 수식 입력줄을 복사한 후 Esc키를 누르고,

 

B13셀의 수식 입력줄에 붙여 넣고,

workday 다음에 .intl을 붙이고, 세 번째 인수 자리를 비워두고 쉼표만 입력하거나, 1을 입력하고 쉼표를 입력한 다음

 

엔터키를 누르면 쉽게 수식을 입력할 수 있습니다.

 

마. Networkdays.Intl 함수 이용

B12셀의 수식을 복사해서 B14셀에 붙여 넣고,

.intl을 추가하고, 세 번째 인수를 빈자리로 두고 쉼표를 입력한 다음 엔터키를 누릅니다.

 

그리고 B14셀의 채우기 핸들을 AF열까지 끌어 수식을 채웁니다.

 

바. 조건부 서식 적용

B11 셀의 수식입력줄의 수식을 마우스로 끌어서 선택한 다음 Ctrl + C키를 눌러 복사하고 Esc키를 누릅니다.

조건부 서식을 적용할 B1셀에서 AF10셀까지를 선택한 다음

홈 탭 > 스타일 그룹에서 조건부 서식 명령을 누른 다음 새 규칙을 클릭합니다.

조건부 서식 - 새 규칙

 

그러면 새 서식 규칙 창이 열리는데, '수식을 사용하여 서식을 적용할 셀 결정'을 클릭한 다음

 

수식 입력 줄에 붙여 넣습니다. 

여기서 중요한 것은 B열 1행부터 10행까지 모두 색이 채워져야 하므로 

B1셀이 오른쪽으로 갈 때는 C, D 등으로 변하는데, 아래로 내려갈 때는 1행이 변하면 안 되므로 $1로 1을 고정해야 한다는 것입니다.

수식을 사용하여 서식을 지정할 셀 결정

 

따라서 수식은

=WORKDAY(DATE(2023,8,B$1)-1,1,$AH$2:$AH$17)=DATE(2023,8,B$1)로

$1로 두 군데를 고쳐야 합니다.

 

이번에는 서식 버튼을 누른 후 채우기 탭에서 색을 분홍색으로 선택합니다. 그리고 확인 버튼을 누르고,

셀 서식 - 채우기

 

새 서식 규칙 창이 열리면 확인 버튼을 누릅니다.

 

그런데 True인 근무일에 색이 칠해졌으므로 

 

 

홈 탭 > 조건부 서식 > 규칙 관리를 선택한 다음

조건부 서식 - 규칙 관리

 

규칙 편집 버튼을 누른 다음

조건부 서식 규칙 관리자 - 새 규칙, 규칙 편집, 규칙 삭제

 

수식에서 =(같음)을 <>(다름)으로 바꾸고 확인 버튼을 누릅니다.

서식 규칙 편집

 

그러면 '조건부 서식 규칙 관리자' 창이 열리는데, 다시 확인 버튼을 누르면

 

휴일에만 색이 칠해졌습니다.

 

휴일에 체크하기(완성).xlsx
0.01MB

 

 

 

Networkdays 등 다른 함수를 적용해서도 해보기 바랍니다.

반응형