Ngày kết thúc hàng tháng (Microsoft Excel)
Các công ty khác nhau xử lý khối lượng công việc của họ khác nhau. Một số công ty được ràng buộc với calendar thông thường, với “tháng làm việc” bắt đầu vào ngày đầu tiên và kết thúc vào ngày làm việc cuối cùng của tháng. Các công ty khác điều chỉnh ngày bắt đầu và ngày kết thúc hàng tháng để đáp ứng nhu cầu cụ thể cho kế toán hoặc các mục đích khác.
Bạn có thể cần phải tìm ra ngày kết thúc cụ thể của mình trong một tháng. Bằng cách sử dụng một vài hàm từ Công cụ Phân tích của Excel, bạn có thể thực hiện nhanh chóng công việc này.
Hàm chính để sử dụng là hàm WORKDAY. Chức năng này cho phép bạn xác định một ngày làm việc cụ thể trước hoặc sau ngày bắt đầu. Ví dụ: nếu bạn cần biết ngày làm việc ba ngày trước ngày hôm nay, bạn có thể sử dụng hàm theo cách sau:
=WORKDAY(TODAY(),-3)
Đối số đầu tiên cho hàm WORKDAY là hàm TODAY, cung cấp ngày hôm nay. Đối số thứ hai cho biết bạn muốn bao nhiêu ngày trước hoặc sau ngày hôm nay. Hãy nhớ rằng WORKDAY chỉ trả về các ngày làm việc thực tế, từ Thứ Hai đến Thứ Sáu. (Chà, nó trả về ngày tháng cho những ngày làm việc đó. Nó không giống như hàm WEEKDAY, trả về từ 0 đến 7 cho ngày trong tuần.) Trong trường hợp cụ thể này, nếu hôm nay là Thứ Ba, thì ba ngày làm việc trước Thứ Ba là Thứ Năm, và WORKDAY trả về ngày cho Thứ Năm đó.
Hàm tiếp theo bạn cần sử dụng là EOMONTH, trả về ngày cho cuối tháng một số tháng nhất định trước hoặc sau một ngày cụ thể. Để tìm cuối tháng hiện tại, bạn sẽ sử dụng hàm theo cách sau:
=EOMONTH(TODAY(),0)
Đối số đầu tiên cho EOMONTH là hàm TODAY, một lần nữa, cung cấp ngày hôm nay. Đối số thứ hai cho biết bao nhiêu tháng trước hoặc sau ngày đó bạn muốn vào cuối tháng. Vì đối số là 0, cách sử dụng EOMONTH này trả về ngày cuối cùng của tháng hiện tại.
Nếu bạn kết hợp WORKDAY và EOMONTH, bạn có thể xác định ngày làm việc thứ ba trước khi kết thúc tháng hiện tại, theo cách này:
=WORKDAY(EOMONTH(TODAY(),0),-3)
Nếu bạn muốn tìm ra ngày làm việc thứ ba trước khi kết thúc một tháng khác, chỉ cần thay thế hàm TODAY bằng một ngày trong tháng bạn muốn. Ví dụ: nếu ô C2 chứa một ngày và bạn muốn biết ngày làm việc thứ ba trước ngày đó cuối tháng, bạn sẽ sử dụng như sau:
=WORKDAY(EOMONTH(C2,0),-3)
Cần lưu ý rằng công thức này thực sự trả về ngày làm việc thứ ba trước ngày cuối cùng trong tháng, không phải ngày làm việc thứ ba trước ngày làm việc cuối cùng trong tháng. Tất nhiên, điều này có tác dụng khi đối phó với các tháng kết thúc vào Thứ Bảy hoặc Chủ Nhật. Nếu một tháng kết thúc vào Thứ Bảy hoặc Chủ Nhật, hàm trả về ba ngày làm việc trước ngày đó, đó sẽ là Thứ Tư. Tuy nhiên, nếu bạn muốn ngày đó ba ngày trước ngày làm việc cuối cùng (là thứ Sáu), bạn thực sự muốn thứ Ba chứ không phải thứ Tư.
Trong trường hợp này, công thức trở nên phức tạp hơn nhiều vì bây giờ bạn cần kiểm tra xem liệu cuối tháng thực sự là thứ bảy hay chủ nhật.
Một lần nữa giả sử rằng bạn đang dựa trên mọi thứ vào một ngày trong C2, bạn có thể sử dụng công thức sau:
=IF(OR(WEEKDAY(EOMONTH(C2,0))=1,WEEKDAY(EOMONTH(C2,0))=7), WORKDAY(WORKDAY(EOMONTH(C2,0),-1),-3), WORKDAY(EOMONTH(C2,0),-3))
Nếu cuối tháng ở C2 là Thứ Bảy (7) hoặc Chủ Nhật (1), thì công thức tính ngày làm việc trước đó một ngày (thứ Sáu) và sau đó tính ngày làm việc trước đó ba ngày. Nếu không, công thức thông thường tính ngày làm việc trước thứ ba sẽ được sử dụng.
Nếu bạn muốn công thức phù hợp hơn, hãy nhớ rằng WORKDAY cũng có thể bù đắp cho một số ngày nghỉ. Cách dễ nhất để cho phép ngày nghỉ là đặt ngày của một nhóm ngày lễ vào một phạm vi được đặt tên (chẳng hạn như “Ngày lễ”), sau đó thêm tham số thứ ba vào hàm WORKDAY, như được hiển thị ở đây:
=WORKDAY(EOMONTH(C2,0),-3,Holidays)
ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.
Mẹo này (3287) áp dụng cho Microsoft Excel 97, 2000, 2002 và 2003. Bạn có thể tìm thấy phiên bản của mẹo này cho giao diện ribbon của Excel (Excel 2007 trở lên) tại đây: