Chào mọi người,
Mình thường xuyên phải làm việc với các file excel mà dữ liệu ngày tháng năm đôi khi bị lưu dưới dạng text thay vì kiểu date chuẩn. Điều này gây ra rất nhiều khó khăn khi muốn sắp xếp, lọc hay thực hiện các phép tính liên quan đến ngày tháng.
Gần đây, mình có tìm hiểu và áp dụng một vài công thức khá hiệu quả để xử lý tình huống này mà không cần dùng đến VBA. Chia sẻ với các bạn để cùng tham khảo nhé:
Giả sử dữ liệu ngày tháng của bạn đang ở Cột A, bắt đầu từ A2.
1. Trường hợp ngày tháng có định dạng nhất quán (ví dụ: dd/mm/yyyy)
Nếu ngày tháng của bạn có định dạng khá giống nhau, ví dụ 25/12/2023, bạn có thể dùng hàm DATEVALUE kết hợp với TEXT hoặc SUBSTITUTE.
Công thức:
=DATEVALUE(SUBSTITUTE(A2, "/", "."))Hoặc nếu dấu phân cách là dấu chấm:
=DATEVALUE(A2)Lưu ý: Hàm DATEVALUE sẽ cố gắng chuyển đổi chuỗi thành giá trị ngày tháng. Nếu định dạng không chuẩn, nó có thể báo lỗi.
2. Trường hợp ngày tháng lộn xộn (ví dụ: dd/mm/yyyy, mm/dd/yyyy, yyyy-mm-dd...)
Trường hợp này phức tạp hơn. Mình thường dùng sự kết hợp của IFERROR, DATE, LEFT, MID, RIGHT để tách các phần ngày, tháng, năm ra rồi ghép lại.
Ví dụ, nếu bạn biết chắc chắn ngày tháng đang ở định dạng dd/mm/yyyy hoặc mm/dd/yyyy và muốn chuyển về yyyy-mm-dd:
=IFERROR(DATE(RIGHT(A2,4),MID(A2,4,2),LEFT(A2,2)), IFERROR(DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2)), "Lỗi"))Công thức này sẽ thử đọc theo định dạng dd/mm/yyyy trước, nếu sai thì thử tiếp theo định dạng mm/dd/yyyy.
3. Sử dụng Text to Columns
Nếu bạn không quen dùng công thức hoặc dữ liệu quá lộn xộn, cách nhanh nhất đôi khi là dùng chức năng Text to Columns:
- Chọn cột chứa dữ liệu ngày tháng dạng text.
- Vào tab Data -> Text to Columns.
- Chọn Delimited nếu ngày tháng có dấu phân cách rõ ràng (/, -, .) hoặc Fixed width nếu các ký tự năm, tháng, ngày cách nhau cố định.
- Trong bước tiếp theo, chọn Date và chọn đúng định dạng ngày tháng của bạn (ví dụ: DMY cho ngày/tháng/năm).
- Hoàn thành.
Cách này tuy không dùng công thức nhưng rất hiệu quả và nhanh chóng.
Mong là những chia sẻ này giúp ích được cho mọi người khi xử lý dữ liệu.