Hàm DATEDIFF là hàm gì? Công dụng của hàm DATEDIFF trong VBA Excel

Trần Linh Chi
Trần Linh Chi
Jun 24 2021

Hàm DATEDIFF là một trong những hàm thời gian thường gặp trong Excel, được sử dụng để tính khoảng cách giữa 2 mốc thời gian. Ngoài ra, cũng có một hàm với chức năng tương tự hàm DATEIF, đó là hàm DATEDIFF trong VBA. Rất dễ bị nhầm lẫn 2 hàm này với nhau vì chức năng và tên gọi tương đối giống nhau. Trong bài viết này, Gitiho sẽ giới thiệu tới bạn hàm DATEDIFF trong VBA, cú pháp và ứng dụng của hàm DATEDIFF trong VBA Excel.

Tuyệt đỉnh VBA - Viết Code trong tầm tay

Hàm DATEDIFF trong VBA

Cú pháp hàm DATEDIFF trong VBA

Hàm DATEDIFF trong VBA được viết như sau:

=DATEDIFF(interver, date 1, date 2, [first_day_of_week], [first_week_of_year])

Trong đó:

  • Interval: Là đại lượng tính để tính khoảng thời gian cần tìm (Ngày, tháng, năm, quý, giờ, phút...). Các đại lượng này khi dùng trong công thức của hàm DATEDIFF tronG VBA được biểu diễn bằng cách ký hiệu như sau:
    • yyyy: Số năm - y: Số ngày trong năm
    • q: Qúy
    • m: Số tháng
    • ww: Số tuần - w: Ngày trong tuần (thứ mấy)
    • d: Số ngày
    • h: Số giờ
    • n: Số phút
    • s: Số giây
  • Date 1, date 2: Mốc thời gian cần xét
  • First_day_of_week (Tham số tùy chọn, không bắt buộc phải có): Tham số sử dụng để thiết lập ngày đầu tuần là thứ mấy. Nếu bỏ qua tham số này, không điền thì VBA sẽ mặc định ngày đầu tiên của tuần là Chủ nhật. Các giá trị có thể sử dụng cho tham số này trong công thức hàm DATEDIFF trong VBA:
    • 0 = vbUseSystemDayOfWeek – Sử dụng cài đặt API hỗ trợ ngôn ngữ quốc gia (NLS).
    • 1 = vbSunday – Sunday
    • 2 = vbMonday – Monday
    • 3 = vbTuesday – Tuesday
    • 4 = vbWednesday – Wednesday
    • 5 = vbThursday – Thursday
    • 6 = vbFriday – Friday
    • 7 = vbSaturday – Saturday

    Xem thêm: Giới thiệu cách sử dụng Autofilter giữa các khoảng thời gian trong VBA

    • First_week_of_year (Tham số tùy chọn, không bắt buộc phải có): Tham số sử dụng để thiết lập tuần đầy tiên của năm là tuần chứa ngày nào. Nếu bỏ qua tham số này, không điền thì VBA sẽ mặc định tuần đầu tiên của năm là tuần chứa ngày mùng 1 tháng 1.  Nếu muốn sử dụng tham số này trong hàm DATEDIFF trong VBA, bạn có thể sử dụng những giá trị dưới đây:
      • 0 = vbUseSystem – Sử dụng cài đặt API hỗ trợ ngôn ngữ quốc gia (NLS).
      • 1 = vbFirstJan1 – Tuần đầu tiên là tuần chứa ngày mùng 1 tháng 1 (Mặc định)
      • 2 = vbFirstFourDays – Tuần đầu tiên là tuần có ít nhất 4 ngày thuộc năm mới
      • 3 = vbFirstFullWeek – Tuần đầu tiên là tuần đầu tiênđầy đủ ngày thuộc năm mới
    • Hàm DATEDIFF trong VBA sẽ trả về kết quả là 1 con số

    Xem thêm: Hướng dẫn cách gọi Sub trong VBA qua các ví dụ

    Ví dụ

    Ta sử dụng hàm DATEDIFF trong VBA như sau:

    Private Sub Constant_demo_Click()
    Dim fromDate as Variant
    fromDate = "01-Jan-09 00:00:00"
    Dim toDate as Variant
    toDate = "01-Jan-10 23:59:00"
    msgbox("Line 1 : " &DateDiff("yyyy",fromDate,toDate))
    msgbox("Line 2 : " &DateDiff("q",fromDate,toDate))
    msgbox("Line 3 : " &DateDiff("m",fromDate,toDate))
    msgbox("Line 4 : " &DateDiff("y",fromDate,toDate))
    msgbox("Line 5 : " &DateDiff("d",fromDate,toDate))
    msgbox("Line 6 : " &DateDiff("w",fromDate,toDate))
    msgbox("Line 7 : " &DateDiff("ww",fromDate,toDate))
    msgbox("Line 8 : " &DateDiff("h",fromDate,toDate))
    msgbox("Line 9 : " &DateDiff("n",fromDate,toDate))
    msgbox("Line 10 : "&DateDiff("s",fromDate,toDate))
    End Sub

    Kết quả trả về:

    Line 1 : 1
    Line 2 : 4
    Line 3 : 12
    Line 4 : 365
    Line 5 : 365
    Line 6 : 52
    Line 7 : 52
    Line 8 : 8783
    Line 9 : 527039
    Line 10 : 31622340

    Ví dụ về ứng dụng của hàm DATEDIFF trong VBA

    Ví dụ 1: Sử dụng hàm DATEDIFF trong VBA để tính khoảng cách giữa 2 thời điểm (theo số năm)

    Cho 2 mốc thời gian là 22/11/2003 và 22/11/2013. Tính số năm giữa 2 mốc thời gian này. Ta sẽ có công thức như sau:

    =DATEDIFF("yyyy", "22/11/2003", "22/11/2013")


    Trong đó:

    • yyyy: Là ký hiệu đại diện cho số năm
    • 22/11/2003 và 22/11/2013 lần lượt là Date 1, Date 2 trong cú pháp hàm DATEDIFF trong VBA
    • Kết quả trả về là 10.

    Ví dụ 2: Sử dụng hàm DATEDIFF trong VBA để tính khoảng cách giữa 2 thời điểm (theo số tháng)

    Cho 2 mốc thời gian là 22/11/2016 và 15/09/2018. Tính số tháng giữa 2 mốc thời gian này. Ta có sub như sau:

    Sub DADEDIFF_Test_02()

    Range("A2"). Value = DATEDIFF("m", "22/11/2016", "15/09/2018")

    End Sub

    Kết quả trả về giá trị ô tại A2 đã được gắn là 22.

    Cách viết hàm tự tạo dựa trên hàm DATEDIFF trong VBA

    Chúng ta có thể dễ dàng tạo ra thêm hàm tự tạo theo ý muốn để phục vụ cho việc tính khoảng cách giữa 2 mốc thời gian được nhanh chóng và tiện lợi hơn bằng cách viết Function trong VBA dựa trên công thức hàm DATEDIFF trong VBA

    Ví dụ, muốn viết hàm xác định khoảng cách số ngày giữa 2 mốc thời gian, ta sẽ viết Function sau đây vào 1 Module của VBA:

    Function KhoangCachNgay (NgayBD as Date, NgayKT as Date) as Long

    KhoangCachNgay = DATEDIFF("d", NgayBD, NgayKT)

    End Function

    Xem thêm: Làm thế nào chèn code vào module trong VBA Excel

    Tổng kết

    Như vậy, trong bài viết trên, Gitiho đã giới thiệu tới bạn một hàm vừa lạ vừa quen trong VBA Excel - Hàm DATEDIFF trong VBA. Việc áp dụng hàm DATEDIFF trong VBA làm cho việc tính khoảng cách giữa 2 mốc thời gian trở nên nhanh chóng và tiện lợi hơn rất nhiều đó! 

    Sử dụng VBA trong Excel giúp cho quá trình làm việc với bảng tính Excel trở nên đơn giản và nhanh chóng hơn rất là nhiều, kể cả những tệp Excel với rất nhiều bảng tính và nhiều dữ liệu. Để tìm hiểu công cụ cực kì hữu ích này, hãy tham gia khóa học Tuyệt đỉnh VBA - Viết Code trong tầm tay để làm quen  với VBA từ A tới Z và ứng dụng thành thạo VBA vào Excel nhé!

    Tài liệu kèm theo bài viết

    0/5 - (0 bình chọn)

    0/5 - (0 bình chọn)

    Bài viết liên quan

    Cách ứng dụng hàm INT và MOD cho lễ tân và các công việc khác

    Cách ứng dụng hàm INT và MOD cho lễ tân và các công việc khác

    Hướng dẫn cách tách địa chỉ ra khỏi chuỗi

    Hướng dẫn cách tách địa chỉ ra khỏi chuỗi

    CÁCH TÍNH ĐIỂM TRUNG BÌNH VÀ XẾP LOẠI TRONG EXCEL (KÈM BÀI TẬP)

    CÁCH TÍNH ĐIỂM TRUNG BÌNH VÀ XẾP LOẠI TRONG EXCEL (KÈM BÀI TẬP)

    Hướng dẫn kiểm tra giá trị trùng lặp cực đơn giản trên Excel 2010, 2013, 2016, 2019

    Hướng dẫn kiểm tra giá trị trùng lặp cực đơn giản trên Excel 2010, 2013, 2016, 2019

    Cách cộng, trừ ngày tháng năm trong Excel để tính số ngày siêu nhanh cho kế toán

    Cách cộng, trừ ngày tháng năm trong Excel để tính số ngày siêu nhanh cho kế toán

    Hướng dẫn 4 cách bôi đen trong Excel đơn giản và nhanh chóng

    Hướng dẫn 4 cách bôi đen trong Excel đơn giản và nhanh chóng

    @ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
    Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội