Chào mọi người,
Mình thường xuyên phải làm việc với các file dữ liệu excel mà phần ngày tháng bị nhập lung tung, lúc thì định dạng DD/MM/YYYY, lúc lại MM/DD/YYYY, có khi còn sai cả năm. Việc này gây rất nhiều khó khăn khi mình muốn lọc hay sắp xếp dữ liệu theo đúng thứ tự thời gian.
Trước đây mình hay phải ngồi lọc thủ công từng dòng hoặc dùng các hàm text để cố gắng chuyển đổi, nhưng rất mất thời gian và dễ sai sót. Gần đây mình có mày mò Power Query và phát hiện ra một cách khá hiệu quả để xử lý vấn đề này mà không cần dùng đến code phức tạp.
Cách của mình là:
- Đầu tiên, mình load dữ liệu vào Power Query.
- Trong Power Query Editor, chọn cột chứa dữ liệu ngày tháng cần xử lý.
- Sử dụng chức năng Transform > Data Type > Date. Power Query sẽ cố gắng tự nhận diện định dạng ngày tháng.
- Nếu vẫn còn lỗi hoặc định dạng chưa đúng, mình sẽ dùng chức năng Add Column > Custom Column để tạo một cột mới với công thức như sau (ví dụ tên cột ngày tháng là 'DateColumn'):
Date.FromText(Text.Start([DateColumn], 10))Trong công thức trên, Text.Start([DateColumn], 10) giúp lấy 10 ký tự đầu tiên của chuỗi, thường là định dạng ngày tháng chuẩn. Sau đó, Date.FromText sẽ chuyển đổi chuỗi này thành kiểu dữ liệu Date.
Nếu vẫn gặp vấn đề, bạn có thể thử các cách khác như sử dụng Date.From() hoặc kết hợp các hàm xử lý chuỗi như Text.Split() tùy thuộc vào định dạng cụ thể của dữ liệu.
Cuối cùng, sau khi đã xử lý xong, mình sẽ chuyển đổi lại kiểu dữ liệu của cột về Date và nạp kết quả ra Excel.
Cách này giúp mình tiết kiệm rất nhiều thời gian và đảm bảo tính chính xác cho dữ liệu. Có bạn nào có cách nào hay hơn hoặc gặp trường hợp phức tạp hơn thì chia sẻ thêm nhé!