Lịch excel hàng tháng năng động


2

Tôi muốn tạo lịch hàng tháng (1 tháng trên mỗi tờ) trong đó chỉ có năm có thể thay đổi (và vì vậy ngày). Mẫu lịch của tôi đã được tạo. Tất cả những gì tôi muốn là thêm một công thức thay đổi ngày theo ngày trong tuần khi tôi thay đổi năm. Tuần bắt đầu vào chủ nhật

Cảm ơn !


2
Một bản sao hoặc ảnh chụp màn hình của mẫu của bạn sẽ hữu ích. Cũng mô tả bất kỳ công thức hiện có và bất cứ điều gì bạn đã thử. Có vẻ như điều này nên được thực hiện, nhưng sẽ rất khó khăn. Có bất kỳ lý do cụ thể nào mà điều này cần phải có trong Excel không, và không phải là một ứng dụng khác được thiết kế đặc biệt hơn để xử lý lịch?
Iszi

Câu trả lời:


2

Đây là những gì tôi nghĩ ra. Điều chỉnh hướng dẫn khi cần thiết để phù hợp với mẫu của riêng bạn.


Hướng dẫn

  1. Đặt A1 thành giá trị của năm cho tháng bạn muốn đại diện.
    • Đối với ngày sửa đổi đầu tiên của bài đăng này, nó sẽ là "2015".
  2. Đặt A2 thành tên đầy đủ của tháng bạn muốn đại diện.
    • Đối với ngày sửa đổi đầu tiên của bài đăng này, nó sẽ là "Tháng năm".
  3. Điền vào A3: G3 với các ngày trong tuần, bắt đầu bằng "Chủ nhật" trong A3 và kết thúc bằng "Thứ bảy" trong G3.
  4. Đặt công thức sau vào A4: =IF(WEEKDAY(DATEVALUE(CONCATENATE($A$2," 1, ",$A$1)))=1,1,"")
    • Tùy thuộc vào Tháng / Năm, công thức này có thể trả về giá trị trống tại đây. (Nó sẽ cho tháng 5 năm 2015.) Điều này là bình thường.
  5. Đặt công thức sau vào B4: =IF(A4="",IF(WEEKDAY(DATEVALUE(CONCATENATE($A$2," 1, ",$A$1)))=COLUMNS($A$4:B4),1,""),A4+1)
    • Tùy thuộc vào Tháng / Năm, công thức này có thể trả về giá trị trống tại đây. (Nó sẽ cho tháng 5 năm 2015.) Điều này là bình thường.
  6. Sao chép công thức từ B4 qua các ô C4: G4. Excel sẽ tự động điều chỉnh các tham chiếu ô trong công thức khi cần.
    • Tại thời điểm này, công thức sẽ ước tính là "1" trong một trong các ô ở hàng 4 và mỗi ô sau đó sẽ trả về mức tăng cao hơn ô trước đó. Các ô trước "1" phải trống. Vào tháng 5 năm 2015, bạn sẽ thấy các khoảng trống trong A4: E4, "1" trong F4 (Thứ Sáu) và "2" trong G4 (Thứ Bảy) .
  7. Đặt công thức sau vào A5: =IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",G4+1,", ",$A$1))),"",G4+1)
    • Kết quả công thức phải cao hơn giá trị của G4.
  8. Sao chép công thức trong A5 xuống các ô A6: A9. Excel sẽ tự động điều chỉnh các tham chiếu ô trong công thức khi cần.
    • A6: A9 sẽ đánh giá khoảng trống ngay bây giờ. Đó là bình thường.
  9. Đặt công thức sau vào B5: =IF(ISERROR(DATEVALUE(CONCATENATE($A$2," ",A5+1,", ",$A$1))),"",A5+1)
    • Kết quả công thức phải cao hơn giá trị của A5.
  10. Sao chép công thức trong B5 qua các ô C5: G5. Excel sẽ tự động điều chỉnh các tham chiếu ô trong công thức khi cần.
    • Các công thức trong hàng 5 bây giờ sẽ ước tính thành một tập hợp các số tăng dần từ cột A đến cột G.
  11. Chọn B5: G5 và sao chép các ô đó xuống qua B6: G9. Excel sẽ tự động điều chỉnh các tham chiếu ô trong công thức khi cần.
    • Tại thời điểm này, lịch nên được điền thích hợp cho tháng nhất định. Các tế bào trước ngày đầu tiên của tháng và sau ngày cuối cùng của tháng nên để trống.
    • Trong một số tháng nhất định, chẳng hạn như tháng 1 năm 2015, Hàng 9 sẽ hoàn toàn trống. Điều này là bình thường.

Chức năng

  • CONCATENATE kết hợp các chuỗi văn bản với nhau.
  • DATEVALUE trả về giá trị "số sê-ri" Excel cho ngày được biểu thị bằng chuỗi văn bản. Nó sẽ trả về lỗi nếu chuỗi không khớp với định dạng ngày đã biết hoặc nếu chuỗi không đại diện cho ngày thực tế (ví dụ: "ngày 32 tháng 1 năm 2015" hoặc "ngày 29 tháng 2 năm 2015").
  • TUẦN trả về một giá trị, từ 1 đến 7, đại diện cho ngày trong tuần của một ngày nhất định.
  • COLUMNS trả về số lượng cột được kéo dài bởi một mảng ô được chỉ định.
  • IF cho phép bạn trả về một giá trị đã chọn (hoặc kết quả công thức) dựa trên việc một công thức được chỉ định có đánh giá thành TRUE hoặc FALSE hay không.
  • ISERROR trả về ĐÚNG nếu công thức đã cho dẫn đến lỗi hoặc SAI nếu công thức không tạo ra lỗi.

Giải thích công thức

  • A4 tập hợp thông tin từ A1 và A2 để tạo chuỗi văn bản đại diện cho ngày đầu tiên của tháng. (ví dụ: "ngày 1 tháng 5 năm 2015".) Sau đó, nó sẽ kiểm tra xem liệu ngày trong tuần của ngày đó có phải là Chủ nhật không. Trả về 1 nếu là chủ nhật, trống nếu không.

  • B4: G4 kiểm tra ô trước để xem nó có trống không. Nếu không, trả về một giá trị cao hơn ô trước đó. Nếu ô trước đó trống, kiểm tra xem liệu ngày trong tuần hiện tại có khớp với ngày đầu tiên của tháng đã cho hay không - trả về 1 nếu có, để trống nếu không.

  • A5: A9 thêm 1 vào giá trị từ cuối hàng trước, sau đó kết hợp kết quả với thông tin từ A1 và A2 để tạo thành chuỗi ngày. Kiểm tra xem ngày thực sự tồn tại. Trả về số ngày trong tháng nếu có, để trống nếu không.

  • B5: G9 thêm 1 vào giá trị từ ô trước, sau đó kết hợp kết quả với thông tin từ A1 và A2 để tạo thành chuỗi ngày. Kiểm tra xem ngày thực sự tồn tại. Trả về số ngày trong tháng nếu có, để trống nếu không.


Ảnh chụp màn hình

Ví dụ đầu ra cho tháng 5 năm 2015.

nhập mô tả hình ảnh ở đây


0

Tạo New Workbooktừ mẫu. Calendar sundaychuỗi tìm kiếm.

Chuỗi tìm kiếm "Lịch chủ nhật"

Chọn khu vực ngày và nhấn Manage Rulestrong Conditional Formattingmenu.

chỉnh sửa menu quy tắc định dạng Excel

Thêm vào New Rule

Hộp thoại định dạng quy tắc Excel

Thêm quy tắc bằng =TODAY()

Excell thêm quy tắc định dạng bằng "= TODAY ()"

Kết quả:

Quy tắc định dạng Excel Kết quả lịch


Ok, đó là gian lận. :-P
Iszi

Tôi thích sự đơn giản cho các thao tác từ đầu nhưng OP đã có sẵn một mẫu. Nếu họ có thể thay đổi nó, thì đây là cách để đi. Nếu không, họ sẽ cần một cách tiếp cận công thức.
Kỹ sư Toast

@EngineerToast Tất cả có thể thấy công thức tại mẫu công khai.
STTR

0

Nhập các mục này vào các ô được chỉ định:

A1: 2015 B1: Ngày đầu tiên C1: = DATEVALUE (A1 & "-" & A2 & "- 01")
A2: 5 B2: Tuần-Chủ nhật C2: = C1-TUẦN (C1; 2)

C4: = TEXT (CỘT ($ A $ 4: A4); "Ddd")
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 + MÀU SẮC ($ A $ 4: A4) + (ROWS ($ A $ 4: A4) -1) * 7; "")

Sau đó sao chép C4 và C5 để lấp đầy bảy (7) chiều rộng ô.
Tiếp theo là một bản sao của hàng 7 để điền tổng cộng sáu (6) hàng.
Chọn các ô trong 6 hàng cuối cùng này và nhấn CTRL+ 1, nhấp vào Tùy chỉnh trên bảng điều khiển bên trái và nhập một ô Dcho định dạng tùy chỉnh.

Kết quả sẽ như thế này:

2015 Ngày đầu tiên 2015-05-01              
5 tuần-Chủ nhật 2015-04-26              

Chủ nhật thứ Hai thứ Ba thứ Tư thứ Năm thứ Sáu thứ Bảy
                    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                      

Điều này sẽ hoạt động trong Excel, LibreOffice và rất có thể là bất kỳ bảng tính nào khác.


-1

Linux:

Mở một thiết bị đầu cuối, sau đó gõ:

ncal 2015và nhấn ENTER(tại $dấu nhắc).

Đầu ra sẽ như sau:

                                  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      

... với ngày hiện tại được đánh dấu bằng số "khối đảo ngược". Sao chép và dán dưới dạng văn bản.
Số lượng công việc cần thiết phụ thuộc vào công cụ bạn sử dụng.


chỉnh sửa: Nhập vào dấu nhắc shell 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

Tạo tệp CSV có thể được tải vào bất kỳ Bảng tính nào. thay đổi y=2015để phản ánh năm mà bạn muốn tạo lịch.


for (( i=1 ; i<13 ; i++)) do cal $i 2015 ; donetạo một danh sách các tháng thay vì bảng trên. man calđể có thêm lựa chọn.
Hannu

Đẹp, nhưng câu hỏi khá đặc biệt về Excel. Điều đó có nghĩa là hai điều: 1. Rất có thể, người hỏi có một số yêu cầu cụ thể để làm việc trong Excel hoặc thoải mái nhất khi sử dụng công cụ đó. 2. Người hỏi có lẽ đang ở trên một hệ thống Windows - có thể là Mac. Chắc chắn không phải là Linux.
Iszi

Đối với những gì nó có giá trị: "Excel" đối với một số người giống như "Bảng tính" và tồn tại một số biến thể của điều đó.
Hannu

Đủ công bằng. Nhưng hầu hết mọi người đều nghĩ "Máy tính" == "Windows PC". ;-)
Iszi

=) phụ thuộc vào người bạn đời của bạn.
Hannu
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.