본문 바로가기
Functions/날짜 및 시간함수

[Excel] 날짜 및 시간함수를 이용하여 엑셀로 만년달력 만들기

by 뚜벅이라이프 2016. 2. 3.

날짜 및 시간함수인 weekday와 date함수를 이용해 달력을 만드는 방법에 대해 얘기하겠습니다. 언뜻 간단해 보이긴 하지만, 날짜가 일련번호로 인식되는 엑셀의 특성때문에 헷갈리는 부분이 있는데요. 엑셀을 공부하는데는 좋은 방법이 되리라 생각합니다.

엑셀 달력

엑셀-달력만들기


엑셀 달력


가장 먼저 년도와 월을 입력한 후 각 셀에 이름정의를 합니다.

(년도는 "year", 월은 "month")

그 다음 임의의 셀에 =weekday(date(year,month,1)) 처럼 수식을 입력합니다.


매월 첫날의 요일-weekday함수

Weekday함수는 날짜에 해당하는 요일을 반환하는 함수입니다.

기본적으로 1(일요일)에서 7(토요일)로 정수값을 반환하는데요.

일요일부터 시작하는 달력을 만들고 싶다면, 위와 같이 기본값을 사용하면 됩니다.

만약, 월요일부터 시작하는 달력을 원한다면, 수식을

weekday(date(year,month,1),2) 와 같이 입력하면 됩니다.


매월 첫째주-조건부 서식과 column함수


엑셀 달력

A3~G3셀에는 "=COLUMN()-$H$1+1" 와 같은 수식이 입력되어 있습니다.

(H1셀은 weekday함수를 사용한 매월 첫째날의 요일에 해당하는 값입니다.)

2016년 1월1일은 금요일이므로 weekday함수가 반환하는 값은 6입니다.


F3셀은 column번호는 6이므로 "=COLUMN()-$H$1+1"에 의해 반환되는 값은

1이 되며, 토요일인 G3셀은 2이고 일요일부터 목요일까지는 0이하의 값이 됩니다.


조건부 서식을 이용해 0이하의 값은 표시되지 않도록 글씨색을 흰색으로 지정합니다.


매월 첫째주를 제외한 나머지 주

A4~G8까지의 셀(첫번째 주를 제외한 나머지 주)에는 바로 위에 있는 셀에

7을 더합니다. 즉, A4셀에는 A3+7, B4셀에는 B3+7....이 입력됩니다.


매월 마지막날의 날짜

매월 첫째날의 위치를 구하는 방법을 알았으며, 둘째주부터는

첫째주의 날짜에 7만 더하면 달력의 모양새가 갖춰지게 됩니다.

이제 마지막 날짜만 구분할 수 있게 되면 달력이 완성되는데요.


엑셀 달력


I1 셀에는 "=DATE(year,month+1,0)" 라는 수식이 입력되어 있습니다.


Date 함수는 특정날짜의 일련번호를 표시하는데요, 

입력된 수식을 풀어보면 2016년(year), 2월(month+1), 0번째날입니다.

매월 첫째날이 1이므로, 0번째날은 바로 직전달의 마지막날이 됩니다.


네, I1 셀의 "=DATE(year,month+1,0)" 수식은 바로 원하는 달의 마지막날에 

해당하는 일련번호를 반환합니다.


조건부서식을 이용하여, 일련번호가 마지막날보다 클경우 표시되지 않도록 하면

아래 그림과 같이 지정된 년도와 월에 해당하는 달력이 완성됩니다.


엑셀 달력


날짜 및 시간함수를 이용하여 엑셀로 달력을 만드는 방법은 몇가지가 더 있는데요. 

개인적으로 가장 간단하다고 생각되는 방법을 소개해 드렸습니다.

위의 설명만으로 잘 이해가 되지 않으신다면 아래 첨부파일을 참고하세요.


엑셀-만년달력.xlsx



이상입니다.