Excel 미리 계획하고 바쁜 일정을 갖고 싶다면 달력이 꽤 유용할 수 있습니다. 이를 기억하고 이 문서에서는 Excel에서 연간 달력을 만드는 방법에 대한 설명과 함께 단계를 살펴보겠습니다. . 흥미롭게도 이 캘린더는 동적이며 대화형입니다. 즉, 연도 값을 변경하면 캘린더가 자동으로 업데이트됩니다. 또한 Excel VBA를 사용하여 월별 캘린더를 만드는 방법도 논의합니다. .
아래 링크에서 연습용 워크북을 다운로드할 수 있습니다.
Excel에서 연간 달력을 만드는 4단계
이제 이 튜토리얼을 철저히 분석하기 전에 최종 출력이 어떻게 보이는지 보여드리겠습니다. 여기에 토요일이 있는 연간 달력이 있습니다. 및 일요일 (주말)은 밝은 주황색으로 표시되고 공휴일 밝은 주황색으로 나타납니다.
여기에서는 Microsoft Excel 365를 사용했습니다. 버전, 귀하의 편의에 따라 다른 버전을 사용할 수 있습니다.
📌 01단계:기본 개요 만들기
- 첫 번째 단계에서는 월 3개의 열과 4개의 행에 걸쳐 있습니다.
- 다음으로, 주 의 7일을 입력합니다. 주말 강조 표시 , 이 경우 토요일 및 일요일 .
자세히 알아보기: Excel에서 주간 달력을 만드는 방법(3가지 적절한 방법)
📌 02단계:월 이름 입력 :
- 둘째, B4 로 이동합니다. 셀>> 숫자 1 입력>> CTRL + 1 누르기 키보드의 키.
이제 셀 서식이 열립니다. 대화 상자.
- 처음에 숫자로 이동합니다. 탭>> 사용자 지정 선택 유형 옵션>> 필드에 '1월'을 입력합니다. (역 쉼표 내)>> 마지막으로 글꼴로 이동합니다. 탭.
- 다음으로 굵게 기울임꼴을 선택합니다. 글꼴 스타일 >> 색상 선택 , 여기에서는 보라색을 선택했습니다.>> 확인을 누르세요. 버튼.
- 차례로 B4:H4를 선택합니다. 셀 범위>> CTRL + 1 누르기 셀 서식으로 이동하는 키 창.
- 이에 이어 정렬 탭>> 가로 섹션에서 선택 영역 중앙 을 선택하십시오. 옵션>> 확인 을 누릅니다. 버튼.
마지막으로 1월 월 이름이 표시되어야 합니다. 아래 이미지와 같이
- 마찬가지로 다른 달에도 동일한 절차를 반복하면 다음 그림과 같은 결과가 나올 것입니다.
자세히 알아보기: 템플릿 없이 Excel에서 캘린더를 만드는 방법(2개의 예)
📌 03단계:Excel 기능을 활용하여 동적 캘린더 만들기
- 셋째, B6 셀로 이동하여 아래의 수식을 입력합니다.
=IF(MONTH(DATE($B$2,$B$4,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$2,$B$4,1),2))=$B$4,DATE($B$2,$B$4,1)+SEQUENCE(6,7)-WEEKDAY(DATE($B$2,$B$4,1),2),"")
여기 B2 및 B4 셀은 2022년을 나타냅니다. 및 월 1월 각각.
📃 참고: SEQUENCE 함수 은 Excel 365, Excel 2021 및 웹용 Excel에서 사용할 수 있으므로 호환되는 버전이 있는지 확인하세요.
- 이제 ENTER를 누릅니다. 키를 입력하면 수식이 월의 모든 날짜에 채워집니다. 1월 .
📃 참고: 날짜 를 변경해야 합니다. dd 형식으로만 지정 셀 서식에서 CTRL + 1 을 눌러 창 키보드의 키.
결국 결과는 아래의 이미지와 같아야 합니다.
📌 04단계:달력에 공휴일 표시 :
- 네 번째이자 마지막 단계에서 공휴일 목록 을 만드십시오. 아래와 같이 새 시트에 표시됩니다.
- 그런 다음 B6:H11 셀>> 조건부 서식으로 이동 드롭다운>> 새 규칙 선택 옵션.
즉시 새 서식 규칙 마법사가 나타납니다.
- 다음으로 수식을 사용하여 서식을 지정할 셀 결정을 선택합니다. 옵션.
- 그런 다음 규칙 설명에서 다음 공식을 입력하세요.
=ISNUMBER(VLOOKUP(B6,Holidays!$C:$C,1,0))
여기 B6 셀은 월요일을 가리킵니다. 월 1월 동안 공휴일!$C:$C 날짜 를 나타냅니다. 공휴일 시트.
공식 분석:
- VLOOKUP(B6,공휴일!$C:$C,1,0)) → VLOOKUP 기능 테이블의 가장 왼쪽 열에서 값을 찾은 다음 지정한 열에서 같은 행의 값을 반환합니다. 여기, B6 ( 조회_값 인수)는 Holidays!$C:$C 에서 매핑됩니다. (테이블_배열 인수) 배열. 다음은 1 (col_index_num 인수)는 조회 값의 열 번호를 나타냅니다. 마지막으로 0 (범위_조회 인수)는 일치검색을 나타냅니다. 조회 값.
- 출력 → #N/A
- ISNUMBER(VLOOKUP(B6,Holidays!$C:$C,1,0)) → 된다
- ISNUMBER(#N/A) → ISNUMBER 함수 값이 숫자인지 확인하고 TRUE를 반환합니다. 또는 거짓 . 여기, #N/A 값입니다. 인수이며 숫자가 아니므로 함수는 FALSE를 반환합니다. .
- 출력 → FALSE
이제 1월 1일 휴일을 강조 표시해야 합니다. 밝은 오렌지 색상으로.
비슷한 스타일로 다른 달에 대해 동일한 프로세스를 반복하면 출력이 아래 표시된 스크린샷과 같이 보일 것입니다.
월간 달력을 만드는 방법
월간 캘린더를 생성하려는 경우 ? 우리의 다음 방법은 당신을 다룹니다! 여기서는 VBA 코드를 사용하겠습니다. 작업을 자동화할 수 있으므로 실제로 실행해 보겠습니다.
📌 단계 :
- 먼저 개발자 로 이동합니다. 탭>> Visual Basic 클릭 버튼.
Visual Basic Editor가 열립니다. 새 창에서.
- 다음 단계에서 삽입 탭>> 모듈 선택 .
참조의 편의를 위해 여기에서 코드를 복사하여 아래와 같이 창에 붙여넣을 수 있습니다.
Sub CalendarMaker()
'This code was taken from extendoffice.com
ActiveSheet.Protect DrawingObjects:=False, Contents:=False, _
Scenarios:=False
Application.ScreenUpdating = False
On Error GoTo MyErrorTrap
Range("a1:g14").Clear
MyInput = InputBox("Type in Month and year for Calendar ")
If MyInput = "" Then Exit Sub
StartDay = DateValue(MyInput)
If Day(StartDay) <> 1 Then
StartDay = DateValue(Month(StartDay) & "/1/" & _
Year(StartDay))
End If
Range("a1").NumberFormat = "mmmm yyyy"
With Range("a1:g1")
.HorizontalAlignment = xlCenterAcrossSelection
.VerticalAlignment = xlCenter
.Font.Size = 18
.Font.Bold = True
.RowHeight = 35
End With
With Range("a2:g2")
.ColumnWidth = 11
.VerticalAlignment = xlCenter
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = xlHorizontal
.Font.Size = 12
.Font.Bold = True
.RowHeight = 20
End With
Range("a2") = "Sunday"
Range("b2") = "Monday"
Range("c2") = "Tuesday"
Range("d2") = "Wednesday"
Range("e2") = "Thursday"
Range("f2") = "Friday"
Range("g2") = "Saturday"
With Range("a3:g8")
.HorizontalAlignment = xlRight
.VerticalAlignment = xlTop
.Font.Size = 18
.Font.Bold = True
.RowHeight = 21
End With
Range("a1").Value = Application.Text(MyInput, "mmmm yyyy")
DayofWeek = Weekday(StartDay)
CurYear = Year(StartDay)
CurMonth = Month(StartDay)
FinalDay = DateSerial(CurYear, CurMonth + 1, 1)
Select Case DayofWeek
Case 1
Range("a3").Value = 1
Case 2
Range("b3").Value = 1
Case 3
Range("c3").Value = 1
Case 4
Range("d3").Value = 1
Case 5
Range("e3").Value = 1
Case 6
Range("f3").Value = 1
Case 7
Range("g3").Value = 1
End Select
For Each cell In Range("a3:g8")
RowCell = cell.Row
ColCell = cell.Column
If cell.Column = 1 And cell.Row = 3 Then
ElseIf cell.Column <> 1 Then
If cell.Offset(0, -1).Value >= 1 Then
cell.Value = cell.Offset(0, -1).Value + 1
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
Exit For
End If
End If
ElseIf cell.Row > 3 And cell.Column = 1 Then
cell.Value = cell.Offset(-1, 6).Value + 1
If cell.Value > (FinalDay - StartDay) Then
cell.Value = ""
Exit For
End If
End If
Next
For x = 0 To 5
Range("A4").Offset(x * 2, 0).EntireRow.Insert
With Range("A4:G4").Offset(x * 2, 0)
.RowHeight = 65
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlTop
.WrapText = True
.Font.Size = 10
.Font.Bold = False
.Locked = False
End With
With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlLeft)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
With Range("A3").Offset(x * 2, 0).Resize(2, _
7).Borders(xlRight)
.Weight = xlThick
.ColorIndex = xlAutomatic
End With
Range("A3").Offset(x * 2, 0).Resize(2, 7).BorderAround _
Weight:=xlThick, ColorIndex:=xlAutomatic
Next
If Range("A13").Value = "" Then Range("A13").Offset(0, 0) _
.Resize(2, 8).EntireRow.Delete
ActiveWindow.DisplayGridlines = False
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, _
Scenarios:=True
ActiveWindow.WindowState = xlMaximized
ActiveWindow.ScrollRow = 1
Application.ScreenUpdating = True
Exit Sub
MyErrorTrap:
MsgBox "You may not have entered your Month and Year correctly." _
& Chr(13) & "Spell the Month correctly" _
& " (or use 3 letter abbreviation)" _
& Chr(13) & "and 4 digits for the Year"
MyInput = InputBox("Type in Month and year for Calendar")
If MyInput = "" Then Exit Sub
Resume
End Sub
- 다시 VBA를 닫습니다. 창>> 매크로 클릭 버튼.
그러면 매크로가 열립니다. 대화 상자.
- 다음으로 CalendarMaker를 선택합니다. 매크로>> 실행 누르기 버튼.
이제 입력 상자가 열립니다.>> 월 이름 입력 및 연도 아래와 같습니다.
결과는 아래 그림과 같아야 합니다.
결론
이 기사가 Excel에서 연간 달력을 만드는 방법을 이해하는 데 도움이 되었기를 바랍니다. 문의사항이 있으시면 아래에 댓글을 남겨주세요. 또한 이와 같은 기사를 더 읽고 싶다면 ExcelDemy 웹사이트를 방문하세요. , 원스톱 Excel 솔루션 제공업체입니다.
관련 기사
- Excel에서 빈 캘린더를 만드는 방법(무료 템플릿 다운로드)