Thanks bạn! nhưng dữ liệu mình nhận từ nơi khác về là kiểu General khi vào format cell.. --> custom để định dang theo kiểu ngày tháng nhưng vẫn không được như bạn nói, nó vẫn là bên trái (text như bạn nói) minh cũng thay đổi định dạng ngày tháng cả trong control panel vẫn không thấy được.
du sao cung thanks.
Bạn và nhiều người phạm một sai lầm - không hiểu, không phân biệt được KIỂU dữ liệu nhập vào và KIỂU, ĐỊNH DẠNG HIỂN THỊ. Đây là 2 vấn đề khác nhau.
Dữ liệu bạn nhập vào như thế nào là như thế đó. Đôi khi có thể dùng hàm convert để chuyển Text thành Date nhưng text ấy cũng phải có dạng đúng, không tùy ý được. Format - như tên của nó chỉ ra - chỉ làm nhiệm vụ ĐỊNH DẠNG HIỂN THỊ mà thôi. Nói nôm na là: thêm áo, mũ, giầy, kính, tô son trát phấn để hiển hiện cho người dùng nhìn. FORMAT chứ đâu là CONVERT? Kiểu dữ liệu ban đầu thế nào thì vẫn là thế, Format là thay đổi
cách hiển thị chứ không phải thay đổi
kiểu dữ liệu.
Bạn muốn có bé trai thì bạn phải "tạo" ra bé trai. Nếu bạn "tạo" ra bé gái rồi dùng Format bằng cách: cắt tóc ngắn, mặc quần đũng lửng, đeo súng, chơi ô tô thì bạn cũng chỉ thay đổi cách "hiển thị" cho bàn dân thiên hạ nhìn mà thôi. Bé gái vẫn là bé gái, nếu chỉ cho bàn dân thiên hạ nhìn thì cứ Format như trên, nhưng đến lúc cần thi "
đái vượt ngọn cỏ" (tức khi cần cộng trừ ngày tháng) thì mới có vấn đề, mới lòi cái sai ra. Vì bé gái vẫn là bé gái mà.
Tóm lại: bạn hãy Format như thế nào mà bạn muốn nhìn nhưng nếu dữ liệu là Date thì bạn phải nhập đúng. vd. 2012-03-06 0:05 (tùy thiết lập) chứ không thể nhập Mar 6 2012 12:05 AM được.
Bây giờ nếu dữ liệu đã sai thì không có cách nào "tốt" cả. Cách của bạn Thương cũng chỉ là cách giải quyết trường hợp cụ thể. Vì sao?
1. Hiện có trong công thức vd. LEFT(REPLACE(A2;4;3;"-");10). 10 vì sau Mar có 2 dấu cách (sau 2012 cũng thế). Nhưng trong dữ liệu thực có thể có chỗ có 2 dấu cách có chỗ có 1 dấu. Copy công thức rồi nhìn kỹ cái nào có 1, 2, 3, 4 dấu cách rồi sửa?
2. MID(TRIM(A2);4;3). Cũng như trên vd. sau Mar có chỗ có 2 dấu cách và ngày có 2 chữ số? Thì mất chữ số thứ hai. Copy công thức rồi nhìn kỹ cái nào có 1, 2, 3, 4 dấu cách rồi sửa.
3. Thế nếu có chỗ là Mar có chỗ là March thì sao? Người nhập dữ liệu đã cẩu thả hoặc dán từ văn bản khác vào thì mọi khả năng có thể sẩy ra chứ?
4. Một ngày đẹp trời nào đấy ta muốn dùng các ô ngày tháng cho một tính toán khác, vd. lọc, thì lại dầy công xây dựng một công thức rồng rắn lên mây?
Mà hiện công thức chưa chính xác. Nếu dữ liệu là 2012-03-06 12:05 AM và 2012-03-09 11:55 PM thì 2 thời điểm cách nhau ~3,99 ngày trong khi công thức cho 3 ngày. Sai số đáng kể (~25 %)
Với mỗi công thức phải copy rồi nếu không đúng thì lại phải dò tìm và đếm dấu cách để sửa công thức thì theo tôi nhập lại ngày tháng lại khoẻ và nhanh hơn. Nhất là khi
một ngày đẹp trời nào đấy ta lại muốn dùng hàm nào đó để loại khoảng trống thừa trong vùng có cả ngày tháng kia. Lúc đó thì các công thức dầy công tu sửa ngày nào đi ... teo.
Khi dữ liệu đã sai thì sửa lại khổ lắm, và nhiều khi nhập lại còn nhanh hơn là tìm cách "xoay sở".
Khi dữ liệu nhập sai thì tốt nhất là sửa dữ liệu cho đúng chứ không phải là tìm cách "tránh nó". Mụn có phủ lớp che đậy thì dưới lớp che đậy đó vẫn là mụn nhọt âm ỉ