Cách Tính Khoảng Cách Ngày Trong Excel: Hướng Dẫn Chi Tiết Từ Cơ Bản Đến Nâng Cao

Giới thiệu chung

Excel là một trong những công cụ xử lý dữ liệu mạnh mẽ và phổ biến nhất hiện nay. Dù bạn là nhân viên kế toán, nhà quản lý dự án, giáo viên hay nhà nghiên cứu, việc tính khoảng cách ngày (số ngày giữa hai ngày) là một nhu cầu thường gặp. Việc thực hiện tính toán này trong Excel không chỉ giúp tiết kiệm thời gian mà còn giảm thiểu sai sót do tính toán thủ công. Bài viết này sẽ cung cấp cho bạn toàn bộ kiến thức cần thiết để calculate date difference in Excel – tính khoảng cách ngày trong Excel – từ các hàm cơ bản đến các kỹ thuật nâng cao, kèm theo ví dụ thực tế và mẹo tối ưu hoá.

1. Kiến Thức Cơ Bản Về Ngày Tháng Trong Excel

1.1. Định Dạng Ngày trong Excel

  • Ngày là một số nguyên: Excel lưu trữ ngày dưới dạng số nguyên, trong đó ngày 1/1/1900 tương ứng với giá trị 1, ngày 2/1/1900 là 2, ….
  • Thời gian là phần thập phân: Ví dụ, 12:00 PM (trưa) sẽ là 0.5, vì nó chiếm một nửa ngày.
  • Kết hợp ngày và thời gian: 1/1/2026 06:30 AM sẽ là 45219,27 (45219 là số ngày từ 1/1/1900, 0.27 là phần thời gian).

Lưu ý: Khi nhập ngày vào Excel, hãy chắc chắn rằng ô đã được định dạng là “Date” (Ngày) để Excel nhận dạng đúng.

1.2. Các Định Dạng Ngày Thông Dụng

Định dạngVí dụMô tả
dd/mm/yyyy25/04/2026Ngày/Tháng/Năm (phổ biến ở Việt Nam)
mm/dd/yyyy04/25/2026Tháng/Ngày/Năm (phổ biến ở Mỹ)
yyyy-mm-dd2026-04-25Định dạng chuẩn ISO 8601, thuận tiện cho sắp xếp
dd-mmm-yy25-Apr-24Ngày, tháng viết tắt, năm 2 chữ số

Bạn có thể thay đổi định dạng ngày bằng cách Right-click → Format Cells → Number → Date và chọn kiểu mong muốn.

2. Các Hàm Cơ Bản Để Tính Khoảng Cách Ngày

2.1. Hàm DATEDIF

DATEDIF (Date Difference) là hàm không được liệt kê trong danh sách hàm của Excel, nhưng vẫn hoạt động mạnh mẽ để tính khoảng cách giữa hai ngày.

Cú pháp:

DATEDIF(start_date, end_date, unit)
  • start_date: Ngày bắt đầu.
  • end_date: Ngày kết thúc.
  • unit: Đơn vị tính (y, m, d, ym, yd, md).

Các giá trị unit thường dùng:

UnitÝ nghĩa
"y"Số năm đầy đủ
"m"Số tháng đầy đủ
"d"Số ngày
"ym"Sự chênh lệch tháng không tính năm
"yd"Sự chênh lệch ngày không tính năm
"md"Sự chênh lệch ngày không tính tháng và năm

Ví dụ:

ABCông thứcKết quả
01/01/202615/04/2026=DATEDIF(A2, B2, "d")469
01/01/202615/04/2026=DATEDIF(A2, B2, "m")15
01/01/202615/04/2026=DATEDIF(A2, B2, "y")1
01/01/202615/04/2026=DATEDIF(A2, B2, "ym")3
01/01/202615/04/2026=DATEDIF(A2, B2, "md")14

Lưu ý: DATEDIF không cho phép end_date nhỏ hơn start_date. Nếu xảy ra, hàm sẽ trả về lỗi #NUM!.

2.2. Hàm NETWORKDAYS

NETWORKDAYS tính số ngày làm việc (từ thứ Hai đến thứ Sáu) giữa hai ngày, loại trừ cuối tuần và (tùy chọn) các ngày lễ.

Cú pháp:

NETWORKDAYS(start_date, end_date, holidays)
  • holidays là một dải ô chứa các ngày lễ (có thể để trống).

Ví dụ:

ABC (Ngày lễ)Công thứcKết quả
01/04/202630/04/202605/04/2026; 30/04/2026=NETWORKDAYS(A2, B2, C2:C3)20

Trong ví dụ trên, Excel tính 20 ngày làm việc, bỏ qua các ngày cuối tuần và hai ngày lễ.

2.3. Hàm NETWORKDAYS.INTL

Phiên bản nâng cao của NETWORKDAYS, cho phép bạn tùy chỉnh ngày cuối tuần.

Cú pháp:

NETWORKDAYS.INTL(start_date, end_date, weekend, holidays)
  • weekend là một chuỗi 7 ký tự (1 = cuối tuần, 0 = ngày làm việc). Ví dụ "0000011" nghĩa là chỉ nghỉ Thứ Bảy và Chủ Nhật.
  • holidays tương tự như NETWORKDAYS.

Ví dụ:

ABCông thứcKết quả
01/04/202630/04/2026=NETWORKDAYS.INTL(A2,B2,"0000011")21

Ở đây, Excel tính 21 ngày làm việc khi chỉ nghỉ cuối tuần truyền thống.

2.4. Hàm WORKDAY và WORKDAY.INTL

Hai hàm này không tính khoảng cách mà tính ngày làm việc tiếp theo sau một số ngày làm việc nhất định.

  • WORKDAY(start_date, days, holidays)
  • WORKDAY.INTL(start_date, days, weekend, holidays)

Ví dụ: Tìm ngày làm việc thứ 10 sau ngày 01/04/2026, bỏ qua ngày lễ 05/04/2026.

=WORKDAY(A2, 10, C2)

Kết quả trả về là 15/04/2026.

3. Tính Khoảng Cách Ngày Kèm Thời Gian

Khi dữ liệu bao gồm ngày và thời gian, bạn có thể dùng công thức đơn giản:

=end_date - start_date

Kết quả sẽ trả về số ngày (có phần thập phân). Để hiển thị dưới dạng giờ hoặc phút, bạn nhân với 24 hoặc 1440.

Ví dụ:

A (Start)B (End)Công thứcKết quả (ngày)Kết quả (giờ)
01/04/2026 08:0003/04/2026 14:30=B2-A22,27083333=(B2-A2)24 = 54,5

Sau khi tính, định dạng ô kết quả thành Number với 2 chữ số thập phân để dễ đọc.

3.1. Chuyển Đổi Sang Giây

Nếu muốn biết số giây giữa hai thời điểm:

=(end_date - start_date) 86400

(Vì 1 ngày = 24h 60p 60s = 86,400 giây.)

4. Các Trường Hợp Thực Tế và Ứng Dụng

Calculate Date Difference In Excel
Calculate Date Difference In Excel

4.1. Tính Tuổi Tự Động

Bạn muốn tính tuổi của nhân viên dựa trên ngày sinh và ngày hiện tại.

=DATEDIF(B2, TODAY(), "y")
  • B2 chứa ngày sinh.
  • TODAY() trả về ngày hiện tại.

Mở rộng: Để hiển thị tuổi, tháng, ngày:

=DATEDIF(B2, TODAY(), "y") & " năm " & DATEDIF(B2, TODAY(), "ym") & " tháng " & DATEDIF(B2, TODAY(), "md") & " ngày"

4.2. Tính Thời Hạn Dự Án

Giả sử dự án bắt đầu vào ngày A2 và kết thúc vào ngày B2. Bạn muốn biết:

  • Tổng số ngày lịch.
  • Số ngày làm việc (trừ cuối tuần).
  • Số ngày làm việc còn lại nếu chưa hoàn thành.

Công thức:

  • Tổng ngày: =B2 - A2 + 1
  • Ngày làm việc: =NETWORKDAYS(A2, B2)
  • Ngày làm việc còn lại (đến hôm nay): =NETWORKDAYS(TODAY(), B2)

4.3. Tính Thời Gian Giao Hàng

Bạn có ngày đặt hàng (C2) và thời gian giao hàng chuẩn (5 ngày làm việc). Để biết ngày giao hàng dự kiến:

=WORKDAY(C2, 5)

Nếu có ngày lễ trong danh sách D2:D5, thêm vào:

=WORKDAY(C2, 5, D2:D5)

4.4. Kiểm Tra Độ Trễ Thanh Toán

Trong một bảng công nợ, cột A là ngày phát hành hoá đơn, cột B là ngày thanh toán thực tế. Bạn muốn biết số ngày chậm trễ (nếu có) và đánh dấu “On time” nếu thanh toán đúng hạn (trong 30 ngày).

=IF(B2="","Chưa thanh toán", IF(B2-A2<=30, "On time", B2-A2-30 & " ngày trễ"))

5. Xử Lý Lỗi Thường Gặp Khi Tính Khoảng Cách Ngày

LỗiNguyên nhânCách khắc phục
#VALUE!Ô không phải là ngày hợp lệ hoặc định dạng không đúng.Kiểm tra lại định dạng ô, sử dụng DATEVALUE để chuyển chuỗi thành ngày.
#NUM!end_date < start_date trong DATEDIF.Đảo ngược hai ngày hoặc dùng ABS(end_date-start_date) nếu chỉ cần số ngày.
#N/AThiếu dữ liệu trong phạm vi ngày lễ.Đảm bảo phạm vi ngày lễ không rỗng hoặc sử dụng IFERROR.
Kết quả sai ngàyĐịnh dạng ngày khác nhau (mm/dd vs dd/mm).Kiểm tra cài đặt khu vực (Region) trong Windows, hoặc sử dụng DATE(year, month, day).

Mẹo nhanh: Dùng hàm ISNUMBER(cell) để kiểm tra ô có phải là ngày hợp lệ (vì ngày là số).

6. Sử Dụng VBA Để Tự Động Hóa Việc Tính Khoảng Cách Ngày

Khi làm việc với dữ liệu lớn hoặc cần tính toán phức tạp, VBA (Visual Basic for Applications) là một công cụ mạnh. Dưới đây là một macro đơn giản để tính số ngày giữa hai cột và ghi vào cột C.

Sub CalcDateDiff() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Set ws = ThisWorkbook.Sheets("Sheet1") ' Thay tên sheet nếu cần lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row For i = 2 To lastRow ' Giả sử có tiêu đề ở hàng 1 If IsDate(ws.Cells(i, "A").Value) And IsDate(ws.Cells(i, "B").Value) Then ws.Cells(i, "C").Value = ws.Cells(i, "B").Value - ws.Cells(i, "A").Value ws.Cells(i, "C").NumberFormat = "0" ' Hiển thị số ngày nguyên Else ws.Cells(i, "C").Value = "Invalid Date" End If Next i
End Sub

Giải thích:

  • IsDate kiểm tra ô có phải ngày hợp lệ.
  • ws.Cells(i, "C").Value = ws.Cells(i, "B").Value - ws.Cells(i, "A").Value thực hiện phép trừ ngày.
  • Bạn có thể mở rộng macro để tính ngày làm việc bằng Application.WorksheetFunction.NetworkDays.

Cách chạy macro:

  1. Nhấn Alt + F11 → Insert → Module → Dán code.
  2. Đóng VBA Editor.
  3. Trên Excel, vào Developer → Macros → Run.

7. Thủ Thuật Nâng Cao và Tối Ưu Hóa

7.1. Tính Khoảng Cách Ngày Khi Dữ Liệu Được Nhập Dưới Dạng Văn Bản

Nếu ngày được nhập dưới dạng “25-Apr-2026” (văn bản), dùng DATEVALUE:

=DATEVALUE(A2) - DATEVALUE(B2)

7.2. Sử Dụng ARRAYFORMULA (Excel 365) Để Tính Nhiều Hàng Cùng Lúc

Trong Excel 365, bạn có thể tính toàn bộ cột một lúc mà không cần kéo công thức:

=LET(start, A2:A100, finish, B2:B100, finish - start)

Kết quả sẽ trả về một mảng các số ngày.

7.3. Định Dạng Có Điều Kiện (Conditional Formatting) Để Highlight Ngày Trễ

  • Chọn cột C (khoảng cách ngày).
  • Vào Home → Conditional Formatting → New Rule → Use a formula.
  • Công thức: =C2>30 (đánh dấu các ngày trễ hơn 30 ngày).
  • Chọn màu nền (ví dụ: đỏ) và OK.

7.4. Kết Hợp FILTER và DATEDIF Để Lọc Dữ Liệu

Giả sử muốn lọc các dự án có thời gian kéo dài hơn 180 ngày:

=FILTER(A2:D100, DATEDIF(A2:A100, B2:B100, "d")>180)

Kết quả sẽ là một bảng chỉ chứa các dự án dài hơn 180 ngày.

8. Thực Hành: Bài Tập Tự Làm

  1. Bài 1: Tạo một bảng gồm ngày sinh của 10 người, tính tuổi hiện tại (đơn vị năm) và hiển thị dưới dạng “XX tuổi”.
  2. Bài 2: Nhập danh sách ngày đặt hàng và ngày giao hàng thực tế. Tính số ngày giao hàng trễ (nếu có) và tô màu đỏ các ô trễ hơn 5 ngày.
  3. Bài 3: Tạo danh sách ngày lễ (ví dụ 01/01, 30/04, 01/05). Sử dụng NETWORKDAYS để tính số ngày làm việc trong tháng 5/2026.

Gợi ý: Áp dụng các hàm DATEDIF, NETWORKDAYS, IF, Conditional Formatting.

9. Tổng Kết

Việc calculate date difference in Excel không chỉ là một thao tác đơn giản mà còn mở ra nhiều khả năng tự động hoá và phân tích dữ liệu sâu hơn. Từ các hàm cơ bản như DATEDIF, NETWORKDAYS đến các công cụ nâng cao như WORKDAY.INTL, VBA và các hàm mảng trong Excel 365, bạn có thể:

  • Tính tuổi, thời gian dự án, ngày giao hàng dự kiến.
  • Xác định ngày làm việc, loại trừ cuối tuần và ngày lễ.
  • Tự động kiểm tra độ trễ thanh toán hoặc giao hàng.
  • Tạo báo cáo động, lọc dữ liệu thông minh và hiển thị trực quan bằng Conditional Formatting.

Hãy áp dụng những kiến thức này vào công việc hàng ngày của bạn, bạn sẽ tiết kiệm được thời gian, giảm thiểu lỗi và nâng cao hiệu quả quản lý dữ liệu. Nếu gặp bất kỳ khó khăn nào trong quá trình thực hành, đừng ngần ngại tìm kiếm tài liệu bổ sung hoặc hỏi trong cộng đồng người dùng Excel – luôn có những giải pháp sáng tạo đang chờ đón bạn.

Chúc bạn thành công trong việc tính khoảng cách ngày và khai thác tối đa sức mạnh của Excel!

⚠️
LƯU Ý QUAN TRỌNG: Miễn trừ trách nhiệm: Mặc dù chúng tôi luôn nỗ lực để đảm bảo tính chính xác và cập nhật của thông tin, nhưng các quy định về giáo dục và tuyển sinh có thể thay đổi theo thời gian. BigSchool không chịu trách nhiệm về bất kỳ sai sót nào hoặc kết quả phát sinh từ việc sử dụng thông tin trên trang này. Độc giả nên liên hệ trực tiếp với nhà trường hoặc cơ quan chức năng để có thông tin mới nhất. Ngoài ra, BigSchool tuyệt đối không bán sản phẩm, khóa học hay cung cấp dịch vụ được nhắc đến trong bài.

Viết một bình luận