Cách sửa ngày sai trong Excel

Bạn nhận được file của người khác làm, nhập ngày tháng năm không đúng quy chuẩn. Và cần phải sửa lại đồng loạt, vậy thì chúng ta phải làm thế nào để sửa lỗi ngày sai?

Như trong ảnh, chúng ta sẽ thấy ô A3, có dạng ngày theo dd/mm/yyyy. Tuy nhiên, khi kiểm tra lại là ngày 12 tháng 2, không phải là ngày 2 tháng 12. Ở đây, mình muốn giới thiệu với các bạn công dụng của hàm SUBSTITUTE để lấy ra dữ liệu ngày và tháng, cùng với hàm DATE(Năm, Tháng, Ngày) để chuẩn hóa dữ liệu ngày.

Với dữ liệu như ô A2, chúng ta thấy rõ ràng đây là TEXT, với dữ liệu Năm, thì thường là 4 ký tự cuối, chúng ta áp dụng hàm RIGHT(A2,4) = 2018. Vậy là ta có Năm, cho hàm DATE(Năm, Tháng, Ngày).

Còn dữ liệu Tháng và Ngày, thì làm thế nào? Chúng ta thấy có dấu “/” phân chia, và theo đó ta có các cách sau:

Kiểu dd/mm/yyyy – “00/00/0000”:

Ví dụ: “02/12/2018” hay “01/02/2018”

Điều này sẽ vô cùng dễ dàng hơn khi chúng ta có ngày tháng năm kiểu 2 chữ số, lúc này chỉ cần LEFT(“01/02/2018”, 2)=01, thì chúng ta đã có Ngày. Còn tháng thì MID(“02/12/2018”,4,2)=12.

Kiểu “d/m/yyyy” – “0/0/0000”:

Ví dụ: “12/1/2018” hay “14/2/2018″, lúc này thì số ký tự không cố định, là 2, và vị trí cũng thay đổi, nên chúng ta sẽ áp dụng hàm SUBSTITUTE để lấy ra dữ liệu Ngày và Tháng. Theo đó, mình có công thức:
Tháng: =TRIM(MID(SUBSTITUTE(A2,”/”,REPT(” “,9)),1*9+1,9))

Ngày:=TRIM(MID(SUBSTITUTE(A2,”/”,REPT(” “,9)),0*9+1,9)))

Vì sao có số 9? Bạn đã đọc truyện SUBSTITUTE và 40 tên cướp chưa? ;). Vì sao lại là 0*9+1, kết quả rõ ràng là 0+1 rồi mà. Mình cố tình viết để các bạn có thể thấy rõ hơn, khi chúng ta lấy ra tương ứng với tháng 1*9+1. 0 ở đây là vị trí đầu tiên, 1 là vị trí thứ 2, tương tự nếu cần lấy Năm, thì ta có 2*9.

Cuối cùng chúng ta ghép 3 dữ liệu trên với hàm DATE, thì ta có kết quả như mong muốn rồi phải vậy?

=IFERROR(
DATE(RIGHT(A2,4),TRIM(MID(SUBSTITUTE(A2,”/”,REPT(” “,9)),1*9+1,9)),TRIM(MID(SUBSTITUTE(A2,”/”,REPT(” “,9)),0*9+1,9))),
DATE(YEAR(A2),DAY(A2),MONTH(A2)))

Vậy tại sao còn IFERROR trong công thức trên? Là vì chúng ta sẽ gặp những dữ liệu là Ngày, nhưng được hiểu ngược lại mm/dd. Với những dữ liệu là Ngày, chúng ta có các hàm DAY để lấy ngày, MONTH để lấy tháng, và YEAR để lấy năm. Đơn giản hơn rồi phải không nào?