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

      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
      Bài này được gửi trong diễn dàn tại: Những cách tính ra ngày đầu tháng bởi OverAC Xem bài gốc
      Góp ý 6 Góp ý
      1. bebo021999's Avatar
        bebo021999 -
        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.
      1. Lequocvan's Avatar
        Lequocvan -
        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))
      1. ptm0412's Avatar
        ptm0412 -
        Trích Nguyên văn bởi Lequocvan View Post
        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ó.
      1. bebo021999's Avatar
        bebo021999 -
        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
      1. Lê Duy Thương's Avatar
        Lê Duy Thương -
        Trích Nguyên văn bởi bebo021999 View Post
        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
      1. Ngọc Trọng's Avatar
        Ngọc Trọng -
        Trích Nguyên văn bởi Lequocvan View Post
        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))
        Em thấy đơn giản chỉ cần dùng hàm DATE là được mà?