Code Tách dữ liệu dựa vào dấu ";" và copy theo dòng

Liên hệ QC

ngoctuyen1995

Thành viên hoạt động
Tham gia
25/4/17
Bài viết
194
Được thích
19
Giới tính
Nữ
Thân chào cả nhà GPEX,

Hiện tại em muốn dùng VBA để tách 01 chuỗi dựa vào dấu ";" và copy xuống dòng ngay dòng tách đó tìm mãi mà vẫn không làm được, mong cả nhà giúp em ạ.

Ví dụ Data em có:
1.Yen;2.Bao;3.Tuyen

thì sẽ tách thành 3 dòng:
Dòng 1: 1.Yen
Dòng 2: 2.Bao
Dòng 3: 3.Tuyen
tương tự tiếp tục tách các dòng còn lại ạ.
Em có đính kèm file và kết quả em làm bằng tay.
Mong cả nhà giúp đỡ, em chân thành cảm ơn ạ.
 

File đính kèm

  • Test.xlsx
    11.7 KB · Đọc: 11
Lần chỉnh sửa cuối:
Thân chào cả nhà GPEX,

Hiện tại em muốn dùng VBA để tách 01 chuỗi dựa vào dấu ";" và copy xuống dòng ngay dòng tách đó tìm mãi mà vẫn không làm được, mong cả nhà giúp em ạ.

Ví dụ Data em có:
1.Yen;2.Bao;3.Tuyen

thì sẽ tách thành 3 dòng:
Dòng 1: 1.Yen
Dòng 2: 2.Bao
Dòng 3: 3.Tuyen
tương tự tiếp tục tách các dòng còn lại ạ.
Em có đính kèm file và kết quả em làm bằng tay.
Mong cả nhà giúp đỡ, em chân thành cảm ơn ạ.
Việc này dùng chức năng Text to Column của Excel được đấy.
 
Upvote 0
Thân chào cả nhà GPEX,

Hiện tại em muốn dùng VBA để tách 01 chuỗi dựa vào dấu ";" và copy xuống dòng ngay dòng tách đó tìm mãi mà vẫn không làm được, mong cả nhà giúp em ạ.

Ví dụ Data em có:
1.Yen;2.Bao;3.Tuyen

thì sẽ tách thành 3 dòng:
Dòng 1: 1.Yen
Dòng 2: 2.Bao
Dòng 3: 3.Tuyen
tương tự tiếp tục tách các dòng còn lại ạ.
Em có đính kèm file và kết quả em làm bằng tay.
Mong cả nhà giúp đỡ, em chân thành cảm ơn ạ.
m code qua ntn, giả sử dữ liệu ở cột A và muốn điền kết quả vào cột B

for i = 1 to dongcuoidl
ar = split(cells(i,1),";")
for j = 0 to ubound(ar)
k = k + 1
cells(k,2) = ar(j)
next
next
 
Upvote 0
cho em hỏi thêm 1 câu nữa ạ, em muốn tô vàng cho kết quả giống sheet kết quả của em thì em sửa code chỗ nào vậy ạ? em cảm ơn anh ạ
Bạn xem file nhé
Chú ý: sau dấu ";" có những trường hợp có khoảng trắng => kết quả đã loại khoảng trắng đó ra rồi nhé
 

File đính kèm

  • Test 1.xlsb
    22.6 KB · Đọc: 15
Upvote 0
Công thức tham khảo. Excel2019
Mã:
=IFERROR(SUBSTITUTE(INDEX(FILTERXML("<m><n>"&SUBSTITUTE(TEXTJOIN(";",1,SUBSTITUTE(Data!$A$2:$A$100,";","|")&";"&Data!$A$2:$A$100),";","</n><n>")&"</n></m>","//n"),ROWS($1:1)),"|",";"),"")
 
Upvote 0
Mình có dữ câu hỏi như bên dưới mong mọi người hỗ trợ. Dữ liệu thực tế lớn hơn nhiều, có điểm trung là ngăn cách nhau bởi dấu phẩy.
xin cảm ơn Capture.PNG
 

File đính kèm

  • Book12.xlsx
    12.5 KB · Đọc: 8
Upvote 0

File đính kèm

  • tách có ĐK (dấu phảy).xlsm
    18.2 KB · Đọc: 12
Upvote 0
code:
PHP:
Option Explicit
Function tachchuoi(cell As Range, r As Long)
tachchuoi = Split(cell.Value, ",")(r - 1)
End Function
Tại D3:
Mã:
=IFERROR(tachchuoi($B$3,ROWS($1:1)),"")
Copy xuống[/php]
 

File đính kèm

  • Book12.xlsm
    17.1 KB · Đọc: 12
Upvote 0
Xin cảm ơn mọi người đã hỗ trợ ạ. Em làm được rồi.
 
Upvote 0
Web KT
Back
Top Bottom