바쁜 일상을 관리할 때 달력은 필수적인 도구입니다. 벽에 걸어두는 달력부터 모바일이나 시계의 포켓 캘린더까지 다양한 형태로 활용하고 있죠. 하지만 Microsoft Excel로 직접 대화형(interactive) 달력을 만들어 보면 그 과정이 재미있고, 결과물도 무척 만족스럽습니다. 연도나 월 값을 바꾸기만 하면 자동으로 날짜가 조정되는 달력이라면 업무와 개인 일정 관리 모두에 큰 도움이 될 것입니다.
이 글에서는 엑셀에서 대화형 달력을 만드는 두 가지 방법을 단계별로 소개합니다.
아래에서 무료 Excel 워크북 파일을 내려받아 직접 따라 해볼 수 있습니다.
엑셀 대화형 달력 만들기: 2가지 방법
이 글에서는 두 가지 접근 방식을 다룹니다.
- 방법 1: 월별(monthly) 대화형 달력 만들기
- 방법 2: 연간(yearly) 대화형 달력 만들기
두 방법 모두 아래와 같은 샘플 데이터를 사용합니다. 첫 번째 데이터 세트는 2023년의 공휴일 목록이며, 두 번째 데이터 세트는 12개월의 월 이름 목록입니다.

방법 1. 엑셀에서 월별 대화형 달력 만들기
첫 번째 방법은 수식과 서식을 활용해 월별 대화형 달력을 만드는 과정입니다. 아래 단계를 순서대로 따라 해보세요.
1단계: 입력 필드 만들기
- 새 시트에 사용자 입력용 필드 네 개를 만들고 아래 이미지처럼 이름을 지정합니다.
- 2023년 달력을 만드는 것이므로 연도 필드에 '2023'을 입력합니다.

2단계: 데이터 유효성 검사 열기
- 월 머리글 아래 셀 C5를 선택하고 리본 메뉴의 [데이터] 탭으로 이동합니다.
- [데이터 도구] 그룹에서 [데이터 유효성 검사]를 선택합니다.

3단계: 드롭다운 목록 설정
- [제한 대상] 드롭다운에서 [목록]을 선택하고, [원본] 입력란에는 샘플 데이터 세트 시트의 12개월 데이터 범위를 지정합니다.
- [확인]을 누르면 셀 C5에 12개월 드롭다운 목록이 생성됩니다.

4단계: 달력 테이블 만들기
- 워크시트에 아래 이미지처럼 7×7 크기의 표를 만듭니다.
- 표의 맨 윗줄 7개 열에는 월요일부터 시작하는 요일 이름을 입력합니다.

5단계: 동적 달력 제목 만들기
- 달력 제목을 동적으로 변경되게 하려면 병합된 셀 B7:H7에 아래 수식을 입력해 C5와 C4의 값을 결합합니다.
=C5&" "&C4

6단계: 제목 자동 변경 확인
- 앞 단계를 마치면 달력 제목이 아래 이미지처럼 표시됩니다.
- 셀 C4 또는 C5의 값이 바뀌면 제목도 함께 변경됩니다.

7단계: MATCH 함수로 월 번호 찾기
- 셀 G4에 아래 MATCH 함수 수식을 입력합니다.
=MATCH(C5,'Data Set'!$B$17:$B$28,0)
- MATCH 함수는 C5의 값(월 이름)을 샘플 데이터 세트의 B17:B28 범위에서 찾아 해당 월의 상대 위치를 반환합니다.

8단계: 결과 확인
- Enter 키를 누르면 G4에 C5의 월 번호가 표시됩니다.

9단계: WEEKDAY + DATE 함수 조합
- 이제 각 월의 첫째 날이 무슨 요일인지 숫자 형태로 구합니다. 여기서 1은 월요일, 2는 화요일을 의미합니다.
- 셀 G5에 아래와 같이 WEEKDAY 함수와 DATE 함수를 결합한 수식을 입력합니다.
=WEEKDAY(DATE($C$4,$G$4,1),2)
- DATE 함수는 특정 연도의 각 월 첫째 날짜를 나타내고, WEEKDAY 함수가 그 요일을 숫자로 반환합니다.
- 주를 월요일부터 시작하려면 반환 유형으로 2를 지정합니다.

10단계: 첫째 날 요일 확인
- 수식 실행 결과, 2023년 1월의 첫째 날은 7, 즉 일요일임을 알 수 있습니다.

11단계: SEQUENCE 함수로 표 채우기
- 만들어 둔 표에 숫자를 채워 넣습니다. 셀 B9에 아래 SEQUENCE 함수를 입력합니다.
=SEQUENCE(6,7)

12단계: 1~42까지 자동 채우기
- 표가 6행 × 7열이므로 위 함수를 통해 1부터 42까지의 숫자가 순서대로 채워집니다.

13단계: DATE 함수와 결합하기
- 이 숫자들을 실제 날짜로 변환하기 위해 앞 단계의 수식에 DATE 함수를 더합니다. 셀 B9에 아래 수식을 사용하세요.
=DATE(C4,G4,1)+SEQUENCE(6,7)

14단계: 날짜 변환 결과 확인
- 수식 입력 후 Enter를 누르면 아래 이미지처럼 표에 날짜가 표시됩니다.

15단계: 날짜 서식 지정
- 수식 결과가 올바른 날짜 형식으로 표시되지 않으므로 서식을 수정해야 합니다.
- 셀 범위 B9:H14를 선택한 후 [홈] 탭의 [표시 형식] 그룹에서 숫자 서식 드롭다운을 엽니다.

16단계: 짧은 날짜 형식 적용
- 드롭다운에서 선택한 범위의 서식을 [짧은 날짜]로 지정합니다.

17단계: 시작 요일 오류 수정 준비
- 서식 변경 결과는 아래 이미지와 같습니다. 그런데 잘 보면 2023년 1월의 시작 요일이 올바르지 않습니다.
- 셀 G5의 값(7)에 맞춰 2023년 1월 1일이 일요일에서 시작되도록 수정하겠습니다.

18단계: G5 값 빼기
- 셀 B9에 아래 수식을 입력합니다. 기존 수식 결과에서 G5 값을 빼주는 방식입니다.
=DATE(C4,G4,1)+SEQUENCE(6,7)-G5

19단계: 시작 요일 정렬 확인
- 이제 2023년 1월 1일이 일요일부터 시작되는 것을 확인할 수 있습니다.
- 다만 이전 달과 다음 달의 날짜 일부가 함께 표시됩니다.

20단계: IF 함수로 이전·다음 달 날짜 제거
- 불필요한 날짜를 제거하기 위해 셀 B9에 아래 조건부 수식을 입력합니다.
=IF(MONTH(DATE(C4,G4,1)+SEQUENCE(6,7)-G5)=G4,DATE(C4,G4,1)+SEQUENCE(6,7)-G5,"")
수식 설명
- DATE(C4,G4,1)+SEQUENCE(6,7)-G5: C4, G4, G5 셀의 값을 기준으로 요일과 날짜를 고려해 달력 날짜를 순서대로 생성하는 부분입니다.
- IF(MONTH(...)=G4, ..., ""): 생성된 날짜의 월이 선택한 월(G4)과 일치하면 날짜를 표시하고, 그렇지 않으면 빈 칸을 반환해 전체 조건을 처리하는 부분입니다.

21단계: 불필요한 날짜 삭제 완료
- 앞 단계를 마치면 월별 달력에서 이전·다음 달의 잉여 날짜들이 사라진 것을 확인할 수 있습니다.

22단계: 셀 서식 열기
- 이제 표의 날짜 형식을 바꿔 보겠습니다. 데이터 범위 B9:H14를 선택한 상태에서 마우스 오른쪽 버튼을 클릭합니다.
- 컨텍스트 메뉴에서 [셀 서식]을 선택합니다.

23단계: 사용자 지정 서식 'dd' 적용
- [셀 서식] 대화 상자가 열리면 [사용자 지정] 탭으로 이동합니다.
- [형식] 입력란에 dd를 입력하고 [확인]을 누릅니다.

24단계: 일(day)만 표시
- 이제 표에는 날짜 중 '일'에 해당하는 숫자만 표시됩니다.

25단계: 주말 색상 변경
- 달력에서 주말 날짜의 글꼴 색상을 검정에서 빨강으로 변경하면 가독성이 한층 좋아집니다.

26단계: 월 변경 테스트
- 이제 셀 C5의 드롭다운에서 월 이름을 바꾸면 아래 이미지처럼 달력의 날짜가 자동으로 변경됩니다.

27단계: 공휴일 강조를 위한 조건부 서식 시작
- 다음 단계에서는 매월 공휴일을 강조 표시하는 방법을 알아보겠습니다.
- 먼저 셀 범위 B5:H14를 선택합니다.
- [홈] 탭에서 [조건부 서식]을 클릭하고 드롭다운에서 [새 규칙]을 선택합니다.

28단계: 새 서식 규칙 작성
- [새 서식 규칙] 대화 상자가 열립니다.
- [규칙 유형 선택]에서 [수식을 사용하여 서식을 지정할 셀 결정]을 선택합니다.
- 수식 입력란에 ISNUMBER 함수와 VLOOKUP 함수를 결합한 아래 수식을 입력합니다.
=ISNUMBER(VLOOKUP(B9,'Data Set'!$C:$C,1,0))
- 그런 다음 [서식] 버튼을 눌러 위 수식이 TRUE가 되는 셀의 서식을 지정합니다.
수식 설명
- VLOOKUP(B9,'Data Set'!$C:$C,1,0): VLOOKUP 함수가 Data Set 워크시트 공휴일 테이블의 가장 왼쪽 열에서 값을 찾아, 지정한 열의 같은 행 값을 반환합니다.
- ISNUMBER(VLOOKUP(...)): ISNUMBER 함수가 앞 단계의 값이 숫자인지 확인하여 TRUE 또는 FALSE를 반환합니다.

29단계: 서식 적용 및 확인
- 원하는 색상과 글꼴 스타일을 지정한 후 [확인]을 눌러 수식을 적용합니다.

30단계: 공휴일 강조된 달력 완성
- 조건부 서식으로 공휴일이 강조된 월별 달력이 최종 완성됩니다.

31단계: 다른 월 확인하기
- 셀 C5의 값을 변경하면 서식이 그대로 유지된 채 다른 월의 달력을 확인할 수 있습니다.

방법 2. 엑셀에서 연간 대화형 달력 만들기
이번 섹션에서는 연간 대화형 달력을 만드는 단계별 과정을 살펴보겠습니다. 전체적인 흐름은 월별 달력 만들기와 비슷하지만, 만들기와 서식 지정 과정에서 몇 가지 차이점이 있습니다. 아래 단계를 차례로 따라 해보세요.
1단계: 12개의 표 만들기
- 먼저 아래 이미지처럼 7×7 크기의 표 12개를 만듭니다.
- 각 표에는 월요일부터 시작하는 요일 이름을 순서대로 입력합니다.

2단계: 월 번호 입력
- 첫 번째 표 바로 위에 있는 셀 B6에 1을 입력합니다.

3단계: 셀 서식 열기
- Enter 키를 누른 후 셀 B6을 마우스 오른쪽 버튼으로 클릭합니다.
- 컨텍스트 메뉴에서 [셀 서식]을 선택합니다.

4단계: 사용자 지정 형식 'January'
- [셀 서식] 대화 상자에서 [사용자 지정] 탭으로 이동한 뒤 [형식] 입력란에 January를 입력하고 [확인]을 누릅니다.

5단계: 1월 헤더 확인
- 확인을 누르면 첫 번째 표의 헤더가 January(1월)로 표시됩니다. 숫자 1이 자동으로 월 이름으로 변환되는 원리입니다.

6단계: 나머지 월 이름 지정
- 같은 방법으로 나머지 표들의 헤더도 지정합니다.
- 모든 표에 숫자 1~12를 입력하고 12개월 이름으로 표시되도록 합니다.

7단계: 헤더 색상 꾸미기
- 아래 이미지처럼 취향에 맞게 표 헤더에 색상을 입히면 완성도가 높아집니다.

8단계: 1월 날짜 수식 입력
- 첫 번째 월의 날짜를 만들기 위해 셀 B8에 아래 수식을 입력합니다.
=IF(MONTH(DATE($B$4,B6,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$4,B6,1),2))=B6,DATE($B$4,B6,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$4,B6,1),2),"")
- 이 수식은 월별 달력 섹션에서 날짜를 생성할 때 사용한 것과 같습니다.
- 다만 이 시트에서는 연도와 월을 위한 별도의 입력 필드를 만들지 않았으므로, 모든 수식을 하나로 통합했습니다.

9단계: 주말 색상 변경
- Enter 키를 누르면 별도의 추가 서식 없이도 2023년 1월의 날짜가 올바른 순서로 표시됩니다.
- 값이 표시된 후 주말 날짜의 글꼴 색상을 빨강으로 변경합니다.

10단계: 나머지 월에 수식 적용
- 같은 수식을 나머지 11개월 표의 첫 번째 셀에 각각 삽입하면 아래 이미지처럼 각 월의 날짜가 표시됩니다.

11단계: 1월 공휴일 강조 준비
- 이제 연중 첫 달의 공휴일을 강조해 보겠습니다.
- 먼저 셀 범위 B8:H13을 선택합니다.

12단계: 조건부 서식 → 새 규칙
- [홈] 탭에서 [조건부 서식]을 선택합니다.
- 드롭다운에서 [새 규칙] 명령을 선택합니다.

13단계: 월별 달력과 동일한 규칙 적용
- 월별 달력 섹션에서 했던 것과 같은 방식으로 [서식 규칙 편집] 상자를 설정합니다.
- 여기서도 ISNUMBER와 VLOOKUP 함수를 결합한 동일한 수식을 사용합니다.
- 모든 설정을 마친 후 [확인]을 누릅니다.
=ISNUMBER(VLOOKUP(B9,'Data Set'!$C:$C,1,0))

14단계: 1월 공휴일 강조 완료
- 연간 달력에서 1월의 날짜가 아래 이미지처럼 표시됩니다.
- 조건부 서식을 통해 모든 공휴일이 강조 표시되었습니다.

15단계: 나머지 월에도 적용
- 같은 방법으로 나머지 11개월에도 조건부 서식을 적용해 각 월의 공휴일을 강조합니다.

16단계: 연도 변경 테스트
- 마지막으로 셀 B4의 연도 값을 변경하면 해당 연도의 달력이 자동으로 표시됩니다.

마무리
지금까지 엑셀에서 대화형 달력을 만드는 두 가지 방법을 살펴보았습니다. 월별 달력은 데이터 유효성 검사 드롭다운과 SEQUENCE, DATE, WEEKDAY, IF 함수를 활용했고, 연간 달력은 이를 응용해 12개월을 한눈에 보여주도록 구성했습니다. 이 가이드를 따라 하면 연도와 월 값만 바꿔도 자동으로 갱신되는 실용적인 달력을 직접 만들 수 있을 것입니다.
과정 중에 궁금한 점이나 추가로 필요한 기능이 있다면 댓글로 남겨주세요. 확인 후 최선의 답변으로 안내해 드리겠습니다.
함께 보면 좋은 글
- 엑셀에서 주간 달력 만드는 방법 (3가지)
- 템플릿 없이 엑셀에서 달력 만들기 (예제 2가지)
- 엑셀 빈 달력 만들기 (무료 템플릿 다운로드)