안녕하세요.
조건부 서식을 이용해 특정일을 휴일로 나타내는 방법과 수식을 이용해 달력을 만드는 방법을 소개했습니다.
달력 만들기 - 날짜 함수, 조건부 서식, 유효성 검사, 표시 형식
이번에는 공휴일을 달력에 적용해 휴일로 나타내고, 사용자가 원하는 특정일도 휴일로 나타내도록 앞에서 만든 달력을 수정해 보겠습니다.
실습 파일 다운로드
완성 파일 다운로드
공휴일 확인하기
공휴일은 법으로 정해져 있습니다.
세가지 문제가 있습니다.
1. 공휴일이 항상 고정되어 있는게 아니라 법률이 바뀌면 없어지기도 하고 추가되기도 합니다.
2. 음력으로 정해진 공휴일을 양력으로 바꿔야 합니다.
3. 선거일과 같이 비정기적으로 지정된 공휴일이 있습니다.
위키백과 공휴일 정리된 내용에서 변경된 역사를 확인할 수 있습니다.
음력을 양력으로 변환하려면 한국천문연구원 천문우주지식정보에서 확인할 수 있습니다.
astro.kasi.re.kr/life/pageView/8
한국천문연구원 사이트엔 달력을 만드는데 필요한 정보가 정리된 페이지도 있습니다.
astro.kasi.re.kr/life/post/calendarData
국경일과 공휴일 항목엔 대체공휴일과 비정기적인 공휴일 정보도 정리되어 있습니다.
이 정보를 이용하겠습니다.
사용자 지정일과 공휴일 나타내기
새 시트를 하나 추가해서 휴일로 나타낼 날짜를 등록하는 방법을 쓰겠습니다.
이 방법을 쓰는 이유는 음력 날짜를 양력으로 계산하는 방법은 아주 어렵기 때문이고, 지정 공휴일이 바뀌거나 비정기적 휴일에도 쉽게 대처할 수 있기 때문입니다.
단점은 휴일을 하나하나 등록해야 한다는 점인데, 연도별 고정 휴일은 대략 15일쯤으로 많지 않기 때문에 입력하는데 부담이 크지 않습니다.
새 시트를 추가해 시트명을 '휴일'로 지정합니다.
[A1], [B1] 셀에 날짜, 내용을 입력합니다.
[A2] 셀부터 차례대로 2021, 2022년 휴일 데이터를 입력합니다.
수식에서 사용할 수 있도록 동적 영역 설정으로 이름 정의합니다.
2017/01/08 - 엑셀 50강] 이름 범위를 동적 범위로 설정하여 함수식에서 활용하기
[수식]-[정의된 이름]-[이름 관리자]를 실행합니다.
이름을 휴일로 지정하고 참조 대상에 OFFSET 함수와 COUNTA 함수를 이용해 수식을 작성합니다.
=OFFSET(휴일!$A$2,0,0,COUNTA(휴일!$A:$A)-1,2)
Sheet1 시트로 돌아가 [A3:G8] 셀 범위에 조건부 서식을 설정합니다.
먼저 [A3:G8] 셀 범위를 선택하고 [홈]-[스타일]-[조건부 서식]-[새 규칙]을 선택합니다.
[수식을 사용하여 서식을 지정할 셀 결정]을 선택하고 수식을 작성한 다음 서식은 글꼴 색을 빨강으로 지정합니다.
=NOT(ISERROR(VLOOKUP(A3,휴일,2,0)))
VLOOKUP 함수로 휴일 목록이 해당 날짜가 있는지 검사합니다.
날짜가 있는 경우엔 휴일 내용을 나타내고 없는 경우엔 오류를 나타냅니다.
오류가 났는지 검사하기 위해 ISERROR 함수를 이용하는데, 오류가 있는 경우 참이 됩니다.
NOT 함수를 이용해 오류가 없는 경우 참이 되도록 ISERROR 함수 결과를 반대로 바꿉니다.
조건부 서식이 실행된 결과를 보면 문제가 하나 있습니다.
해당 월 날짜가 아닌 경우 나타나지 않도록 설정해 두었는데, 2021년 3월 1일 날짜가 표시됩니다.
이유는 방금 설정한 휴일에 해당하는 날짜를 빨간색으로 나타내는 조건부 서식이 적용되었기 때문입니다.
[홈]-[스타일]-[조건부 서식]-[규칙 관리]를 선택합니다.
동일 영역에 조건부 서식이 두 개 지정되어 있습니다.
지정된 조건부 서식의 순서를 변경합니다.
날짜를 변경해 보면 휴일에 색상이 나타나는 것을 확인할 수 있습니다.
특정 날짜를 휴일로 나타내고 싶다면 휴일 목록에 추가하면 됩니다.
필요하시는 분들께 도움이 되길 바랍니다.
'엑셀' 카테고리의 다른 글
일자별 시간별 매출현황 구하기 (0) | 2021.04.02 |
---|---|
달력 만들기 3 - 공휴일, 특정일 내용 나타내기 (0) | 2021.03.03 |
조건부 서식으로 다섯줄마다 번갈아 색상 채우기 (1) | 2021.02.20 |
여러 시트 통합해 피벗 테이블 만들기 (0) | 2021.02.18 |
VLOOKUP 함수로 단가를 구했는데, 단가가 변경된 경우엔 어떻게 해야 하나요? (0) | 2021.02.16 |