Công thức ngày tháng năm khi dữ liệu kết xuất về nhiều định dạng? (1 người xem)

  • Thread starter Thread starter hitlecp
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

hitlecp

Thành viên hoạt động
Tham gia
17/5/10
Bài viết
153
Được thích
14
Chào các anh, chị
Anh, chị giúp em công thức ở cột B cho kết quả theo ngày/tháng/năm lấy từ cột A. Mà cột A này là dữ liệu được kết xuất từ hệ thống xuống nên dữ liệu ngày tháng năm không theo thống nhất. Nên nhờ anh chị có công thức nào để cho về kết quả như ở cột B
(Em có đính kèm file)
Em cám ơn!
 

File đính kèm

Chào các anh, chị
Anh, chị giúp em công thức ở cột B cho kết quả theo ngày/tháng/năm lấy từ cột A. Mà cột A này là dữ liệu được kết xuất từ hệ thống xuống nên dữ liệu ngày tháng năm không theo thống nhất. Nên nhờ anh chị có công thức nào để cho về kết quả như ở cột B
(Em có đính kèm file)
Em cám ơn!
Bạn tham khảo..
 

File đính kèm

công thức về định dạng là ngày tháng năm được không anh ạ? vì công thức đang chạy là kiểu tháng trước ngày sau rồi ạ
ví dụ như:
- công thức chạy là: 01/12/2021 trong khi đúng phải là: 12/01/2021
- công thức chạy là: 21-01-21 trong khi đúng phải là: 21/01/2021
Nhờ anh giúp em ạ.
Vậy mẫu ở cột B của bạn cũng sai à.
Bạn cho kết quả mong muốn bằng tay cụ thể vào file xem thế nào nhé.
 
Mình đoan là chỉ có thể làm bằng tay thôi, nếu không muốn cột dữ liệu này sẽ là đống rác
 
Mình đoan là chỉ có thể làm bằng tay thôi, nếu không muốn cột dữ liệu này sẽ là đống rác
vậy không chạy công thức định dạng ngày/tháng/năm được hả anh? vì dữ liệu kết xuất từ hệ thống xuống mặt định ngày tháng năm lung tung như vậy ạ
Bài đã được tự động gộp:

công thức cho chạy theo định dạng là: ngày/tháng/năm được không ạ?
Ví dụ:
- công thức đang chạy là: 01/12/2021 trong khi đúng phải là: 12/01/2021
- công thức đang chạy là: 13-01-21 trong khi đúng phải là: 13/01/2021
 
Vậy mẫu ở cột B của bạn cũng sai à.
Bạn cho kết quả mong muốn bằng tay cụ thể vào file xem thế nào nhé.
da, kết quả mong muốn như vậy ạ:

01/12/2021 13:21​
01/12/2021​
Kết quả mong muốn
01/12/2021 13:50​
01/12/2021​
12/01/2021​
01/12/2021 15:23​
01/12/2021​
12/01/2021​
01/12/2021 15:36​
01/12/2021​
12/01/2021​
01/12/2021 15:51​
01/12/2021​
12/01/2021​
01/13/2021 07:19:22​
13-01-21​
13/01/2020​
01/13/2021 09:19:30​
13-01-21​
13/01/2020​
01/13/2021 09:19:30​
13-01-21​
13/01/2020​
 
da, kết quả mong muốn như vậy ạ:

01/12/2021 13:21​
01/12/2021​
Kết quả mong muốn
01/12/2021 13:50​
01/12/2021​
12/01/2021​
01/12/2021 15:23​
01/12/2021​
12/01/2021​
01/12/2021 15:36​
01/12/2021​
12/01/2021​
01/12/2021 15:51​
01/12/2021​
12/01/2021​
01/13/2021 07:19:22​
13-01-21​
13/01/2020​
01/13/2021 09:19:30​
13-01-21​
13/01/2020​
01/13/2021 09:19:30​
13-01-21​
13/01/2020​
Bạn trưa trả lời về kết quả mẫu ở cột B.
 
Bạn muốn đổi tất cả tháng thành ngày và ngày thành tháng?

Mã:
=IFERROR(DATE(YEAR(A2),DAY(A2),MONTH(A2))+MOD(A2,1),DATE(--MID(A3,7,4),--LEFT(A3,2),--MID(A3,4,2))+RIGHT(A3,8))
 
Cột H là đúng kết quả mong muốn rồi anh ạ. Vậy cột A là mình phải Text Column ra hả anh?
Tôi sử dụng text to columns để tách Ngày tháng năm thành 1 cột, giờ phút giây ra thành 1 khác và định dạng kiểu text hết, sau đó sử dụng hàm date xử 1 phát là xong.
 

File đính kèm

Chào các anh, chị
Anh, chị giúp em công thức ở cột B cho kết quả theo ngày/tháng/năm lấy từ cột A. Mà cột A này là dữ liệu được kết xuất từ hệ thống xuống nên dữ liệu ngày tháng năm không theo thống nhất. Nên nhờ anh chị có công thức nào để cho về kết quả như ở cột B
(Em có đính kèm file)
Em cám ơn!
Dùng cho những máy tính có ngày tháng hệ thống theo Việt Nam hay Mỹ cũng được
B2 =IF(MID(1/2,2,1)=",",IFERROR(DATEVALUE(MID(A2,4,3)&MID(A2,1,3)&MID(A2,7,4))+TIMEVALUE(MID(A2,12,8)),DATEVALUE(TEXT(A2,"m/d/yyyy"))+MOD(A2,1)),IFERROR(DATEVALUE(A2)+TIMEVALUE(A2),DATEVALUE(TEXT(A2,"d/m/yyyy"))+MOD(A2,1)))
Copy xuống
 

File đính kèm

Dữ liệu "xuất từ hệ thống" gì mà như hạch.
Thông thường thì bên xuất dữ liệu giao cho người ta phải cố gắng làm cho đúng chuẩn, đúng thoả ước giao diện. Nếu khống đúng thì bên nhận sẽ chê bên giao là dỏm.
Ngược lại, có những cơ quan bên nhận dữ liệu không dám để cho bên kia thấy là mình không biết xử lý dữ liệu phức tạp nên ngậm đắng nuốt cay đi mò cách giải.

Phân tích:
Dữ liệu đúng là ngày tháng chuẩn Âu thì nó ở dạng số.
Dữ liệu đúng là ngày tháng ở dạng Mẽo thì nó ở dạng chuỗi.
Giải thuật:
- dùng hàm IsNumber để xét, nếu nó là số thì để yên
- nếu là chuỗi thì dùng hàm replace (2 lần) để chuyển vị ngày và tháng. Kế đó dùng hàm Datevalue để dổi nó thành date. Nếu cần giờ thì cộng thêm hàm Timevalue
 
Dữ liệu đúng là ngày tháng chuẩn Âu thì nó ở dạng số.
Dữ liệu đúng là ngày tháng ở dạng Mẽo thì nó ở dạng chuỗi.
Giải thuật:
- dùng hàm IsNumber để xét, nếu nó là số thì để yên
- nếu là chuỗi thì dùng hàm replace (2 lần) để chuyển vị ngày và tháng. Kế đó dùng hàm Datevalue để dổi nó thành date. Nếu cần giờ thì cộng thêm hàm Timevalue
Vì nhìn ngày tăng dần nên đoán được toàn bộ là dạng US hết.
Bài này dễ vì tất cả đều dạng US. Nên hoán chuyển tháng và ngày là xong.
Ngán nhất là trộn lẫn US và EU, lúc đó người chủ phải tự xác định, ví dụ: 10/12/2021 là tháng mấy, sau đó phải xét tháng>13 để chuyển sang ngày.
 
...Ngán nhất là trộn lẫn US và EU, lúc đó người chủ phải tự xác định, ví dụ: 10/12/2021 là tháng mấy, sau đó phải xét tháng>13 để chuyển sang ngày.
Nếu không thể nhất định được là dạng nào thì chả có gì khó cả. Bỏ hết, chỉ giữ năm thôi. Vì ngày tháng của loại dữ liệu này không thể tin cậy. Dữ liệu không thể tin cậy thì tất cả các thông tin từ nó đều là rác rưởi.

Thực ra, ở bài #20 tôi đã nhầm khi đọc mấy dòng đầu trong file. Cứ ngỡ những ngày ấy là chuẩn.
Xem kỹ lại thì có lẽ do bên xuất đưa dữ liệu dạng text. Bên nhập cứ nhập vào Excel cho nên xảy ra cớ sự cái nào đọc được như ngày thì là ngày, cái nào không đọc được thì thành text.

Loiaj bài này thì cách tốt nhất là dùng cột phụ (*1).
Bên cột phụ, dùng hàm
1618649346664.png
Bên cột kết quả, dùng hàm
1618649393608.png

(*1) Những trường dạy Excel hay dạy học trò tránh dùng cột phụ để vận dụng công thức hiểm ác.
Xét ra, khi dạy bỏ qua cột phụ là do họ không biết nhiệm vụ thứ hai của cột phụ.
Cột phụ có hai nhiệm vụ chính:
1. giúp hoàn thành những trường hợp "khủng"
Nhiệm vụ này ở GPE thường có thể lướt qua với công thức khủng.
2. giúp kiểm soát mức độ chuẩn của dữ liệu trước khi đi vào kết quả.
Nhiệm vụ này ở GPE gần như không bao giờ nghe nói tới.
Dân GPE có thói quen dùng mánh khoé bẫy lỗi để xử lý dữ liệu không chuẩn. Hậu quả là người dùng chỉ nhận được kết quả nhưng không hề biết những chỗ nào thật sự dữ liệu được "lướt qua".
 
Lần chỉnh sửa cuối:

Bài viết mới nhất

Back
Top Bottom