본문 바로가기
세상의 모든 엑셀 (엑셀팁, 질문)

025. (엑셀 팁, 질문) 만년 달력 만들기 - 달력 수식 이해하기

by Excel.Jump 청출어람 2023. 3. 17.
반응형

 
 
 

엑셀 만년 달력

 
 
 
 
 

■ 목차

 
1. 엑셀 만년 달력 만들기 개요
2. 만년 달력 결과물 및 기능 설명
3. 만년 달력 수식으로 만들기
4. 달력에서 날짜만 표시하기 - 셀 서식 ( "d" )
5. 일, 토요일 색상 넣기 - 셀 서식 > 글꼴 색
6. 당월이 아닌 경우 글자색 흐르게 표시 :  조건부 서식
** 핵심 요약
 
 
 
 

1. 엑셀 만년 달력 만들기 개요

 
  - 오늘은 엑셀에서 달력을 만들어 볼 예정인데 다양한 엑셀의 함수 및 기능의 사용이 필요하지만 근본이 되는 수식은 한 개입니다.
  -사용하는  함수도 Date, Weekday 함수 2개 만을 가지고 만년 달력의 수식을 만들어 볼 예정이며
  - 달력 자체를 꾸미는 기능보다는 오늘은 달력에 사용되는 수식을 이해하는 것에 중점을 두고 설명을 드릴까 합니다.

  - 달력을 만들기 위해서 우리가 알아야 하는 함수와 엑셀의 기능은 아래와 같습니다. 

  - Date 함수 : 년, 월, 일을 정수로 입력하면 날짜 형식의 일자 데이터를 만들어 주는 함수입니다. 
  - Weekday 함수 :입력된 날짜에 해당하는 요일을 숫자로 반환하는 함수입니다. 
  - Month 함수 : 날짜를 입력하면 해당 월을 정수로 반환하는 함수입니다.

  - 조건부 서식 : 조건이 참이 경우 지정한 서식을 적용하는 기능입니다. 
 
 
 
 

2. 만년 달력 결과물 및 기능 설명

 
  - 엑셀 만년 달력은 "년도/월"을 숫자로 입력하면 해당 연도/월의 월간 달력을 자동으로 만들어 주는 형식입니다.
  - 간단하게 수식을 수정한다면 항상 오늘 날짜를 기준으로 이번 달의 달력을 표시하게 할 수도 있습니다. 

  - 달력 처음이나 끝에 나올 수 있는 이전 월이나 다음 달의 일자들은 조건부 서식을 활용하여 글자 색을 옅게 변경하고
  - 셀 서식을 활용하여 날짜 중에 "일자"만을 표시하였습니다. 

  - 아래 상태가 만년 달력의 기본 뼈대(?)가 되는 형태이고 사용자가 원한다면 일정 삽입 등의 다양한 형태로 꾸미는 것이 가능합니다. 
 

엑셀 만년 달력
* 엑셀 만년 달력

 
 
 
 
 

3. 만년 달력 수식으로 만들기

 
  - 만년 달력의 핵심은 첫 번째 주에 해당 년/월의 1일이 어디에 위치하는지를 수식으로 알아내고
  - 그래서 첫 번째 일요일의 날짜(달력의 첫 번째 날짜)를 정확하게 알아내는 것입니다. 

  - 그렇게 첫 번째 일요일의 날짜를 정확하게 알게 되면 나머지는 전일 + 숫자 1로 날짜를 하루씩 증가해 주는 것이 가능합니다.
  - 날짜의 원본은 숫자이고 숫자 1 = 하루 = 24시간 이기 때문입니다. 그리고 보이는 yyyy/mm/dd의 날짜 형식은 모두 서식이라서
  - 일자만을 나타내거나 월/일 형식으로 셀 서식만으로 원하는 대로 표현이 가능합니다. 

  - 결국 첫 번째 일요일의 날짜(달력의 첫 번째 날짜)를 수식으로 만들어 내는 문제풀이가 되게 됩니다. 

  - ① 우리가 알고 있는 정보 : 사용자가 지정한 년도(2023), 월(12)

  - ② 지정된 년도/월의 첫 번째 날짜(1일)를 날짜 데이터 형식으로 만들기 : Date 함수
  - Date 함수는 연도, 월, 일을 숫자로 지정해 주면 "날짜 형식의 데이터"를 만들 수 있습니다.
  - 수식 : "=date(2023, 12, 1) = date(C2, F2, 1)" 
  - 날짜 관련 서식이나 다양한 함수를 사용하기 위해서는 반드시 날짜 데이터형식으로 달력을 구성해 주어야 합니다. 

  - ③ 지정한 달의 1일이 무슨 요일인지 알아내기 : Weekday 함수
  - Weekday 함수는 날짜 데이터를 받아서 해당 날짜가 무슨 요일인지를 숫자로 반환하는 함수입니다.
  - 옵션 없이 사용하는 경우 일요일은 숫자 1, 월요일은 숫자 2,.. 와 같은 형식으로 값을 반환하게 되고
  - 여기에 우리가 만든 1일의 날짜 데이터(2023/12/1)를 입력하게 되면 첫째 날이 무슨 요일인지(6 = 금요일)를 알 수 있고
  - 그렇게 되면 우리는 달력에서 1일의 위치(요일)를 정확하게 알 수가 있게 됩니다. 

  - ④ 달력에서 첫 번째 일요일 날짜 구하기
  - "2023/12/1"의 경우 해당 요일이 금요일(Weekday = 6)이라는 것을 우리는 알았습니다. 
  - 그러면 해당주의 월요일의 날짜는 어떻게 될까요? 넵 바로 5일 전인 "2023/11/26"이 됩니다. 
  - 첫 번째 일요일 = 2023/12/1 - Weekday(2023/12/1) +1 = 2023/12/1 - 6 + 1 = 2023/12/1 - 5 = 2023/11/26
  - 엑셀에서 숫자 1 = 1 day 이기 때문에 가능한 수식입니다.

  - ⑤  "2023/11/26"이 달력의 첫 번째 날짜입니다. 그러면 그 다음 날짜는 "=2023/11/26 + 1"로 하루에 해당하는 숫자 1을 전일에서 더해주시면 됩니다. 

  - 달력의 첫 번째 일요일 날짜를 수식으로 표시하게 되면 "=date(2023,12,1) - Weekday(date(2023,12,1)) + 1
  - 그 이후은 나머지 날짜의 수식은 "=전일 + 1"로 표현이 가능합니다. 
 

달력에서 첫번째 일요일 날짜구하기
* 달력에서 첫번째 일요일 날짜구하기

 
 

달력에서 나머지 날짜 구하기
* 달력에서 나머지 날짜 구하기

 
  - 이렇게 해당 일자들을 수식으로 구하게 되면 99% 작업이 완료되었습니다. 
  - 나머지는 서식/조건부서식을 사용해서 꾸며주기만 하시면 됩니다. 
 
 
 
 
 

4. 달력에서 날짜만 표시하기 - 셀 서식 ( "d" )

 
  - 날짜 데이터에서 사용되는 서식의 기본은 "yyyy/mm/dd"입니다.
  - 그래서 날짜만을 표시하고자 한다면 2자리로 표시하는 경우는 "dd" (= 01 )을 한 자리로 표시를 하고 싶은 경우는 "d" ( = 1 )를 사용하시면 됩니다.
  - ① 먼저 달력에서 날짜 데이터를 모두 마우스로 모두 선택을 하신 다음
  - ② 메뉴 패스 : "Ctrl + 1" (셀 서식 단축키) > "표시형식" > "사용자 지정" > "d" 입력
 

날짜만 표시하기 - 셀서식 단축키(Ctrl + 1)
* 날짜만 표시하기 - 셀서식 단축키(Ctrl + 1)

 
 
 

셀 서식 - 사용자 지정 - 날짜(
* 셀 서식 - 사용자 지정 - 날짜("d")

 
  - 이제 셀 간격만 적당히 조정을 하시면 아래와 같은 화면을 얻을 수 있습니다.
 

만년달력 - 날짜 서식 지정
* 만년달력 - 날짜 서식 지정

 
 
 
 
 

5. 일, 토요일 색상 넣기 - 셀 서식 > 글꼴 색

 
  - 일요일은 "빨간색", 토요일은 "파란색"으로 셀 서식의 "글꼴 색"을 사용해서 구분해 주도록 하겠습니다.

  - 메뉴 패스 (리본 메뉴) : "홈"탭 > "글꼴" 그룹 > "글꼴 색"
 

셀 서식 > 글꼴 색
* 셀 서식 > 글꼴 색

 
 
 
 

6. 당월이 아닌 경우 글자색 흐르게 표시 :  조건부 서식

 
  - 해당 월이 아닌 경우 글자색을 흐리게 표시를 해서 구분을 해보도록 하겠습니다.
  - 이 경우 조건부 서식을 사용하게 되는데 
  - 날짜에서 월정보만을 추출하여 지정한 월과 다른 경우는 글꼴 색을 옅은 색으로 지정을 해주시면 됩니다.
  - 조건부 서식의 수식을 표현하자면 "=month(B5) <> $f$12"와 같이 작성이 가능합니다.

  - ① 달력의 모든 날짜에 대해서 "조건부 서식"을 지정하기 위해서 모든 날짜 영역을 마우스로 선택합니다.
  - ② 메뉴 패스 (리본 메뉴) : "홈"탭 > "스타일" 그룹 > "조건부 서식" > "새 규칙" > "수식을 사용하여 서식을 지정할 셀 결정" > "다음 수식이 참인 값의 서식 지정"
  - 메뉴 패스가 조금 긴데 "조건부 서식"의 "사용자 지정"화면입니다. 
 

조건부 서식 - 새 규칙
* 조건부 서식 - 새 규칙

 
 

조건부 서식 지정
* 조건부 서식 지정

 
 
  - ③ 조건부 서식 : =month(B5) <> $F$2
  - 조건부 서식을 지정할 때 우선 "B5" 셀이 활성화되어 있는지 확인을 하고 시작해야 합니다.
  - 조건부 서식의 수식은 현재 활성화된 셀을 기준으로 조건 수식을 작성하고 나머지 선택된 셀들에 대해서는 조건부 서식이 복사되어 적용이 된다고 생각을 하시고 작성이 되어야 합니다. 
  - 그래서 대상이 되는 "B5"셀은 상대참조 형태로 수식을 작성하고 "$F$2"셀은 반드시 절대참조 형식으로 작성을 해야 합니다.

  - ④ 조건부 서식 > "서식" 지정
  - 조건부 서식이 참인 경우, 즉 현재 월이 아닌 날짜의 경우는 "글꼴 색"을 옅은 회색 계열로 지정을 해줍니다.
  - 이제 아래와 같이 완성된 화면을 볼 수 있습니다.
 

만년 달력 - 완성 화면
* 만년 달력 - 완성 화면

 
  - 여기까지가 가장 기본이 되는 "만년 달력" 형식입니다.
  - 여기에서 더 나아가서 메모가 가능하도록 입력될 행을 날짜 사이사이에 추가를 한다던지
  - 공휴일 정보를 따로 관리하여 공휴일인 경우에는 글꼴 색이나 공휴일 표시를 해준다던지 하는 확장된 개념의 꾸미기가 가능합니다.
  - 그리고 Today 함수로 현재날짜 정보와 Year, Month 함수를 이용하여 항상 이 번달의 달력이 표시되도록 할 수도 있습니다.

  - 천천히 만들어 보시고 이렇게 저렇게 응용을 해보시기 바랍니다. 
 
 
 
 

** 핵심 요약 :  만년 달력 만들기 - 달력 수식 이해하기

 
1. 엑셀 만년 달력 만들기 개요

  - 달력을 만들기 위해서 우리가 알아야 하는 함수와 엑셀의 기능은 아래와 같다.

  - Date 함수 : 년, 월, 일을 정수로 입력하면 날짜 형식의 일자 데이터를 만들어 주는 함수이다.
  - Weekday 함수 : 날짜에 해당하는 요일을 숫자로 반환하는 함수이다.
  - Month 함수 : 날짜를 입력하면 해당 월을 정수로 반환하는 함수이다.
  - 조건부 서식 : 조건이 참이 경우 지정한 서식을 적용하는 기능이다.


2. 만년 달력 결과물 및 기능 설명

  - 엑셀 만년 달력은 "년도/월"을 숫자로 입력하면 해당 연도/월의 월간 달력을 자동으로 만들어 주는 형식이다.
  - 간단하게 수식을 수정한다면 항상 오늘 날짜를 기준으로 이번 달의 달력을 표시하는 것도 가능하다.
  - 한 개의 수식을 적용하고 셀 서식이나 조건부 서식으로 다양하게 꾸미는 것이 가능하다.


3. 만년 달력 수식으로 만들기

  - 결국 첫 번째 일요일의 날짜를 수식으로 만들어 내는 문제풀이가 된다.
  - 나머지는 날짜는 전일 + 숫자 1로 날짜를 하루씩 증가해 주면 된다.

  - ① 우리가 알고 있는 정보 : 사용자가 지정한 년도(2023), 월(12)
  - ② 지정된 년도/월의 첫 번째 날짜(1일)를 날짜 데이터 형식으로 만들기 : Date 함수
  - ③ 지정한 달의 1일이 무슨 요일인지 알아내기 : Weekday 함수
  - ④ 달력에서 첫 번째 일요일 날짜 구하기

  - 달력의 첫 번째 일요일 날짜를 수식으로 표시하게 되면 "=date(2023,12,1) - Weekday(date(2023,12,1)) + 1
  - 그 이후은 나머지 날짜의 수식은 "=전일 + 1"로 표현이 가능하다.
  - 나머지는 서식/조건부서식을 사용해서 꾸며주기만 하면 된다.


4. 달력에서 날짜만 표시하기 - 셀 서식 ( "d" )

  - 날짜 데이터에서 사용되는 서식의 기본은 "yyyy/mm/dd"이다.
 - 메뉴 패스 : "Ctrl + 1" (셀 서식 단축키) > "표시형식" > "사용자 지정" > "d" 입력


5. 일, 토요일 색상 넣기 - 셀 서식 > 글꼴 색

  - 일요일은 "빨간색", 토요일은 "파란색"으로 셀 서식의 "글꼴 색"을 사용해서 구분해 보자.
  - 메뉴 패스 (리본 메뉴) : "홈"탭 > "글꼴" 그룹 > "글꼴 색"


6. 당월이 아닌 경우 글자색 흐르게 표시 :  조건부 서식

  - 날짜에서 월정보만을 추출하여 지정한 월과 다른 경우는 글꼴 색을 옅은 색으로 지정을 해주자.
  - 메뉴 패스 (리본 메뉴) : "홈"탭 > "스타일" 그룹 > "조건부 서식" > "새 규칙" > "수식을 사용하여 서식을 지정할 셀 결정" > "다음 수식이 참인 값의 서식 지정"
  - 조건부 서식 : =month(B5) <> $F$2, 상대참조, 절대참조를 잘 구분해서 적용하자.
 
 

예제. 025_만년 달력
0.01MB

 
 

[세상의 모든 엑셀 (엑셀팁, 질문)] - 999. 세상의 모든 엑셀(엑셀팁, 질문) 목차

 

999. 세상의 모든 엑셀(엑셀팁, 질문) 목차

[세상의 모든 엑셀 (엑셀팁, 질문)] - 001. (엑셀 팁, 질문) 누적 합계 구하기 - 절대참조/상대참조, 빠른 분석 도구 [세상의 모든 엑셀 (엑셀팁, 질문)] - 002. (엑셀 팁, 질문) 날짜 칸 나누어 입력하기

nextmeok.tistory.com

 
 
 
* 엑셀 관련 궁금하신 거나 어려운 점이 있으시면 자유롭게 질문을 해주세요.
* 가능한 도움을 드릴 수 있도록 하겠습니다.
* 저도 많이 알지는 못하지만 누구나 그렇듯 시작이란 게 있고 경험이란 게 다를 것 같습니다.
* 편하게 문의하시면 됩니다. 저도 모를 수 있다. 감안해 주시고.

  - ILU, SH -

반응형

댓글