초보자도 쉽게 따라하는, 엑셀 자동화 만년 달력 만들기
엑셀 자동 만년 달력 목차 바로가기
영상 강의
예제파일 다운로드
오빠두엑셀의 강의 예제파일은 여러분을 위해 자유롭게 제공하고 있습니다.
- [실무기초] 엑셀 자동화 만년 달력 만들기 60분 총정리예제파일✨ 일정 관리 자동화 365일 만년 달력회원자료
라이브 강의 전체영상도 함께 확인해보세요!
위캔두 회원이 되시면 매주 오빠두엑셀에서 진행하는 라이브강의 풀영상을 확인하실 수 있습니다.
만년 달력 기본 템플릿 만들기
요즘은 아웃룩, 노션, 구글 캘린더 등 훌륭한 일정관리 앱이 참 많습니다. 하지만 실무에서는 여러 부서, 각 담당자의 일정이 여러 앱에 흩어져 정리되어 있어 모든 일정을 취합하고 관리하는데 상당히 번거로울 수 있는데요. 오늘은 엑셀의 기본 함수 2개와 간단한 기능만 활용해 완벽한 자동화 만년 달력을 만드는 방법을 알아보겠습니다.
- 먼저 기본 달력의 템플릿을 만들어보겠습니다. 예제파일을 실행한 후, B2셀과 B3셀에 각각 2025와 1을 입력하고 셀 서식을 다음과 같이 변경합니다. 셀 서식을 변경하면 셀 안에 입력된 숫자는 그대로 유지하면서, 겉으로 보이는 표시형식만 "2025년", "1월"로 적용됩니다.
· B2셀 → 0"년"
· B3셀 → 0"월"
년, 월을 표시하도록 셀 서식을 변경합니다. 오빠두Tip : 셀 서식의 자세한 설명은 아래 5분 기초 입문 강의에서 알기 쉽게 정리했으니 참고하세요!👇
- B4:H4 머리글에는"일, 월, 화, 수, 목, 금, 토"로 머리글을 입력하고 B5셀에는 다음 수식을 작성합니다. 이렇게 수식을 작성하면 선택한 년과 월의 1일이 포함된 주의 '일요일'을 구할 수 있습니다.
=DATE(B2,B3,1)-WEEKDAY(DATE(B2,B3,1))+1

달력의 시작일을 구하는 공식을 입력합니다. - B5셀을 우클릭 - [셀 서식] 에서 표시형식을 "d"로 변경합니다. 그러면 날짜의 "일"만 표시됩니다.

셀 서식으로 날짜의 일만 표시합니다. - C5셀에는 이전 날짜에 1을 더한 수식을 입력하고 오른쪽으로 자동채우기하면 달력의 첫째주 날짜가 완성됩니다.

달력의 첫 주를 완성합니다. - 그 밑으로는 이전 주에 7을 더한 수식을 입력하고 아래로 자동채우기해 달력 기본 서식을 완성합니다.

달력의 나머지 날짜를 자동채우기로 입력합니다. - 달력의 테두리를 보기 좋은 두께로 적절히 변경하고 토요일과 일요일의 글씨 색상을 파랑과 빨강으로 변경하면 달력 기본 템플릿이 완성됩니다.

토요일과 일요일 글씨색을 비꿔 달력을 완성합니다.
달력 서식 꾸미기
이제 달력의 전월/익월 날짜를 흐리게 표시하고 오늘 날짜를 강조하는 조건부서식을 적용해보겠습니다.
- 달력의 날짜가 입력된 B5:H10 범위를 선택한 후, [홈] 탭 - [조건부서식] - [새 규칙] 으로 이동합니다.

조건부서식 - 새 규칙으로 이동합니다. - '새 서식 규칙' 대화상자가 실행되면 맨 마지막 옵션인 '수식을 사용하여 서식을 지정할 셀 결정'을 선택하고 입력창에 아래 수식을 입력합니다.
=MONTH(B5)<>$B$3

MONTH 함수로 날짜가 현재 월과 다른 조건을 비교합니다. 오빠두Tip : 조건부서식에 사용된 수식의 자세한 동작 원리는 영상 강의에서 알기 쉽게 정리했으니 참고하세요!😊 - 이후 [서식] 버튼을 클릭하고 [글꼴] 탭에서 글꼴 색상을 옅은 회색으로 변경합니다.

글꼴색을 회색으로 변경합니다. - [확인] 버튼을 클릭해 조건부서식을 적용하면 현재 월이 아닌 날짜의 글씨 색상이 옅은 회색으로 바뀝니다.

현재 월이 아닌 날짜가 회색으로 표시됩니다. - 오늘날짜도 강조해보겠습니다. 다시 달력이 입력된 B5:H10 범위를 선택한 후, [홈] 탭 - [조건부서식] - [새 규칙]을 실행하고 '수식을 사용하여 서식을 지정할 셀 결정'의 입력창에 다음과 같이 수식을 작성합니다.
=B5=TODAY()

오늘을 강조하도록 수식을 입력합니다 - 이후 [서식] 버튼을 클릭한 후, [채우기] 탭에서 채우기 색상을 진한 검정색, 글꼴 색상을 흰색으로 변경하고 [확인] 버튼을 클릭해 조건부서식을 적용합니다.

오늘일 경우 강조할 서식을 적용합니다. - 달력의 날짜를 오늘 날짜 기준 년도/월로 변경하면 오늘 날짜가 검은색 배경으로 강조되는 것을 확인할 수 있습니다.

달력에서 오늘 날짜가 강조됩니다.
상세 일정 관리표 만들기
이제 달격과 함께 해당 월의 1일부터 31일까지 상세 일정을 함께 관리할 수 있는 '상세일정 관리표'를 추가해보겠습니다.
- B11셀에 다음과 같이 DATE 함수를 작성하고 셀의 표시형식을 "d"로 변경해 날짜의 '일'만 표시합니다.
=DATE(B2,B3,1)

상세일정표에 시작일을 입력합니다. - B12셀에는 윗셀 + 1 로 수식을 입력하고 수식을 아래로 자동채우기하면 됩니다.

나머지 날짜를 자동채우기로 입력합니다. - C11셀에는 다음과 같이 TEXT 함수를 작성해 날짜의 요일을 표시하고, 수식을 아래로 자동채우기해 모든 날짜의 요일을 표시합니다.
=TEXT(B11,"aaa")

상세일정표에 요일을 표시합니다. - 이제 상세 일정을 작성할 수 있도록 셀 범위를 넉넉히 병합해보겠습니다. 상세 일정을 작성할 D11:H49 범위를 선택하고 [홈] 탭 - [병합하고 가운데 맞춤] 우측의 옵션 화살표 → '전체 병합'을 클릭합니다.

전체 병합을 실행합니다. - [전체 병합] 을 클릭하면, 그림과 같이 선택된 모든 범위가 '행 단위'로 한 번에 병합됩니다.

선택한 범위가 행 단위로 한번에 병합됩니다. - 이제 상세일정표에서 날짜가 주말일 경우 배경색을 빨강과 파랑으로 변경해보겠습니다. 상세일정표가 작성된 B11:H41 범위를 선택한 후, [조건부서식] - [새 규칙] 에서 '수식을 사용하여 서식을 지정할 셀 결정'을 선택하고 입력창에 다음과 같이 WEEKDAY 함수를 입력합니다.
=WEEKDAY($B11)=7

WEEKDAY 함수로 주말일 경우를 비교합니다. 오빠두Tip : WEEKDAY 함수는 날짜의 요일 번호를 반환합니다. 1은 일요일, 2는 월요일, ... , 7은 토요일이 됩니다. - 이후 [서식] 버튼을 클릭하고 배경색을 옅은 파랑색으로 변경하면 상세일정 중 토요일의 배경색이 변경됩니다.

토요일일 경우 배경을 옅은 파란색으로 강조합니다. - 동일한 과정으로 [조건부서식] - [새 규칙]에서 아래 수식을 입력해 일요일인 경우 배경색을 옅은 빨강색으로 강조합니다.
=WEEKDAY($B11)=1

일요일은 배경을 옅은 빨강색으로 강조합니다. - 마지막으로 상세일정표에서 익월 날짜를 회색으로 표시합니다. 상세일정표 범위를 선택한 후, [조건부서식] - [새 규칙] - [수식을 사용하여 서식을 지정할 셀 결정]을 선택하고 아래 수식을 입력합니다. 이후 [서식] 버튼을 클릭해 채우기와 글꼴 색상을 옅은 회색으로 변경합니다.
=MONTH($B11)<>$B$3

익월일 경우 배경을 회색으로 강조합니다. - 확인 버튼을 클릭해 서식을 적용하면 현재 월이 아닌 익월의 날짜가 회색으로 표시됩니다.

상세일정표에 조건부서식이 적용됩니다.
공휴일 강조 및 만년 달력 완성하기
이제 달력과 상세일정표의 날짜가 공휴일인 경우 빨간색 글씨로 강조하는 조건부서식을 적용해보겠습니다.
- 먼저 달력이 작성된 B5:H10 범위를 선택하고, [홈] 탭 - [조건부서식] - [새 규칙] 에서 '수식을 사용하여 서식을 지정할 셀 결정' 을 선택하고 다음 수식을 작성합니다.
=COUNTIF(공휴일!$A:$A,B5)>0
'공휴일 시트 A열 범위에 날짜가 있어 COUNTIF 함수의 결과가 0보다 큰 경우 공휴일 서식을 적용합니다.
COUNTIF 함수로 달력의 날짜가 공휴일인지 비교합니다. - [서식] 버튼을 클릭하고 글꼴 색을 빨간색으로 변경하고 [확인] 버튼을 클릭해 서식을 적용하면, 달력에서 공휴일이 빨간색 글씨로 강조됩니다.

공휴일일 경우 글씨색을 빨간색으로 강조합니다. - 상세일정이 작성된 B11:H41 범위를 선택하고, [홈] - [조건부서식] - [새 규칙] - '수식을 사용하여 서식을 지정할 셀 결정' 에서 다음과 같이 수식을 입력하고 [서식]에서 채우기 색을 옅은 빨간색으로 변경합니다.
=COUNTIF(공휴일!$A:$A,$B11)>0

상세일정표의 조건부서식에도 COUNTIF 함수를 적용합니다. - [확인] 버튼을 클릭해 조건부서식을 적용하면 상세일정표에서 공휴일의 배경색이 옅은 빨강색으로 강조됩니다.

공휴일일 경우 배경이 빨간색으로 강조됩니다. - 마지막으로 달력에서 익월이면서 공휴일인 경우 빨간색으로 표시되지 않도록 조건부서식의 우선순위를 변경합니다.

조건부서식의 우선순위를 변경합니다. - 달력이 작성된 B5:H10 범위를 선택한 후, [조건부서식] - [규칙 관리]로 이동합니다. '조건부서식 규칙관리자' 창이 나타나면, 규칙 목록에서 공휴일을 강조하는 조건부서식을 선택하고 아래쪽 화살표를 클릭해 맨 마지막 순서로 옮기고 [확인] 버튼을 클릭합니다.

공휴일을 강조하는 규칙을 맨 아래로 옮깁니다. - 이제 달력이 작성된 B:H 열을 복사해 I열에 붙여넣기하고, I3셀의 월을 "=이전월 + 1"로 수식을 변경합니다.

완성된 달력을 복사해 오른쪽에 붙여넣습니다. - 이후 새롭게 붙여넣은 I:O 범위를 선택하고 [홈] - [조건부서식] - [규칙 관리] 를 실행한 후, 조건부서식 목록에서 'B열'을 참조하는 공식을 'I열' 기준으로 변경하면 조건부서식이 올바르게 적용됩니다.

조건부서식 공식에서 B열 기준 셀 참조를 I열 기준으로 변경합니다. - 동일한 과정으로 6개월치 달력을 복사/붙여넣기하면 만년 달력이 완성됩니다.

만년 달력이 완성되었습니다.
ChatGPT로 자동화 기능 추가하기
이제 ChatGPT를 활용하여 완성된 서식에 매크로를 추가하면 자동화 만년 달력이 완성됩니다. 자동화 만년 달력에 필요한 VBA 코드를 작성하기 위한 프롬프트와 이를 활용해 자동화 서식을 만드는 과정은 영상 강의를 참고하세요!

VBA 매크로를 추가해 자동화 만년 달력 서식을 완성합니다.

