Có thể bạn quan tâm: Excel Gantt Chart Template Free: Hướng Dẫn Chi Tiết Tạo Và Sử Dụng Biểu Đồ Gantt Miễn Phí Trong Excel
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.
Có thể bạn quan tâm: Excel Format Number As Text: Hướng Dẫn Chi Tiết Và Các Mẹo Thực Tiễn
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,DATEDIFcần giá trị ngày thuần.
Có thể bạn quan tâm: Excel Fixed Objects Will Move: Hiểu Và Giải Quyết Vấn Đề Đối Tượng Cố Định Khi Di Chuyển Trong Excel
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ểm | Nhượ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ốc | Khô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ểm | Nhượ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
- Chọn ô hoặc dải ô chứa datetime.
- Nhấn
Ctrl + 1→ Tab Number → Custom. - Nhập định dạng:
dd/mm/yyyyhoặcyyyy-mm-dd. - 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ểm | Nhược điểm |
|---|---|
| Siêu nhanh, không thay đổi dữ liệu | Khô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ĩnh | Khi 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

Có thể bạn quan tâm: Cách Sử Dụng Excel Để Lấy Dữ Liệu Từ Website: Hướng Dẫn Chi Tiết Từ A Đến Z
| Ưu điểm | Nhược điểm |
|---|---|
| Dễ dàng xuất ra file văn bản, CSV | Kế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ạt | Khi 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
- Data → Get Data → From File → From Workbook/CSV (tùy nguồn).
- Khi mở Power Query Editor, chọn cột datetime.
- Vào Transform → Date → Date Only (hoặc Date Only trong Data Type).
- 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ểm | Nhược điểm |
|---|---|
| Xử lý hàng nghìn, hàng triệu bản ghi nhanh chóng | Cầ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
IsDatetrá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ểm | Nhược điểm |
|---|---|
| Tự động hoá hoàn toàn, áp dụng cho bất kỳ số lượng bản ghi | Yê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 sheet | Khô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).LETgiú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ểm | Nhược điểm |
|---|---|
| Không cần sao chép công thức, tự động mở rộng | Chỉ 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ỗi | Nguyên nhân | Cá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ỗng | Dò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ống | Phươ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án | INT, DATE(YEAR(...),MONTH(...),DAY(...)) |
| Dữ liệu nhập từ file CSV dạng text | DATEVALUE(LEFT(...,10)) hoặc Power Query |
| Xử lý hàng nghìn bản ghi khi import | Power Query → Date Only |
| Tự động hoá trên nhiều sheet | VBA macro |
| Sử dụng công thức mảng trong Excel 365 | LET + INT hoặc DATEVALUE trong công thức mảng |
| Xuất dữ liệu ra CSV mà không có thời gian | TEXT(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
- 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.
- 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. - 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. - 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é!

Tiến sĩ Lê Thống Nhất sinh năm 1955 tại Nghệ An, là nhà giáo, nhà báo và doanh nhân trong lĩnh vực giáo dục. Ông từng giảng dạy Toán học tại Trường THPT Chuyên Phan Bội Châu và đảm nhiệm nhiều vai trò trong ngành giáo dục, từ viết sách, biên soạn tài liệu đến sáng lập các dự án hỗ trợ học tập trực tuyến.
Ông là người sáng lập BigSchool – nền tảng giáo dục trực tuyến kết nối giáo viên và học sinh cả nước. Ngoài ra, ông còn nổi tiếng với vai trò tác giả, diễn giả truyền cảm hứng và khách mời trên nhiều chương trình truyền hình, trong đó có “Ai là triệu phú” trên truyền hình VTV.
Trong suốt sự nghiệp, Tiến sĩ Lê Thống Nhất đã nhận nhiều giải thưởng giáo dục và được biết đến như một người luôn đổi mới, ứng dụng công nghệ vào dạy và học, góp phần lan tỏa tri thức và niềm say mê học tập cho thế hệ trẻ.
