
연도(및 날짜)만 변경할 수 있는 월별 달력(시트당 1개월)을 만들고 싶습니다. 내 달력 템플릿이 이미 생성되었습니다. 내가 원하는 것은 연도를 변경할 때 평일에 따라 날짜를 변경하는 수식을 추가하는 것입니다. 일주일은 일요일부터 시작된다
감사해요 !
답변1
제가 생각해낸 내용은 다음과 같습니다. 자신의 템플릿에 맞게 필요에 따라 지침을 조정하십시오.
지침
- A1을 표시하려는 월의 연도 값으로 설정하십시오.
- 이 게시물의 첫 번째 개정 날짜는 "2015"입니다.
- A2를 표시하려는 달의 전체 이름으로 설정합니다.
- 이 게시물의 첫 번째 개정 날짜는 "5월"입니다.
- A3:G3에 요일을 입력합니다. A3에서는 "일요일"로 시작하고 G3에서는 "토요일"로 끝납니다.
- A4에 다음 수식을 입력하세요.
=IF(WEEKDAY(DATEVALUE(CONCATENATE($A$2," 1, ",$A$1)))=1,1,"")
- 월/연도에 따라 이 수식은 여기에 빈 값을 반환할 수 있습니다. (2015년 5월 기준입니다.) 이것은 정상입니다.
- B4에 다음 수식을 입력합니다.
=IF(A4="",IF(WEEKDAY(DATEVALUE(CONCATENATE($A$2," 1, ",$A$1)))=COLUMNS($A$4:B4),1,""),A4+1)
- 월/연도에 따라 이 수식은 여기에 빈 값을 반환할 수 있습니다. (2015년 5월 기준입니다.) 이것은 정상입니다.
- B4의 수식을 C4:G4 셀에 복사합니다. Excel에서는 필요에 따라 수식의 셀 참조를 자동으로 조정해야 합니다.
- 이 시점에서 수식은 4행의 셀 중 하나에서 "1"로 평가되어야 하며 이후의 각 셀은 이전 셀보다 높은 증분을 반환해야 합니다. "1" 앞의 셀은 비어 있어야 합니다. 2015년 5월의 경우 A4:E4에 공백, F4(금요일)에 "1", G4(토요일)에 "2"가 표시됩니다..
- A5에 다음 수식을 입력하세요.
=IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",G4+1,", ",$A$1))),"",G4+1)
- 공식 결과는 G4 값보다 1 높아야 합니다.
- A5 아래 셀 A6:A9의 수식을 복사합니다. Excel에서는 필요에 따라 수식의 셀 참조를 자동으로 조정해야 합니다.
- A6:A9는 현재 공백으로 평가됩니다. 그것은 정상입니다.
- B5에 다음 수식을 입력합니다.
=IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",A5+1,", ",$A$1))),"",A5+1)
- 수식 결과는 A5 값보다 1 높아야 합니다.
- B5의 수식을 C5:G5 셀에 복사합니다. Excel에서는 필요에 따라 수식의 셀 참조를 자동으로 조정해야 합니다.
- 이제 5행의 수식은 A열에서 G열까지 점진적으로 증가하는 숫자 집합으로 평가되어야 합니다.
- B5:G5를 선택하고 해당 셀을 B6:G9까지 복사합니다. Excel에서는 필요에 따라 수식의 셀 참조를 자동으로 조정해야 합니다.
- 이 시점에서 달력은 해당 월에 대해 적절하게 채워져야 합니다. 해당 월의 1일 이전과 해당 월의 마지막 날 이후의 셀은 비어 있어야 합니다.
- 2015년 1월과 같은 특정 달에는 9행이 완전히 비어 있습니다. 이것은 정상입니다.
기능
- 사슬 같이 잇다텍스트 문자열을 하나로 결합합니다.
- 날짜값텍스트 문자열로 표시된 날짜에 대한 Excel "일련 번호" 값을 반환합니다. 문자열이 알려진 날짜 형식과 일치하지 않거나 문자열이 실제 날짜를 나타내지 않는 경우(예: "2015년 1월 32일" 또는 "2015년 2월 29일") 오류를 반환합니다.
- 주일주어진 날짜의 요일을 나타내는 1부터 7까지의 값을 반환합니다.
- 열지정된 셀 배열에 걸쳐 있는 열 수를 반환합니다.
- 만약에지정된 수식이 TRUE 또는 FALSE로 평가되는지 여부에 따라 선택한 값(또는 수식 결과)을 반환할 수 있습니다.
- ISERROR주어진 수식에서 오류가 발생하면 TRUE를 반환하고 수식에서 오류가 발생하지 않으면 FALSE를 반환합니다.
공식 설명
A4A1과 A2의 정보를 조합하여 해당 월의 1일을 나타내는 텍스트 문자열을 생성합니다. (예: "2015년 5월 1일".) 그런 다음 해당 날짜의 평일이 일요일인지 확인합니다. 일요일이면 1을 반환하고 그렇지 않으면 공백을 반환합니다.
B4:G4이전 셀이 비어 있는지 확인하십시오. 그렇지 않은 경우 이전 셀보다 하나 높은 값을 반환합니다. 이전 셀이 비어 있으면 현재 평일이 해당 달의 첫 번째 날과 일치하는지 확인합니다. 일치하면 1을 반환하고, 일치하지 않으면 공백을 반환합니다.
A5:A9이전 행 끝의 값에 1을 더한 다음 그 결과를 A1 및 A2의 정보와 결합하여 날짜 문자열을 형성합니다. 날짜가 실제로 존재하는지 확인합니다. 해당하는 경우 날짜 숫자를 반환하고, 그렇지 않은 경우 공백을 반환합니다.
B5:G9이전 셀의 값에 1을 더한 다음 결과를 A1 및 A2의 정보와 결합하여 날짜 문자열을 형성합니다. 날짜가 실제로 존재하는지 확인합니다. 해당하는 경우 날짜 숫자를 반환하고, 그렇지 않은 경우 공백을 반환합니다.
스크린샷
2015년 5월의 출력 예입니다.
답변2
템플릿에서 생성합니다 New Workbook
. Calendar sunday
검색 문자열.
선택하다일 면적그리고 메뉴 Manage Rules
를 누르세요 Conditional Formatting
.
추가하다New Rule
규칙 추가=TODAY()
결과:
답변3
표시된 셀에 다음 항목을 입력합니다.
A1: 2015 B1: 첫째 날 C1: =DATEVALUE(A1&"-"&A2&"-01") A2: 5 B2: 주-일요일 C2: =C1-WEEKDAY(C1;2) C4: =TEXT(COLUMNS($A$4:A4);"DD") C5: =IF(TEXT($C$2-1+COLUMNS($A$4:A4)+(ROWS($A$4:A4)-1)*7;"YYYY-MM")=TEXT($C$1; "YYYY-MM");$C$2-1+COLUMNS($A$4:A4)+(ROWS($A$4:A4)-1)*7;"")
그런 다음 C4와 C5를 복사하여 7개의 셀 너비를 채웁니다.
그 다음에는 7행의 사본을 복사하여 총 6행을 채웁니다.
마지막 6개 행의 셀을 선택하고 CTRL+ 키를 누른 다음 1왼쪽 패널에서 사용자 정의를 클릭하고 D
사용자 정의 형식에 대해 단일을 입력합니다.
결과는 다음과 같습니다:
2015 첫날 2015-05-01 2015-04-26 5주~일요일 일 월 화 수 목 금 토 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
이는 Excel, LibreOffice 및 기타 스프레드시트에서 작동할 가능성이 높습니다.
답변4
리눅스:
터미널을 열고 다음을 입력하세요.
ncal 2015
ENTER(프롬프트에서 ) 를 누르세요 $
.
출력은 다음과 같습니다.
2015
January February March April
Su 4 11 18 25 1 8 15 22 1 8 15 22 29 5 12 19 26
Mo 5 12 19 26 2 9 16 23 2 9 16 23 30 6 13 20 27
Tu 6 13 20 27 3 10 17 24 3 10 17 24 31 7 14 21 28
We 7 14 21 28 4 11 18 25 4 11 18 25 1 8 15 22 29
Th 1 8 15 22 29 5 12 19 26 5 12 19 26 2 9 16 23 30
Fr 2 9 16 23 30 6 13 20 27 6 13 20 27 3 10 17 24
Sa 3 10 17 24 31 7 14 21 28 7 14 21 28 4 11 18 25
May June July August
Su 3 10 17 24 31 7 14 21 28 5 12 19 26 2 9 16 23 30
Mo 4 11 18 25 1 8 15 22 29 6 13 20 27 3 10 17 24 31
Tu 5 12 19 26 2 9 16 23 30 7 14 21 28 4 11 18 25
We 6 13 20 27 3 10 17 24 1 8 15 22 29 5 12 19 26
Th 7 14 21 28 4 11 18 25 2 9 16 23 30 6 13 20 27
Fr 1 8 15 22 29 5 12 19 26 3 10 17 24 31 7 14 21 28
Sa 2 9 16 23 30 6 13 20 27 4 11 18 25 1 8 15 22 29
September October November December
Su 6 13 20 27 4 11 18 25 1 8 15 22 29 6 13 20 27
Mo 7 14 21 28 5 12 19 26 2 9 16 23 30 7 14 21 28
Tu 1 8 15 22 29 6 13 20 27 3 10 17 24 1 8 15 22 29
We 2 9 16 23 30 7 14 21 28 4 11 18 25 2 9 16 23 30
Th 3 10 17 24 1 8 15 22 29 5 12 19 26 3 10 17 24 31
Fr 4 11 18 25 2 9 16 23 30 6 13 20 27 4 11 18 25
Sa 5 12 19 26 3 10 17 24 31 7 14 21 28 5 12 19 26
... 현재 날짜가 "역방향 블록" 번호로 표시되어 있습니다. 텍스트로 복사하여 붙여넣으세요.
필요한 작업량은 사용하는 도구에 따라 다릅니다.
편집: Bash 쉘 프롬프트에 입력;
$ y=2015; for (( i=1 ; i<13 ; i++)) do cal $i $y ; done | sed -re 's/([^ ]+ 2015|[a-zåäö]{2}|[ 0-9]{2} )/"\1",/g' | sed -re 's/"\,[ ]*$/"/' >calendar-$y.csv
모든 스프레드시트에 로드할 수 있는 CSV 파일을 생성합니다. y=2015
달력을 만들려는 연도를 반영하도록 변경합니다 .