Dan đang thiết lập một trang tính để sử dụng trong công ty của mình và cần một cách để tính ngày làm việc đầu tiên của calendar tháng. Anh ta biết cách tính ngày đầu tiên của một tháng, nhưng ngày đó có thể rơi vào cuối tuần hoặc ngày lễ.

Có một số cách bạn có thể tính ngày trong tuần đầu tiên của một tháng nhất định. Công thức sau là một nơi tốt để bắt đầu:

=DATE(YEAR(A1),MONTH(A1),1)+CHOOSE(WEEKDAY(DATE(YEAR(A1),MONTH(A1),1)),1,0,0,0,0,0,2)

Công thức này giả định rằng bạn muốn ngày đầu tiên trong tuần của tháng bất kỳ ngày nào nằm trong ô A1. Do đó, nếu ngày trong ô A1 là ngày 26 tháng 3 năm 2011, công thức giả sử bạn muốn ngày trong tuần đầu tiên cho tháng 3 năm 2011.

Nếu bạn đã cài đặt Analysis ToolPak trên hệ thống của mình, thì công thức trở nên đơn giản hơn nhiều:

=WORKDAY(EOMONTH(A1,-1), 1)

Hàm EOMONTH trả về ngày cuối cùng của tháng trước ngày trong ô A1, sau đó hàm WORKDAY trả về ngày trong tuần đầu tiên trong tháng tiếp theo. Hàm được đặt cùng nhau như thế này (sử dụng EOMONTH) vì hàm WORKDAY hơi kỳ quặc; nó giả định rằng tham số đầu tiên là một ngày làm việc hợp lệ. Điều này có nghĩa là nó không kiểm tra xem ngày được sử dụng trong tham số có rơi vào tuần làm việc từ thứ Hai đến thứ Sáu hay không. Bằng cách buộc tham số phải là một ngày trước tháng mà bạn muốn xác định ngày làm việc đầu tiên và đặt tham số thứ hai thành 1, hàm trả về ngày trong tuần thực tế đầu tiên cho tháng mong muốn.

Hàm WORKDAY cũng cho phép bạn tùy chọn chỉ định rằng các ngày lễ nên được tính đến. Cách dễ nhất để làm điều này là thiết lập danh sách các ngày lễ, trong một phạm vi ô, sau đó đặt tên cho phạm vi đó. (Cách bạn đặt tên cho một dải ô sẽ được thảo luận trong các vấn đề khác của ExcelTips.) Nếu bạn đặt tên cho dải ô như MyHolidays, thì bạn có thể sử dụng phiên bản sau của công thức:

=WORKDAY(EOMONTH(A1,-1), 1, MyHolidays)

Đây là một mẹo nhỏ nếu bạn muốn tính ngày làm việc bắt đầu cho bất kỳ tháng nhất định nào trong năm. Giả sử rằng ô A1 chứa một năm, chẳng hạn như 2011 và ô A2 chứa một số tháng, từ 1 đến 12, đại diện cho tháng mà bạn muốn bắt đầu ngày làm việc. Sau đó, bạn có thể sử dụng công thức này để có được ngày mong muốn:

=WORKDAY(DATE(A1,1,0), A2, MyHolidays)

Cách hàm DATE được sử dụng trong công thức này trả về ngày cuối cùng của năm trước năm được chỉ định trong ô A1. Sau đó, giá trị trong A2 được sử dụng để chuyển tiếp số tháng đó và MyHolidays (như trước đây) tính cho bất kỳ ngày nghỉ nào có thể xảy ra trong tháng đó.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (10199) á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: