Mong các bạn giúp hàm tách ngày (1 người xem)

Liên hệ QC

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

mountain84

Thành viên mới
Tham gia
25/12/07
Bài viết
41
Được thích
14
Thân gửi các bạn!

Mình có bảng có 1 cột ghi dữ liệu ngày tháng như kiểu "5/6 - 20/6" hoặc là "2/8 - 18/8/2018" bây giờ mình muốn tách dữ liệu kiểu này ra thành 2 cột - cột ngày 1 thể hiện là ngày 5/6 và ngày 2/8. cột ngày 2 thể hiện là ngày 20/6 và ngày 18/8. Chi tiết như trong File đính kèm.

Rất mong sớm nhận được sự giúp đỡ của các bạn. Chân thành cảm ơn!
 

File đính kèm

1. chọn cả cột A
2. ctrl+h (Find and Replace)
3. Find what: gõ /2018 ; Replace with: để trống; Replace All
3. Find what: gõ " - " (1 dấu cách + 1 dấu trừ + 1 dấu cách) ; Replace with: "-" (chỉ 1 dấu trừ); Replace All
4. Text to columns > chọn delimiter là dấu trừ
5. Format dd/mm

Nếu dùng các phiên bản mới hơn (2013+) thì có thể dùng flash fill thay bước 3 và 4
 
Lần chỉnh sửa cuối:
1. chọn cả cột A
2. ctrl+h (Find and Replace)
3. Find what: gõ /2018 ; Replace with: để trống; Replace All
3. Find what: gõ " - " (1 dấu cách + 1 dấu trừ + 1 dấu cách) ; Replace with: "-" (chỉ 1 dấu trừ); Replace All
4. Text to columns > chọn delimiter là dấu trừ
5. Format dd/mm

Nếu dùng các phiên bản mới hơn (2013+) thì có thể dùng flash fill thay bước 3 và 4
Cảm ơn bạn rất nhiều! mình đã tách được thành 2 cột theo như bạn hướng dẫn rồi! nhưng không biết là có công thức nào để có thể tách dữ liệu kiểu như vậy ra thành 2 cột (ví dụ như dùng hàm leff ; right ; SUBSTITUTE...) không bạn?! Mục đích của mình muốn tách ra thành 2 cột để có thể tính số ngày giữa 2 ngày "5/6 - 20/6" hoặc là "2/8 - 18/8/2018" trừ ngày chủ nhật và mình muốn sử dụng công thức để có thể kéo xuống luôn mà không cần qua nhiều thao tác như khi sử dung Text to columns. Thật sự cảm ơn bạn rất nhiều vì đã quan tâm và trợ giúp mình!
 
Cảm ơn bạn rất nhiều! mình đã tách được thành 2 cột theo như bạn hướng dẫn rồi! nhưng không biết là có công thức nào để có thể tách dữ liệu kiểu như vậy ra thành 2 cột (ví dụ như dùng hàm leff ; right ; SUBSTITUTE...) không bạn?! Mục đích của mình muốn tách ra thành 2 cột để có thể tính số ngày giữa 2 ngày "5/6 - 20/6" hoặc là "2/8 - 18/8/2018" trừ ngày chủ nhật và mình muốn sử dụng công thức để có thể kéo xuống luôn mà không cần qua nhiều thao tác như khi sử dung Text to columns. Thật sự cảm ơn bạn rất nhiều vì đã quan tâm và trợ giúp mình!
muốn substitute có liền:
PHP:
=TRIM(MID(SUBSTITUTE($A2,"-",REPT(" ",100)),1+(COLUMN(A1)-1)*100,100))
 
muốn substitute có liền:
PHP:
=TRIM(MID(SUBSTITUTE($A2,"-",REPT(" ",100)),1+(COLUMN(A1)-1)*100,100))
Cảm ơn bạn rất nhiều! mình đã làm được rồi! nhưng công thức này khi thêm cột hoặc vị trí cột bị thay đổi là bị báo #VALUE! bạn à! mình phát hiện ra là do giá trị -1 ở "(COLUMN(A1)-1)", không biết có cách nào để không bị báo lỗi khi vị trí cột bị thay đổi không bạn?! ngoài ra khi mình không dùng cột phụ để tính số ngày trừ ngày chủ nhật thì nhìn công thức quá dài so với khi dùng cột phụ (như file đính kèm) mình nhờ các bạn xem giúp xem có cách nào để rút gọn công thức được không?! Mình xin cảm ơn các bạn nhiều!
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn bạn rất nhiều! mình đã làm được rồi! nhưng công thức này khi thêm cột hoặc vị trí cột bị thay đổi là bị báo #VALUE! bạn à! mình phát hiện ra là do giá trị -1 ở "(COLUMN(A1)-1)", không biết có cách nào để không bị báo lỗi khi vị trí cột bị thay đổi không bạn?! ngoài ra khi mình không dùng cột phụ để tính số ngày trừ ngày chủ nhật thì nhìn công thức quá dài so với khi dùng cột phụ (như file đính kèm) mình nhờ các bạn xem giúp xem có cách nào để rút gọn công thức được không?! Mình xin cảm ơn các bạn nhiều!
Thử (dùng cho excel>=2010):
(Với giả định cho hệ thống của chủ thớt đã cài mặc định dd/mm/yyyy)
Mã:
B3=NETWORKDAYS.INTL(VALUE(LEFT(A3,FIND("-",A3)-1)),VALUE(MID(A3,FIND("-",A3)+1,10)),11)
Enter fill xuống.

Thân
 
Lần chỉnh sửa cuối:
Thêm hàm date tránh thiết lập ngày tháng kiểu khác anh :D
Anh ghi giả định bài giải dành cho hệ thống của chủ thớt đã cài mặc định dd/mm/yyyy.
Còn người nào có hệ thống khác, muốn nhào nắn để phù hợp theo hệ thống của họ, thì họ tự chế biến lại.

Lâu quá mới thấy em vào.
Chúc em ngày vui.
 
Thử (dùng cho excel>=2010):
(Với giả định cho hệ thống của chủ thớt đã cài mặc định dd/mm/yyyy)
Mã:
B3=NETWORKDAYS.INTL(VALUE(LEFT(A3,FIND("-",A3)-1)),VALUE(MID(A3,FIND("-",A3)+1,10)),11)
Enter fill xuống.

Thân
Chỗ Mid lấy thành 11 ký tự vì có những dòng Tháng có 2 ký tự như từ dòng 31-36 sẽ bị báo lỗi ạ. :)
 
Chỗ Mid lấy thành 11 ký tự vì có những dòng Tháng có 2 ký tự như từ dòng 31-36 sẽ bị báo lỗi ạ. :)
Số 11 đó là đối số (chỉ trừ ngày CN) của hàm NETWORKDAYS.INTL(), chứ không phải của MID() cắt 11 chữ.

Muốn thêm thì đổi số 10 thành 100
=NETWORKDAYS.INTL(VALUE(LEFT(A31,FIND("-",A31)-1)),VALUE(MID(A31,FIND("-",A31)+1,100)),11)

Chắc cũng không ai quá rảnh, hoặc trên mức bình thường để nhập dữ liệu ngày mà để quá nhiều khoảng trắng "lênh đênh" như "bèo dạt mây trôi".
Còn nếu không thì, cứ tự nhiên nhét thêm 'Trim' vào thì cũng xong. Tự 'đâm đầu vào núi' thì tự xử vậy, làm sao chìu cho nỗi, em gái!

Chúc anh em ngày vui.
/-*+//-*+//-*+/
 
Số 11 đó là đối số (chỉ trừ ngày CN) của hàm NETWORKDAYS.INTL(), chứ không phải của MID() cắt 11 chữ.

Muốn thêm thì đổi số 10 thành 100
=NETWORKDAYS.INTL(VALUE(LEFT(A31,FIND("-",A31)-1)),VALUE(MID(A31,FIND("-",A31)+1,100)),11)

Chắc cũng không ai quá rảnh, hoặc trên mức bình thường để nhập dữ liệu ngày mà để quá nhiều khoảng trắng "lênh đênh" như "bèo dạt mây trôi".
Còn nếu không thì, cứ tự nhiên nhét thêm 'Trim' vào thì cụng xong.

Chúc anh em ngày vui.
/-*+//-*+//-*+/
Dạ cho thành 100 cho đẹp cũng được. :D
 
Cảm ơn bạn rất nhiều! mình đã tách được thành 2 cột theo như bạn hướng dẫn rồi! nhưng không biết là có công thức nào để có thể tách dữ liệu kiểu như vậy ra thành 2 cột (ví dụ như dùng hàm leff ; right ; SUBSTITUTE...) không bạn?! Mục đích của mình muốn tách ra thành 2 cột để có thể tính số ngày giữa 2 ngày "5/6 - 20/6" hoặc là "2/8 - 18/8/2018" trừ ngày chủ nhật và mình muốn sử dụng công thức để có thể kéo xuống luôn mà không cần qua nhiều thao tác như khi sử dung Text to columns. Thật sự cảm ơn bạn rất nhiều vì đã quan tâm và trợ giúp mình!
Nghề kiếm cơm của tôi là dữ liệu. Phương pháp tôi chỉ dẫn ở bài #2 là căn bản của kỹ thuật chuẩn hóa dữ liệu.
Khi đặt tay xuống gõ những dòng ở bài ấy là tôi đã biết phương pháp của mình không phù hợp với đa số người trên diễn đàn này. Tuy nhiên, tôi vẫn đưa ra để trao đổi với số ít còn lại, nhìn bảng tính bằng con mắt khác.
 
Mình rất cảm ơn các bạn đã nhiệt tình trợ giúp vấn đề của mình! mình đã làm được theo hướng dẫn của các bạn rồi! mình thấy hàm left, right hoặc mid kết hợp với hàm find để tách dữ liệu hay thật! một lần nữa xin chân thành cảm ơn các bạn rất nhiều!
 
Web KT

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

Back
Top Bottom