Lịch trong Excel với một công thức (Tất nhiên là đã nhập mảng!) - Mẹo Excel

Tạo lịch trong Excel bằng một công thức bằng cách sử dụng công thức được nhập vào mảng.

Nhìn vào hình này:

Lịch trong Excel - Tháng 12

Công thức đó =Cool, là công thức giống nhau trong mọi ô từ B5: H10! Nhìn:

Công thức lịch cơ sở

Nó được nhập vào mảng khi B5: H10 được chọn lần đầu tiên. Trong bài viết này, bạn sẽ thấy những gì đằng sau công thức.

Nhân tiện, có một ô chưa được hiển thị là tháng sẽ hiển thị. Đó là, ô J1 chứa =TODAY(), (và tôi sẽ viết điều này vào tháng 12) nhưng nếu bạn thay đổi nó thành 5/8/2012, bạn sẽ thấy:

Tháng thay đổi thành tháng 5

Đây là tháng 5 năm 2012. OK, chắc chắn là tuyệt! Bắt đầu từ đầu và làm theo cách của bạn theo công thức này trong lịch và xem nó hoạt động như thế nào.

Ngoài ra, giả sử rằng hôm nay là ngày 8 tháng 5 năm 2012.

Đầu tiên, hãy nhìn vào hình này:

Công thức mẫu

Công thức không thực sự có ý nghĩa. Nó sẽ, nếu nó được bao quanh bởi =SUM, nhưng bạn muốn xem những gì đằng sau công thức, vì vậy bạn sẽ mở rộng nó bằng cách chọn nó và nhấn phím F9.

Chọn công thức

Hình trên trở thành hình bên dưới khi nhấn phím F9.

Điều gì đằng sau công thức

Lưu ý rằng có một dấu chấm phẩy sau dấu 3 - điều này cho biết một hàng mới. Các cột mới được biểu thị bằng dấu phẩy. Vì vậy, bạn sẽ tận dụng lợi thế của nó.

Số tuần trong một tháng khác nhau, nhưng không lịch nào cần nhiều hơn sáu hàng để đại diện cho bất kỳ tháng nào và tất nhiên, tất cả chúng đều có bảy ngày. Nhìn vào hình này:

Phạm vi lịch

Nhập thủ công các giá trị từ 1 đến 42 trong B5: H10 và nếu bạn nhập =B5:H10vào một ô rồi mở rộng thanh công thức, bạn sẽ thấy những gì được hiển thị ở đây:

Mở rộng công thức trong thanh công thức

Lưu ý vị trí của các dấu chấm phẩy - sau mỗi bội số của 7 - cho biết một hàng mới. Đây là phần bắt đầu của công thức, nhưng thay vì một công thức dài như vậy, bạn có thể sử dụng công thức ngắn hơn này. Chọn B5: H10. Kiểu

=(0;1;2;3;4;5)*7+(1,2,3,4,5,6,7)

như công thức, nhưng không nhấn Enter.

Để nói với Excel đây là công thức mảng, bạn phải giữ Ctrl + Shift bằng tay trái. Trong khi giữ Ctrl + Shift, nhấn Enter bằng tay phải. Sau đó, nhả Ctrl + Shift. Đối với phần còn lại của bài viết này, tổ hợp phím này sẽ được gọi là Ctrl + Shift + Enter.

Nếu bạn đã nhấn Ctrl + Shift + Enter đúng cách, dấu ngoặc nhọn sẽ xuất hiện xung quanh công thức trong thanh công thức và các số từ 1 đến 42 sẽ xuất hiện trong B5: H10 như được hiển thị ở đây:

Dấu ngoặc nhọn xung quanh công thức

Lưu ý rằng bạn đang lấy các số từ 0 đến 5 được phân tách bằng dấu chấm phẩy (hàng mới cho mỗi số) và nhân chúng với 7, có hiệu quả là:

Mở rộng thêm - chỉ số hàng nhân với 7

Hướng dọc của các giá trị này được thêm vào hướng ngang của các giá trị từ 1 đến 7 sẽ mang lại các giá trị tương tự như được hiển thị. Việc mở rộng này giống hệt với những gì bạn đã có trước đây. Giả sử bây giờ bạn thêm TODAY vào những con số này?

Lưu ý: Việc chỉnh sửa một công thức mảng hiện có rất khó. Hãy cẩn thận, hãy làm theo các bước sau: Chọn B5: H10. Bấm vào Thanh công thức để chỉnh sửa công thức hiện có. Gõ + J1 nhưng không nhấn Enter. Để chấp nhận công thức đã chỉnh sửa, hãy nhấn Ctrl + Shift + Enter.

Kết quả của ngày 8 tháng 5 năm 2012 là:

Kết quả ngày 8 tháng 5 năm 2012

Những con số này là số sê-ri (số ngày kể từ ngày 1/1/1900). Nếu bạn định dạng những ngày này là ngày ngắn:

Phạm vi được định dạng

Rõ ràng là không đúng, nhưng bạn sẽ đạt được điều đó. Điều gì xảy ra nếu bạn định dạng chúng đơn giản là "d" cho ngày trong tháng:

Định dạng là 'ngày' của tháng

Gần giống như một tháng, nhưng không có tháng nào bắt đầu bằng ngày thứ chín của tháng. À, đây là một vấn đề. Bạn đã sử dụng J1 chứa ngày 5/8/2012 và bạn thực sự cần sử dụng ngày đầu tiên của tháng. Vì vậy, giả sử bạn đặt =DATE(YEAR(J1),MONTH(J1),1)trong J2:

Ngày đầu tiên của tháng

Ô J1 chứa 5/8/2012 và ô J2 thay đổi thành đầu tiên của tháng của bất kỳ thứ gì được nhập vào J1. Vì vậy, nếu bạn thay đổi J1 trong công thức của lịch thành J2:

Thay đổi ngày gốc thành ngày đầu tiên của tháng

Gần hơn, nhưng vẫn không đúng. Cần phải điều chỉnh thêm một lần nữa và đó là bạn cần trừ ngày trong tuần của ngày đầu tiên. Đó là, ô J3 chứa =WEEKDAY(J2). 3 đại diện cho thứ ba. Vì vậy, bây giờ nếu bạn trừ J3 khỏi công thức này, bạn nhận được:

Tăng ca các ngày trong tuần

Và điều đó thực sự đúng vào tháng 5 năm 2012!

Được rồi, Bạn đang thực sự gần gũi. Điều vẫn còn sai là ngày 29 và 30 từ tháng 4 được hiển thị trong lịch tháng 5, và ngày 1 đến ngày 9 tháng 6 cũng hiển thị. Bạn cần phải xóa những điều này.

Bạn có thể đặt tên cho công thức để dễ tham khảo hơn. Gọi nó là "Cal" (chưa "ngầu"). Xem hình này:

Tạo một công thức được đặt tên

Sau đó, bạn có thể thay đổi công thức thành đơn giản =Cal(vẫn là Ctrl + Shift + Enter):

Thay đổi công thức mảng với công thức đã đặt tên

Bây giờ bạn có thể thay đổi công thức để đọc rằng nếu kết quả ở hàng 5 và kết quả trên 20, chẳng hạn, thì kết quả đó sẽ để trống. Hàng 5 sẽ chứa tuần đầu tiên của bất kỳ tháng nào, vì vậy bạn không bao giờ được nhìn thấy bất kỳ giá trị nào trên 20 (hoặc bất kỳ số nào trên bảy sẽ bị sai - một số như 29 mà bạn thấy trong ô B5 của hình trên là của tháng trước). Vì vậy, bạn có thể sử dụng =IF(ROW()=5,IF(DAY(Cal)>20,"",Cal),Cal):

Ngày của tháng trước

Đầu tiên, hãy chú ý rằng các ô B5: D5 trống. Công thức bây giờ là "nếu đây là hàng 5, thì nếu NGÀY của kết quả là hơn 20, hãy hiển thị trống".

Bạn có thể tiếp tục loại bỏ các số thấp vào cuối - giá trị của tháng tiếp theo. Đây là cách để làm điều này một cách dễ dàng.

Chỉnh sửa công thức và chọn tham chiếu cuối cùng đến "Cal"

Ngày của tháng tiếp theo - 1

Bắt đầu nhập IF (ROW ()> 8, IF (DAY (Cal) <15, "", Cal), Cal) để thay thế Cal cuối cùng.

Ngày tháng tiếp theo - 2

Công thức cuối cùng phải là

=IF(ROW()=5,IF(DAY(Cal)>20,"",Cal),IF(ROW()>8,IF(DAY(Cal)<15,"",Cal),Cal))

Nhấn Ctrl + Shift + Enter. Kết quả sẽ là:

Kết quả-1

Hai việc còn lại để làm. Bạn có thể lấy công thức này và đặt tên cho nó, "Cool":

Đặt tên cho công thức là 'Cool'

Sau đó sử dụng nó trong công thức hiển thị ở đây:

Kết quả-2

Nhân tiện, các tên đã xác định được coi như thể chúng được nhập vào mảng.

Việc còn lại cần làm là định dạng các ô và nhập Ngày trong tuần và tên của tháng. Vì vậy, bạn mở rộng các cột, tăng chiều cao hàng, tăng kích thước phông chữ và căn chỉnh văn bản:

Định dạng phạm vi

Sau đó đặt đường viền xung quanh các ô:

Đường viền lịch

Hợp nhất và căn giữa tháng & năm và định dạng nó:

Tên tháng và năm

Sau đó, tắt đường lưới và thì đấy:

Kết quả cuối cùng - Lịch

Bài viết của khách này là từ Excel MVP Bob Umlas. Nó là từ cuốn sách, Excel Bên ngoài Hộp. Để xem các chủ đề khác trong cuốn sách, bấm vào đây.

thú vị bài viết...