Cách Lấy Ngày (date) Từ Giá Trị Datetime Trong Excel: Hướng Dẫn Chi Tiết Và Thực Hành

Mục lục bài viết

Mở Đầu

Trong công việc văn phòng, phân tích dữ liệu hay lập báo cáo, Excel luôn là công cụ không thể thiếu. Một trong những thách thức phổ biến mà người dùng Excel gặp phải là tách lấy phần ngày (date) từ một giá trị ngày‑giờ (datetime). Thông thường, dữ liệu nhập từ hệ thống ERP, CRM, hay các file CSV chứa cả ngày và thời gian (ví dụ: 2026-07-15 14:35:22). Khi chúng ta chỉ cần hiển thị hoặc tính toán dựa trên ngày mà không quan tâm tới giờ, việc tách riêng phần ngày trở nên cần thiết.

Bài viết này sẽ cung cấp toàn diện các phương pháp lấy ngày từ datetime trong Excel, bao gồm:
– Sử dụng hàm tích hợp sẵn (INT, DATE, TEXT, DAY, MONTH, YEAR…)
– Áp dụng định dạng ô để hiển thị chỉ ngày
– Dùng Power Query (Get & Transform) để tách ngày trong quá trình nhập dữ liệu
– Viết macro VBA để tự động hoá quy trình
– Kỹ thuật xử lý dữ liệu động với bảng tính (Table) và công cụ Dynamic Array (Excel 365)
– Mẹo tối ưu hiệu suất và tránh lỗi phổ biến

Sau khi đọc xong, bạn sẽ có bộ công cụ đầy đủ để xử lý mọi trường hợp datetime trong Excel, dù là dữ liệu tĩnh, dữ liệu được nhập liên tục, hay dữ liệu liên kết từ nguồn bên ngoài.

1. Hiểu Rõ Kiểu Dữ Liệu DateTime Trong Excel

1.1. DateTime Là Gì?

Excel lưu trữ ngày‑giờ dưới dạng số thập phân:
– Phần nguyên đại diện cho ngày, tính từ ngày 0 (ngày 0 là 0/1/1900 trong hệ thống Windows, hoặc 0/1/1904 trên Mac tùy tùy chọn).
– Phần thập phân đại diện cho thời gian trong ngày (0.0 = 00:00:00, 0.5 = 12:00:00, 0.999… ≈ 23:59:59).

Ví dụ:
– Giá trị 44561,75 trong Excel tương đương 15/07/2026 18:00:00 (44561 ngày kể từ 0/1/1900 + 0.75 ngày = 18h).

1.2. Tại Sao Cần Tách Ngày?

  • Báo cáo tổng hợp: Thường chỉ cần ngày để nhóm dữ liệu (theo ngày, tuần, tháng).
  • So sánh: Khi so sánh ngày mà không muốn thời gian ảnh hưởng.
  • Định dạng hiển thị: Đôi khi người dùng muốn hiển thị “15/07/2026” thay vì “15/07/2026 14:35:22”.
  • Tính toán: Các công thức như NETWORKDAYS, WORKDAY, DATEDIF cần giá trị ngày thuần.

2. Phương Pháp 1: Dùng Hàm INT Để Lấy Phần Ngày

2.1. Nguyên Lý

Vì phần nguyên của một giá trị datetime chính là ngày, chúng ta có thể cắt bỏ phần thập phân (thời gian) bằng hàm INT.

=INT(A2)
  • A2 chứa giá trị datetime.
  • Kết quả trả về là một số nguyên (ví dụ: 44561). Khi định dạng lại thành ngày, Excel sẽ hiển thị 15/07/2026.

2.2. Định Dạng Kết Quả

Sau khi sử dụng INT, ô trả về vẫn là số. Để hiển thị dưới dạng ngày:
1. Chọn ô/đối tượng.
2. Nhấn Ctrl + 1 → Tab Number → Chọn Date và định dạng mong muốn (dd/mm/yyyy, mm/dd/yyyy…).

2.3. Ưu Nhược Điểm

Ưu điểmNhược điểm
Rất nhanh, không cần hàm phụ trợNếu dữ liệu không phải kiểu datetime (text), INT sẽ trả về lỗi #VALUE!
Không thay đổi giá trị gốcKhông xử lý được các giá trị dạng text “2026-07-15 14:35:22” (cần chuyển sang số trước).

3. Phương Pháp 2: Sử Dụng Hàm DATE, YEAR, MONTH, DAY

Khi cần độ linh hoạt hơn, chẳng hạn muốn tạo một ngày mới dựa trên các thành phần, chúng ta có thể tách từng phần và gộp lại.

3.1. Công Thức Cơ Bản

=DATE(YEAR(A2), MONTH(A2), DAY(A2))
  • YEAR(A2) trả về năm.
  • MONTH(A2) trả về tháng.
  • DAY(A2) trả về ngày.

Kết quả là một giá trị date thuần, không có thời gian.

3.2. Khi Dữ Liệu Là Text

Nếu dữ liệu được nhập dưới dạng chuỗi (text) như "2026-07-15 14:35:22", ta cần chuyển thành ngày‑giờ thực:

=DATEVALUE(LEFT(A2,10)) // Lấy 10 ký tự đầu (yyyy-mm-dd) và chuyển sang ngày

Hoặc dùng DATEVALUE kết hợp TIMEVALUE:

=DATEVALUE(LEFT(A2,10)) + TIMEVALUE(MID(A2,12,8))

Sau đó áp dụng công thức DATE(YEAR(...),MONTH(...),DAY(...)) nếu muốn tách ngày.

3.3. Ưu Nhược Điểm

Ưu điểmNhược điểm
Cho phép thao tác chi tiết (có thể thay đổi tháng, ngày…)Độ dài công thức cao hơn INT
Hoạt động tốt với cả giá trị ngày‑giờ và text (kết hợp DATEVALUE)Cần chú ý định dạng kết quả để hiển thị ngày.

4. Phương Pháp 3: Định Dạng Ô (Number Format) Để Hiển Thị Chỉ Ngày

Đôi khi chúng ta không cần thay đổi giá trị mà chỉ muốn hiển thị phần ngày. Đây là cách nhanh nhất.

4.1. Thực Hiện

  1. Chọn ô hoặc dải ô chứa datetime.
  2. Nhấn Ctrl + 1 → Tab Number → Custom.
  3. Nhập định dạng: dd/mm/yyyy hoặc yyyy-mm-dd.
  4. Nhấn OK.

Kết quả: Excel vẫn lưu trữ thời gian, nhưng hiển thị chỉ ngày.

4.2. Khi Cần Dùng Kết Quả trong Công Thức

Nếu công thức cần giá trị ngày thuần, định dạng ô không đủ. Nhưng nếu chỉ để đọc trên báo cáo, cách này rất tiện.

4.3. Ưu Nhược Điểm

Ưu điểmNhược điểm
Siêu nhanh, không thay đổi dữ liệuKhông thực sự tách ngày, thời gian vẫn tồn tại trong nền
Thích hợp cho báo cáo tĩnhKhi cần tính toán, sẽ gây sai lệch (ví dụ: A2 > B2 sẽ vẫn tính thời gian).

5. Phương Pháp 4: Sử Dụng Hàm TEXT Để Chuyển Sang Chuỗi Ngày

Nếu muốn lưu trữ ngày dưới dạng text (ví dụ, để xuất ra file CSV mà không có thời gian), hàm TEXT là lựa chọn.

=TEXT(A2, "dd/mm/yyyy")

Kết quả là chuỗi "15/07/2026".

5.1. Khi Dữ Liệu Là Text

Nếu dữ liệu gốc đã là text, có thể dùng:

=LEFT(A2,10) // Lấy 10 ký tự đầu (yyyy-mm-dd)

Hoặc:

=TEXT(DATEVALUE(LEFT(A2,10)),"dd/mm/yyyy")

5.2. Ưu Nhược Điểm

Excel Get Date From Datetime
Excel Get Date From Datetime
Ưu điểmNhược điểm
Dễ dàng xuất ra file văn bản, CSVKết quả là text, không thể dùng cho các phép tính ngày trực tiếp
Tùy chỉnh định dạng linh hoạtKhi cần tính toán lại, phải chuyển ngược lại (DATEVALUE).

6. Phương Pháp 5: Power Query (Get & Transform) – Xử Lý Dữ Liệu Khi Nhập

Trong môi trường doanh nghiệp, dữ liệu thường được import từ hệ thống ERP, SQL Server, hoặc file CSV. Power Query cho phép làm sạch dữ liệu ngay khi nhập, bao gồm tách ngày.

6.1. Các Bước Cơ Bản

  1. Data → Get Data → From File → From Workbook/CSV (tùy nguồn).
  2. Khi mở Power Query Editor, chọn cột datetime.
  3. Vào Transform → Date → Date Only (hoặc Date Only trong Data Type).
  4. Nhấn Close & Load để trả về Excel.

Power Query sẽ tạo một cột mới chỉ chứa ngày, giữ nguyên cột gốc nếu muốn.

6.2. Khi Dữ Liệu Là Text

Nếu cột được nhận dạng là text, trước tiên cần Convert to Date/Time:
– Chọn cột → Transform → Data Type → Date/Time.
– Sau khi chuyển, thực hiện Date → Date Only.

6.3. Ưu Nhược Điểm

Ưu điểmNhược điểm
Xử lý hàng nghìn, hàng triệu bản ghi nhanh chóngCần kiến thức cơ bản về Power Query
Tự động hoá quy trình nhập dữ liệu (refresh)Không phù hợp cho dữ liệu đã có trong sheet mà không muốn import lại.
Ghi lại các bước trong Applied Steps, dễ bảo trìĐôi khi gặp lỗi khi nguồn dữ liệu không đồng nhất về định dạng datetime.

7. Phương Pháp 6: VBA Macro – Tự Động Hóa Việc Tách Ngày

Đối với tác vụ lặp lại trên nhiều sheet, hoặc cần đưa ngày vào cột mới tự động, VBA là giải pháp mạnh.

7.1. Macro Cơ Bản

Sub ExtractDateFromDateTime() Dim rng As Range, cell As Range ' Giả sử dữ liệu nằm trong cột A, bắt đầu từ A2 Set rng = Range("A2", Range("A" & Rows.Count).End(xlUp)) For Each cell In rng If IsDate(cell.Value) Then cell.Offset(0, 1).Value = Int(cell.Value) ' Ghi ngày vào cột B Else cell.Offset(0, 1).Value = "Invalid" End If Next cell ' Định dạng cột B thành ngày Range("B2", Range("B" & Rows.Count).End(xlUp)).NumberFormat = "dd/mm/yyyy"
End Sub
  • Giải thích:
  • Int(cell.Value) lấy phần ngày.
  • cell.Offset(0,1) ghi vào cột bên phải.
  • Kiểm tra IsDate tránh lỗi.

7.2. Xử Lý Text Datetime

Nếu dữ liệu là chuỗi, chúng ta có thể dùng CDate kết hợp Left:

If IsDate(cell.Value) Then cell.Offset(0, 1).Value = Int(CDate(cell.Value))
ElseIf Len(cell.Value) >= 10 Then cell.Offset(0, 1).Value = DateValue(Left(cell.Value, 10))
Else cell.Offset(0, 1).Value = "Invalid"
End If

7.3. Ưu Nhược Điểm

Ưu điểmNhược điểm
Tự động hoá hoàn toàn, áp dụng cho bất kỳ số lượng bản ghiYêu cầu kiến thức VBA, bảo trì macro
Có thể mở rộng (thêm cột giờ, tính thời gian làm việc…)Macro có thể bị chặn bởi security settings.
Thực hiện nhanh trong môi trường đa sheetKhông thân thiện với người dùng không quen VBA.

8. Phương Pháp 7: Dynamic Array (Excel 365) – Công Thức Mảng

Với Excel 365, công thức mảng cho phép xử lý toàn bộ cột một lần mà không cần sao chép công thức.

8.1. Công Thức Lấy Ngày Cho Toàn Cột

Giả sử dữ liệu datetime ở cột A, bắt đầu từ A2:

=LET( dt, A2#, IF(ISNUMBER(dt), INT(dt), IFERROR(DATEVALUE(LEFT(dt,10)), "" ))
)
  • A2# là spill range (cột A từ A2 xuống cuối dữ liệu).
  • LET giúp đặt tên biến, tăng hiệu suất.
  • Kết quả sẽ spill ra cột B (hoặc bất kỳ cột nào bạn đặt công thức).

8.2. Kết Hợp Với FILTER Để Lấy Ngày Của Các Bản Ghi Đáp Ứng Điều Kiện

=FILTER(INT(A2#), B2#="Completed")

Giả sử cột B chứa trạng thái; công thức trả về ngày của những bản ghi đã hoàn thành.

8.3. Ưu Nhược Điểm

Ưu điểmNhược điểm
Không cần sao chép công thức, tự động mở rộngChỉ hoạt động trên Excel 365/Excel 2026 trở lên
Hiệu suất cao nhờ LET và tính toán mảngĐối với dữ liệu cực lớn (>100k), vẫn cần tối ưu.
Dễ dàng kết hợp với các hàm mới (XLOOKUP, FILTER…)Người dùng cũ có thể không quen với cú pháp.

9. Kiểm Tra Và Xử Lý Lỗi Thông Thường

Khi làm việc với datetime, thường gặp các vấn đề:

LỗiNguyên nhânCách khắc phục
#VALUE!Dữ liệu không phải kiểu ngày‑giờ (text không đúng format)Dùng DATEVALUE hoặc CDate. Kiểm tra bằng ISTEXT, ISNUMBER.
#NUM!Giá trị ngày nằm ngoài phạm vi hỗ trợ (trước 1900)Đảm bảo dữ liệu hợp lệ, hoặc chuyển sang text.
Sai ngày (31/02)Định dạng ngày‑tháng‑năm khác nhau (US vs EU)Sử dụng DATEVALUE với TEXT để chuẩn hoá (TEXT(A2,"yyyy-mm-dd")).
Thời gian vẫn xuất hiện sau khi dùng INTĐịnh dạng ô vẫn là DateTimeĐặt lại Number Format thành Date.
Công thức trả về rỗngDòng dữ liệu trống hoặc không hợp lệKiểm tra IF(ISBLANK(...), "", ...).

9.1. Kiểm Tra Kiểu Dữ Liệu

=TYPE(A2) // 1 = Number, 2 = Text, 16 = Error

Nếu TYPE trả về 2 (text), cần chuyển sang number trước khi tách ngày.

10. So Sánh Các Phương Pháp – Khi Nào Dùng Gì?

Tình huốngPhương pháp đề xuất
Chỉ cần hiển thị ngày trên báo cáoĐịnh dạng ô (Custom dd/mm/yyyy)
Cần giá trị ngày để tính toánINT, DATE(YEAR(...),MONTH(...),DAY(...))
Dữ liệu nhập từ file CSV dạng textDATEVALUE(LEFT(...,10)) hoặc Power Query
Xử lý hàng nghìn bản ghi khi importPower Query → Date Only
Tự động hoá trên nhiều sheetVBA macro
Sử dụng công thức mảng trong Excel 365LET + INT hoặc DATEVALUE trong công thức mảng
Xuất dữ liệu ra CSV mà không có thời gianTEXT(A2,"yyyy-mm-dd") hoặc LEFT(A2,10)

11. Thực Hành: Ví Dụ Cụ Thể

11.1. Dữ Liệu Mẫu

A (Datetime)B (Mô tả)
2026-07-15 08:30:45Đơn hàng A
2026/07/16 14:05:00Đơn hàng B
17/07/2026 22:15:30Đơn hàng C
2026-07-18Đơn hàng D (chỉ ngày)
(rỗng)–
2026-07-19 00:00:00Đơn hàng E

11.2. Áp Dụng Các Phương Pháp

a) INT (cột C)

=IF(ISNUMBER(A2), INT(A2), "")

Kết quả: 44795, 44796, 44797, 44798, "", 44799 → Định dạng dd/mm/yyyy.

b) DATE(YEAR,MONTH,DAY) (cột D)

=IF(ISNUMBER(A2), DATE(YEAR(A2),MONTH(A2),DAY(A2)), IF(LEN(A2)>=10, DATEVALUE(LEFT(A2,10)), ""))

Kết quả: 15/07/2026, 16/07/2026, 17/07/2026, 18/07/2026, "", 19/07/2026.

c) TEXT (cột E)

=IF(A2="","",TEXT(A2,"dd/mm/yyyy"))

Kết quả: "15/07/2026" … "19/07/2026".

d) Power Query

  • Import cột A.
  • Chuyển sang Date/Time (nếu cần).
  • Chọn Transform → Date → Date Only → Đặt tên cột “OrderDate”.
  • Load về Excel, dữ liệu trả về sẽ chỉ có ngày.

e) VBA Macro

Chạy macro ExtractDateFromDateTime sẽ tạo cột B (bên phải) với ngày thuần và định dạng.

11.3. Kiểm Tra Kết Quả

Sử dụng hàm COUNTIF để đếm số đơn hàng trong ngày 18/07/2026:

=COUNTIF(D:D, DATE(2026,7,18))

Kết quả: 1 (đơn hàng D).

12. Tối Ưu Hiệu Suất Khi Xử Lý Ngày

  1. Giảm số lần tính toán: Khi có hàng nghìn bản ghi, tránh lặp lại công thức trong mỗi ô bằng cách sử dụng công thức mảng hoặc Power Query.
  2. Tránh volatile functions (NOW(), TODAY()) trong công thức tách ngày, vì chúng làm tái tính lại toàn bộ sheet mỗi khi mở file.
  3. Sử dụng Table: Khi dữ liệu được định dạng thành Table (Ctrl+T), công thức sẽ tự động mở rộng và giúp quản lý dữ liệu sạch hơn.
  4. Cache kết quả: Nếu dữ liệu không thay đổi, có thể copy → Paste Values sau khi tách ngày để giảm tải tính toán.

13. Kết Luận

Việc lấy ngày từ datetime trong Excel không chỉ là một thao tác đơn giản mà còn là nền tảng cho rất nhiều quy trình phân tích và báo cáo. Từ các hàm cơ bản như INT và DATE, tới các công cụ mạnh mẽ như Power Query, Dynamic Array, và VBA, bạn có thể lựa chọn giải pháp phù hợp nhất với môi trường làm việc và mức độ phức tạp của dữ liệu.

Những điểm quan trọng cần ghi nhớ:
– Hiểu rõ cách Excel lưu trữ datetime (số nguyên + phần thập phân).
– Khi chỉ cần hiển thị, định dạng ô là đủ; khi cần tính toán, phải chuyển sang giá trị ngày thực.
– Đối với dữ liệu text, luôn chuyển sang kiểu ngày trước khi tách.
– Sử dụng Power Query cho quá trình nhập dữ liệu lớn và tự động hoá.
– Đối với tác vụ lặp lại, VBA mang lại hiệu quả cao.
– Với Excel 365, công thức mảng và LET giúp tối ưu hiệu suất và độ ngắn gọn.

Hy vọng bài viết đã cung cấp bộ công cụ toàn diện để bạn tự tin xử lý mọi tình huống datetime trong Excel. Hãy thử áp dụng các phương pháp trên vào dự án thực tế của bạn và chia sẻ kết quả nhé!

⚠️
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