Hàm EOMONTH: Trả Về Ngày Kết Thúc Của Tháng

Menu Tự học VBA
  • Trang chủ
  • Diễn đàn Bài viết mới Tìm chủ đề
  • Có gì mới Bài viết mới Hoạt động mới nhất
Đăng nhập Đăng ký Có gì mới? Tìm kiếm

Tìm kiếm

Everywhere Chủ đề This forum This thread Chỉ tìm trong tiêu đề Bởi: Tìm Tìm kiếm nâng cao…
  • Bài viết mới
  • Tìm chủ đề
Menu Đăng nhập Đăng ký
  • Cách upload ảnh lên diễn đàn
  • Trang chủ
  • Diễn đàn
  • Kỹ thuật xử lý Excel
  • Hàm và công thức Excel
Hàm EOMONTH: Trả về ngày kết thúc của tháng
  • Thread starter Yukino Ichikawa
  • Ngày gửi 29/4/20
Y

Yukino Ichikawa

VIP

Cấu trúc của hàm EOMONTH: EOMONTH(Ngay,SoThang) Ngay: Là ngày bắt đầu do người dùng chỉ định. Ví dụ 20/4/2019 SoThang: Là số tháng tính từ ngày bắt đầu do người dùng chỉ định. Ví dụ : 1 Như vậy 20/4/2019 được xác định là tháng 4/2019 tiếp theo 1 tháng là 5/2019, và ngày cuối cùng của tháng 5/2019 là ngày 31/5/2019. Vì vậy ta sẽ có kết quả: EOMONTH("20/4/2019",1) = 31/5/2019. Như vậy nếu muốn tìm ngày cuối cùng của tháng 4/2019 thì ở công thức trên ta sửa thành: EOMONTH("20/4/2019",0) = 30/4/2019. Một số ví dụ khác:
Trường hợpCột ACông thứcKết quả
11/8/2016​=EOMONTH(A1,1)30/9/2016​
215/8/2016​=EOMONTH(A2,2)31/10/2016​
331/8/2016​=EOMONTH(A3,3)30/11/2016​
41/8/2016​=EOMONTH(A4,-1)31/7/2016​
Ứng dụng: Ta có thể sử dụng hàm Excel này vào VBA: Ví dụ tìm ngày cuối cùng của tháng 2/2020 Mã: Sub test() Dim d As Date d = CDate(Format("12/2/2020", "dd/mm/yyyy")) 'lay ngay bat ky cua thang 2/2020 d = timngaycuoi(d) MsgBox d End Sub Function timngaycuoi(ByVal d As Date) As Date timngaycuoi = WorksheetFunction.EoMonth(d, 0) 'Chu y nhap la 0 End Function Kết quả là 29/2/2020. Sửa lần cuối: 29/4/20 P

PTHhn

Yêu THVBA như điếu đổ
Yukino Ichikawa nói: Như vậy từ 20/4/2019 tiếp theo 1 tháng là ngày 20/5/2019, và ngày cuối cùng của tháng 5/2019 là ngày 31/5/2019. Vì vậy ta sẽ có kết quả: EOMONTH("20/4/2019",1) = 31/5/2019. Nhấn để mở rộng...
Cảm ơn bạn về bài viết dễ hiểu, trình bày đẹp. Nhưng ở đoạn trên có lẽ nên hiểu lại: 20/4/2019 là tháng 4, tiếp theo 1 tháng là tháng 5, và hàm này trả về ngày cuối cùng của tháng 5. Lý do phản biện: Giả sử như bạn trình bày ở trên là đúng. Tôi lấy trường hợp đặc biệt. cells A1 = 31/1/2020/ EOMONTH(A1,1) nếu theo thuyết minh trên, tiếp theo 1 tháng sẽ rơi vào ngày 31/2/2020, nhưng vì tháng 2/2020 chỉ có 29 ngày nên khả năng rơi sang tháng 3. Như vậy ngày cuối của 3/2020 là 31/3/2020. Nhưng thực tế EOMONTH(A1,1) = 29/2/2020. Như vậy cách hiểu của tôi là đúng. Hàm này lấy tháng hiện tại của ngày mà bạn chỉ định, sau đó cộng với số tháng, ví dụ ra tháng 7 thì nó lấy ngày cuối cùng của tháng 7 đó. Y

Yukino Ichikawa

VIP

Cảm ơn @PTHhn đã Bạn cần đăng nhập để thấy link , mình đã xác nhận là đúng như bạn nói. Mình đã update bài Bạn cần đăng nhập để thấy link . tuhocvba

tuhocvba

Administrator
Thành viên BQT Theo thông tin Bạn cần đăng nhập để thấy link , thì hàm EOMONTH có thể dùng từ Office 2007 trở đi. Đối với Office 2003 thì không dùng được. Bạn cần đăng nhập để thấy đính kèm Từ ngày bất kỳ trong tháng 3, chẳng hạn là ngày 15/3, chúng ta muốn tìm ngày cuối tháng 3 (31/3), chúng ta có thể dùng hàm EOMONTH như bài viết Bạn cần đăng nhập để thấy link đã nêu. Suy nghĩ logic như thế này, ta bắt đầu ngày đầu tiên của tháng 4. d = 1/4. Bạn cần đăng nhập để thấy đính kèm d- 1 = 31/3. Mã: Sub test() Dim d As Date d = Now() d = eomonththvba(d) MsgBox d End Sub Function eomonththvba(ByVal dtemp As Date) As Date Dim y As Integer Dim m As Byte Dim d As Byte Dim d2 As Date Dim s As String y = Year(dtemp) m = Month(dtemp) d = Day(dtemp) If m = 12 Then 'Ex: 15/12/2020 => 1/1/2021 m = 1 d = 1 y = y + 1 s = CStr(d) & "/" & CStr(m) & "/" & CStr(y) 'Ex: 1/1/2021 d2 = CDate(Format(s, "dd/mm/yyyy")) eomonththvba = d2 - 1 'Ex: 31/12/2020 Else m = m + 1 d = 1 s = CStr(d) & "/" & CStr(m) & "/" & CStr(y) 'Ex: 1/9/2020 d2 = CDate(Format(s, "dd/mm/yyyy")) eomonththvba = d2 - 1 'Ex: 31/8/2020 End If End Function Đây cũng là cách nghĩ mà tôi đã dùng ở Bạn cần đăng nhập để thấy link . Cách nghĩ này dùng đúng trong mọi phiên bản office. Không chỉ là VBA, vì được viết là Function nên các bạn cũng có thể dùng như một hàm trên bảng tính Excel. Bạn cần đăng nhập để thấy đính kèm (Máy tính của tôi để là năm-tháng-ngày cho nên hiển thị ra như trên). Bạn cần đăng nhập để thấy link tôi thấy có bạn sử dụng hàm EOMONTH, nhưng nếu dùng hàm này cần nói rõ là nó chỉ dùng được từ Office 2007 trở đi. Từ "EO" là viết tắt của từ End Of. Như vậy EOMONTH nghĩa là End Of Month tức là ngày cuối cùng của tháng. Bạn phải đăng nhập hoặc đăng ký để bình luận. Chia sẻ: Facebook Twitter WhatsApp Email Link
  • Trang chủ
  • Diễn đàn
  • Kỹ thuật xử lý Excel
  • Hàm và công thức Excel
Top

Từ khóa » Cách Sử Dụng Hàm Eomonth Trong Excel 2003