Những cách tính ra ngày đầu tháng

Liên hệ QC

OverAC

Đỗ Nguyên Bình
Thành viên BQT
Administrator
Tham gia
30/5/06
Bài viết
2,684
Được thích
15,007
t6MzuOhjIT-uC7l_0qit7l8WMScwl2d7nxB7f0QClYEyJxXT_M3kbZ51d_WmzPo7l84enrVAkMTbRxVg64iqr8EgfrArXZpLdj02zpAN7jTdpR9shswdsXrNp_p-eXzvurpM_UOgEt508Vic_8EMhcAS97UFv4Zd-dGvDwoy6zi2kVO1kQSAuAHZO3F6iojoy8h3rXrHk5HfMKnn3tdSIbixRPNArAi1_xG0sd9ZiKv8Z9G5hye0EI1x8S_GyTLomFPF5Li_GKdI2vZx722oAfei9r_DSY-WNOdYc37Rkibb4cf8KCSP8dlPdXvZiP8UEU0A5VcQote1XKbXO1be7yANoN0tVGd2f3I5lVlk3vhSE_v2eaZDpUhn77m2UgYT2xfXfBf5Kv58Nhj4Ul1PaO3Bl73osx-WCM2twoILrhDzhkBc4NcsFAM93Z-Ke_Ni4TH_SFn9Z_7yXSds798nbvL853fNbirZcXpX5NH2MfjW0HB7tluUH67NGxJ7mHM3VM0_EWDNfgWkXyNOQ47hLUvafZ6S-FmPk4VaSEaX0aVQU5L11A1pNU7dIow_Gl0S_hfjGJw_3HHGQmqwF4LLDa_lufeqxTIZ1EGbiGwNcQ=w600-h289-no
Công thức lấy ngày đầu tháng.
Kể từ Excel 2007 trở đi, Microsoft đã đưa ra hàm lấy ngày cuối tháng khá tiện lợi (hàm EOMONTH - End of Month). Thế nhưng MS lại không đưa ra ngày đầu vậy nên chúng ta phải vận dụng một số thủ thuật hàm nhỏ nhỏ để lấy ngày đầu tháng.

1. Phức tạp nhất là dùng hàm MONTH và YEAR để lấy ra từng phần dùng hàm DATE của ngày rồi gộp lại:

=DATE(YEAR(A1),MONTH(A1),1)

2. Cách 2 dùng hàm cuối tháng (EOMONTH) của Excel 2007 và phiên bản mới hơn, lấy ngày cuối tháng trước sau lại thêm 1 ngày. Hàm EOMONTH có đối số thứ 2 là ‘months’ chỉ số tháng, thường thì mình giá trị 0 để lấy kết quả cuối tháng của ngày tham chiếu. Nhưng trong trường hợp mình dùng đối số months = -1 sẽ cho ra kết quả là ngày cuối tháng kề trước ngày tham chiếu, Sau đó cộng 1 sẽ cho ra ngày đầu tháng của ngày tham chiếu.
=EOMONTH(A1,-1)+1

3. Chuyển thành text rồi quay lại số bằng phép cộng. Cách này lợi dụng cơ chế tự động chuyển đổi từ text sang số khi thực hiện phép tính kết hợp với hàm TEXT để chuyển ngày tham chiếu sang dạng không có ngày.
=TEXT(A1,"mm-yyyy")+0

4. Cách cuối cùng theo mình là cách đơn giản nhất, lấy ngày đầy đủ trừ đi phần ngày trong tháng sẽ ra ngày 0. tất nhiên là không có ngày 0, mà excel sẽ cho mình ngày cuối tháng trước, + 1 sẽ ra ngày đầu tháng này.
=A1-DAY(A1)+1

Có thể có nhiều cách khác để lấy ngày đầu tháng, dù sao đây cũng là vấn đề đơn giản, nhưng xem qua các cách mà mình sưu tầm được. Thấy hay hay.
Ai có cách gì hay chia sẻ mình sẽ tập hơp và đây luôn nhé.
OverAC
 

File đính kèm

  • Ngay dau thang.JPG
    Ngay dau thang.JPG
    46 KB · Đọc: 85
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Khá đầy đủ cho ngày đầu tháng.

Bổ sung thêm công thức tính "ngày đến tháng":

=EDATE(A1,1)

trả về ngày này tháng sau.
 
Dạ các Bác quả là thâm sâu, em cũng góp tý về "ngày này năm sau" mà em sưu tầm được ah:
=EOMONTH(A1,12)-(DAY(EOMONTH(A1,0))-DAY(A1))
 
Dạ các Bác quả là thâm sâu, em cũng góp tý về "ngày này năm sau" mà em sưu tầm được ah:
=EOMONTH(A1,12)-(DAY(EOMONTH(A1,0))-DAY(A1))

Sao không phải là EDATE(A1,12)

Bổ sung:
Hai hàm EDATE và EOMONTH đã có từ Excel 2002 và 2003, trong bộ hàm của Add-in Analysis Toolpak, chứ không phải đến 2007 mới có.
 
Lưu ý: Cẩn thận với khái niệm "ngày này năm sau" đối với năm nhuận: :=\+
Nếu ngày sinh là 29/2/2016, ngày này năm sau, sinh nhật là ngày nào? Hàm EDATE sẽ trả về ngày có nghĩa 28/2/2017. Trong khi có quan niệm là ai sinh vào 29/2 năm nhuận thì 4 năm mới có sinh nhật.
60 tuổi mới tồ chức sinh nhật lần thứ 15 +-+-+-+
 
Lưu ý: Cẩn thận với khái niệm "ngày này năm sau" đối với năm nhuận: :=\+
Nếu ngày sinh là 29/2/2016, ngày này năm sau, sinh nhật là ngày nào? Hàm EDATE sẽ trả về ngày có nghĩa 28/2/2017. Trong khi có quan niệm là ai sinh vào 29/2 năm nhuận thì 4 năm mới có sinh nhật.
60 tuổi mới tồ chức sinh nhật lần thứ 15 +-+-+-+
Công thức làm vậy Nhưng hầu hết Ai sinh ngày 28 tháng 2 hoặc 29 tháng 2 khi đều là ngày 28 tháng 2 cả. Vì không ai muốn 4 năm mới sinh nhật một lần
Kha kha
 
Web KT
Back
Top Bottom