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

Nội dung được viết bởi Trần Linh Chi

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.

Thành thạo hàm DATEDIFF với Tuyệt đỉnh VBA

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 – Saturda

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")
Hàm DATEDIFF là hàm gì? Công dụng của hàm DATEDIFF trong VBA Excel

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

Hàm DATEDIFF là hàm gì? Công dụng của hàm DATEDIFF 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ài liệu kèm theo bài viết

KHÓA HỌC EXCEL ONLINE HOÀN TOÀN MIỄN PHÍ

Khóa học với hơn 14000 HỌC VIÊN đang học và đánh giá trung bình 4.76 SAO

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

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

0 thảo luận

@ 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
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông