Tách dòng nhiều text thành nhiều cột (text to columns)

Liên hệ QC

hungthinh3010

Thành viên mới
Tham gia
21/12/14
Bài viết
3
Được thích
1
Em có một file giữ liệu kiểu như giỏ hàng bao gồm nhiều mã sản phẩm trong cùng 1 ô ngăn cách nhau bằng dấu ;

VD: BLAA1-L; ATBD1-XL hồng; BDAA1-S; BDAA5-L; HIBD1; DHAA3

Em muốn tách các dòng trên thành 6 cột thứ tự là BLAA1-L ATBD1-XL hồng BDAA1-S BDAA5-L HIBD1 DHAA3 mà sử dụng công thức để tự động tách chứ không dùng thao tác để nhập vô như ví dụ là máy tính tự động tách ra luôn. Tại em muốn bỏ để anh em phòng sale nhập liệu online trên offile live luôn nhưng sợ phải dùng VBA, nếu cao thủ có công thức thì cứ bày em nha, còn dùng VBA cũng được ạ :)

Cảm ơn mọi người /-*+/
 
Lần chỉnh sửa cuối:
record marco đoạn text to column lại chắc là ok thôi.
bạn up file lên xem sao.
 
File nhé, Thịnh muốn nhập vào ô mô tả sản phẩm là nó tự xuất ra kết quả xuất nha :) Vì Thịnh nhập rất nhiều dòng như thế và cũng không có cố định bao nhiêu cột cả (từ 1 đến 30 cột)
 

File đính kèm

Cái này phải dùng tới hàm tự tạo, tôi cũng chưa có cahcs, đợi các thành viên khác xem thế nào.
 
Chúng ta có thể rút gọn code thành thế này
Function TachChuoi(chuoi As String, cot As Long) As String
Tachcot = Split(chuoi, ";")(cot)
End Function

Tên hàm viết nhầm. Nhưng đấy chỉ là lỗi gõ phím. Lỗi chỉ số cột mới là quan trọng:
Tachcot = Split(chuoi, ";")(cot-1) ...... Hoặc là
Tachcot = Split(";" & chuoi, ";")(cot)
 
Chúng ta có thể rút gọn code thành thế này
và cũng không có cố định bao nhiêu cột cả (từ 1 đến 30 cột)
Vì dữ liệu không cố định bao nhiêu cột, nên nếu rút gọn, bỏ hàm IF thì khi kéo công thức, số cột lớn hơn số phần tử trong mảng sẽ báo lỗi #VALUE!
Trong code bài 7, dư "Dim I As Integer"
Thân!
 
Vì dữ liệu không cố định bao nhiêu cột, nên nếu rút gọn, bỏ hàm IF thì khi kéo công thức, số cột lớn hơn số phần tử trong mảng sẽ báo lỗi #VALUE!
Trong code bài 7, dư "Dim I As Integer"
Thân!

Vậy thử code này xem sao

Mã:
Function Tachcot(chuoi As String, cot As Long) As String
Tachcot = Split(chuoi & String(100, ";"), ";")(cot - 1) 
End Function
 
File nhé, Thịnh muốn nhập vào ô mô tả sản phẩm là nó tự xuất ra kết quả xuất nha :) Vì Thịnh nhập rất nhiều dòng như thế và cũng không có cố định bao nhiêu cột cả (từ 1 đến 30 cột)
Cho code này vào 1 module
Tại B2 nhập =IFERROR(tach($A2,";",COLUMN(A:A)),"")
Nếu kết quả đúng thì kéo công thức đi cả xóm, nếu trật thì coi như Happy New Year
PHP:
Function tach(Rng As String, Delimiter As String, Col As Long) As String
tach = Trim(Split(Rng, Delimiter)(Col - 1))
End Function
 
File nhé, Thịnh muốn nhập vào ô mô tả sản phẩm là nó tự xuất ra kết quả xuất nha :) Vì Thịnh nhập rất nhiều dòng như thế và cũng không có cố định bao nhiêu cột cả (từ 1 đến 30 cột)
Dạ cho em hỏi excel của em không hiển thị hàm tach thì phải làm sao ạ?
Mong nhận phản hồi
Em cảm ơn.
Bài đã được tự động gộp:

Thử hàm tự tạo này xem sao.
Dạ cho e hỏi excel của em chưa có hàm tach thì phải làm sao ạ?
em cảm ơn.
 
Web KT

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

Back
Top Bottom