Xử lý tình huống
Ngày lộn dd/mm với mm/dd hoặc ngày dạng chữ
Ngày tháng bị đảo (05/11 thành 11/05) hoặc canh trái, không lọc và sắp xếp theo ngày được? Cách kiểm tra ngày thật, ghép lại ngày từ chữ bằng DATE với LEFT, MID, RIGHT, và vì sao không nên dùng DATEVALUE cho ngày viết ngày/tháng/năm.
Mục lục
Cách làm nhanh
- Kiểm tra ngày có thật không. Ngày thật canh phải, ngày dạng chữ canh trái. =ISNUMBER(B2) ra TRUE là ngày thật.
- Đọc kỹ thứ tự trong chữ. Xem ngày viết theo dd/mm/yyyy, mm/dd/yyyy hay yyyy-mm-dd, và trong cột có lẫn nhiều dạng không. Con số lớn hơn 12 chắc chắn là ngày, không phải tháng.
- Ghép ngày bằng DATE. Với chữ dd/mm/yyyy: =DATE(RIGHT(B2,4),MID(B2,4,2),LEFT(B2,2)), theo thứ tự năm, tháng, ngày.
- Định dạng ô kết quả là ngày. Chọn định dạng ngày (ví dụ dd/mm/yyyy). Ngày thật canh phải, lọc và sắp xếp theo thời gian đúng.
- Sửa ngày thật bị đảo. Nếu ô đã là ngày thật nhưng ngày và tháng đổi chỗ ở mọi dòng, ghép lại: =DATE(YEAR(B2),DAY(B2),MONTH(B2)).
Vấn đề bạn đang gặp
Bạn nhận bảng bán hàng từ một hệ thống cũ. Cột Ngày nhìn như ngày, nhưng bị canh trái, bấm sắp xếp hay lọc theo ngày thì ra thứ tự lạ, và =DATEVALUE(B2) lúc thì ra #VALUE!, lúc thì ra một ngày khác hẳn. Có thể bạn cũng từng thấy một ngày như 05/11/2026 biến thành ngày 11 tháng 5.
Có hai nguyên nhân khác nhau, và cách sửa khác nhau. Một là ô là chữ: theo Microsoft, ngày dạng chữ canh trái thay vì canh phải. Hai là ô là ngày thật nhưng bị đọc ngược: Excel đọc ngày bạn gõ vào theo thứ tự ngày–tháng của mục Short date trong cài đặt vùng của máy, nên cùng một chữ có thể thành hai ngày khác nhau trên hai máy.
Cách sửa từng bước
Đổi cột Ngày (chữ dd/mm/yyyy) thành ngày thật
Làm gì: Ở một ô trống, gõ
=ISNUMBER(B2).FALSEnghĩa là B2 không phải ngày thật. Nhìn cả cột: ngày thật canh phải, chữ canh trái.Vì sao: Ngày thật là một con số được hiển thị theo định dạng ngày. Ngày dạng chữ chỉ là các ký tự nên canh trái và không sắp xếp đúng theo thời gian.
Làm gì: Đọc vài ô để biết thứ tự trong chữ. Chữ có con số lớn hơn 12, ví dụ
13/02/2026, cho biết số đó là ngày, nên dạng là ngày/tháng/năm.Vì sao: Tháng chỉ từ 1 đến 12, nên một số lớn hơn 12 không thể là tháng. Chữ chỉ có số nhỏ như 08/02/2026 thì không đoán được, hãy dựa vào các ô khác trong cùng cột.
- Chỗ hay sai
Làm gì: Ở ô kết quả, ghép ngày từ ba phần:
=DATE(RIGHT(B2,4),MID(B2,4,2),LEFT(B2,2)). Sao chép xuống hết cột.Vì sao: Năm là 4 ký tự cuối, tháng là 2 ký tự bắt đầu từ ký tự thứ 4, ngày là 2 ký tự đầu. DATE nhận năm, rồi tháng, rồi ngày, nên không bao giờ đảo chúng.
Làm gì: Chọn ô kết quả và đặt định dạng ngày, ví dụ
dd/mm/yyyy.Vì sao: DATE trả về một con số thứ tự. Định dạng ngày cho con số đó hiện ra thành ngày.
Làm gì: Kiểm tra:
=ISNUMBER(H2)raTRUE, ngày canh phải, rồi thử sắp xếp hoặc lọc theo cột mới.Vì sao: Chỉ ngày thật mới sắp xếp theo thời gian và lọc theo tháng, quý.
Tự hỏi mình
- Chữ 08/02/2026 theo dd/mm/yyyy ra ngày nào khi dùng công thức trên? Còn khi viết sai thứ tự đối số của DATE thì ra ngày nào?
- Vì sao con số lớn hơn 12 giúp bạn biết đang đọc ngày hay tháng?
Cột lẫn hai dạng chữ
Nếu cột gộp từ hai nguồn, ví dụ một nguồn viết dd/mm/yyyy và nguồn kia viết yyyy-mm-dd, hãy nhận ra dạng bằng dấu gạch ngang ở ký tự thứ 5 rồi ghép ngày theo từng dạng:
=IF(MID(B2,5,1)="-",DATE(LEFT(B2,4),MID(B2,6,2),RIGHT(B2,2)),DATE(RIGHT(B2,4),MID(B2,4,2),LEFT(B2,2)))
Ngày thật nhưng bị đảo ngày và tháng
Nếu Excel đã đọc 05/11/2026 thành ngày 11 tháng 5 thì ô là ngày thật nhưng sai: ngày thật canh phải. Khi chắc chắn mọi ngày thật trong cột đều bị đảo, ghép lại bằng các hàm lấy từng phần của ngày thật, đổi chỗ ngày và tháng: =DATE(YEAR(B2),DAY(B2),MONTH(B2)). Với ô ngày thật, hãy dùng DAY, MONTH, YEAR, và chỉ dùng LEFT, MID, RIGHT cho ô chữ.
Hiển thị lại thành chữ
Khi cần một ô chữ có dạng ngày cố định, ví dụ để nối vào câu, dùng =TEXT(H2,"dd/mm/yyyy"). Kết quả là chữ, không còn là ngày để tính. Hãy giữ ngày thật ở một cột và đặt công thức TEXT ở cột khác.
Vì sao lỗi này xảy ra
Ngày thật trong Excel là một con số thứ tự, và định dạng ô quyết định cách con số đó hiện ra thành ngày. Ngày dạng chữ chỉ là các ký tự, nên Excel không sắp xếp hay lọc nó theo thời gian.
Việc đọc ngày gõ vào còn phụ thuộc cài đặt vùng của máy, như đã nói ở trên, và DATEVALUE cũng có thể ra kết quả khác nhau theo cài đặt ngày của máy (Microsoft ghi rõ), nên cùng một chữ có thể ra hai ngày khác nhau ở hai máy. Cách chắc chắn là tự lấy năm, tháng, ngày ra khỏi chữ rồi giao cho DATE: bạn quyết định phần nào là ngày, phần nào là tháng, và kết quả không đổi theo máy.
Ngày ra sai: tháng và ngày đổi chỗ so với chữ gốc.
- Nguyên nhân
- Đối số của DATE đặt sai thứ tự (DATE nhận năm, rồi tháng, rồi ngày), hoặc chữ gốc là mm/dd/yyyy mà bạn đọc như dd/mm/yyyy.
- Cách sửa
- Kiểm tra thứ tự trong chữ, rồi đặt
MIDvàLEFTđúng chỗ: với dd/mm/yyyy, tháng làMID(B2,4,2)và ngày làLEFT(B2,2).
DATEVALUEra#VALUE!hoặc ra một ngày khác hẳn.- Nguyên nhân
- DATEVALUE đọc chữ theo cài đặt ngày của máy, và Microsoft nói cài đặt đó có thể làm kết quả khác nhau.
- Cách sửa
- Ghép ngày bằng
DATEtừ các phần của chữ, như ở trên.
Ô kết quả hiện một số lớn, ví dụ 46331, thay vì ngày.
- Nguyên nhân
- Ô chưa có định dạng ngày. DATE trả về số thứ tự, và Microsoft nhắc cần đổi định dạng ô để hiển thị đúng ngày.
- Cách sửa
- Chọn ô và đặt định dạng ngày, ví dụ
dd/mm/yyyy.
LEFT,MID,RIGHTcho kết quả lạ khi dùng trên ngày thật.- Nguyên nhân
- Ba hàm này cắt ký tự của chữ. Ngày thật là con số thứ tự, và Microsoft dùng DAY, MONTH, YEAR để lấy từng phần của ngày thật.
- Cách sửa
- Với ô ngày thật, dùng
=DAY(B2),=MONTH(B2),=YEAR(B2). Chỉ dùng LEFT, MID, RIGHT trên ô chữ.
Đọc xong, giờ thử
Luyện tập ngay (2 bài tập)
Làm trực tiếp trên lưới trong trình duyệt. Mỗi lần bấm chấm bài, DeskLab kiểm tra kết quả và gợi ý nếu bạn chưa làm đúng.
Bắt đầu luyện tậpChấm tự động ngay trên máy bạn. Không cần đăng nhập. Tiến độ lưu trên trình duyệt này.
Ô B2 canh trái và =ISNUMBER(B2) ra FALSE. B2 là gì?
Chữ 08/02/2026 viết theo dd/mm/yyyy, nghĩa là ngày 8 tháng 2. Công thức nào ghép đúng ngày đó?
Vì sao nên tránh DATEVALUE cho chữ viết ngày/tháng/năm?
Chữ gốc là 05/11/2026 (5 tháng 11) nhưng ô B2 là ngày thật 11 tháng 5, và mọi ngày thật trong cột đều bị đảo. Công thức nào sửa đúng?
Trên Excel thật
- Ngày dạng chữ trong bài tập: dữ liệu của bài tập cố ý để ngày dạng chữ, để bạn tập tách chữ. Thực tế bạn nên sửa ngay ở nguồn nếu có thể.
- Tam giác xanh trên lưới: lưới DeskLab vẽ tam giác xanh ở góc các ô chữ đọc được thành ngày, như
08/02/2026ở hình đầu trang, nhưng không vẽ ở13/02/2026vì chữ này không đọc được thành ngày theo thứ tự tháng trước ngày. Đừng dựa vào tam giác để biết cột đã đúng. - Gõ ngày vào lưới: lưới DeskLab đọc
05/11/2026bạn gõ là ngày 5 tháng 11 (ngày trước tháng). Excel thật đọc ngày bạn gõ vào theo thứ tự trong cài đặt vùng của máy bạn, như đã nói ở trên. - DATEVALUE: trên lưới DeskLab,
=DATEVALUE("08/02/2026")ra ngày 2 tháng 8 (đọc tháng trước ngày) và13/02/2026báo lỗi. Excel thật có thể ra kết quả khác tùy cài đặt ngày của máy, như Microsoft ghi trong câu hỏi trên. - LEFT, MID, RIGHT trên ngày thật: trên lưới DeskLab, ba hàm này đọc ngày đang hiển thị trên màn hình. Đừng dựa vào điều đó: hãy dùng
DAY,MONTH,YEARcho ô ngày thật, như Microsoft làm trong ví dụ của hàmDATE.
Câu hỏi thường gặp
Sao không dùng DATEVALUE cho nhanh?
Vì DATEVALUE đọc chữ theo cài đặt ngày của máy. Chính Microsoft ghi rằng cài đặt ngày của máy có thể làm kết quả của DATEVALUE khác nhau. Chữ 05/11/2026 có thể ra ngày 5 tháng 11 ở máy này và ngày 11 tháng 5 ở máy khác. DATE ghép từ ba phần bạn tự lấy ra (năm, tháng, ngày) nên kết quả giống nhau trên mọi máy.
Ngày viết năm trước, như 2026-11-05, xử lý thế nào?
Ghép bằng DATE với LEFT, MID, RIGHT đúng vị trí của dạng đó: =DATE(LEFT(B2,4),MID(B2,6,2),RIGHT(B2,2)). Microsoft hướng dẫn đúng cách này cho ngày dạng chữ YYYYMMDD. Nếu một cột lẫn hai dạng, dùng IF để chọn công thức theo dạng của từng dòng, ví dụ nhận ra dạng yyyy-mm-dd qua dấu gạch ngang ở ký tự thứ 5.