Tách 1 ô thành nhiều ô

Liên hệ QC

phucnguyen1993

Thành viên mới
Tham gia
20/11/18
Bài viết
48
Được thích
7
Dear các anh chị, em có file dữ liệu như đính kèm, hiện e liên tục làm việc với dữ liệu như vậy, dữ liệu nhiều mà mỗi cứ copy paste từng ô 1 rồi dán ra nhiều ô rất lâu ạ, anh/chị có phương pháp nào giúp em với ạ. ( Em excel kém :(( , hjx )
Em xin chân thành cảm ơn ạ
em gửi file đính kèm như bên dưới. Thanks
 

File đính kèm

  • tach 1 ô thanh nhiều ô.xlsx
    9.5 KB · Đọc: 32
Dear các anh chị, em có file dữ liệu như đính kèm, hiện e liên tục làm việc với dữ liệu như vậy, dữ liệu nhiều mà mỗi cứ copy paste từng ô 1 rồi dán ra nhiều ô rất lâu ạ, anh/chị có phương pháp nào giúp em với ạ. ( Em excel kém :(( , hjx )
Em xin chân thành cảm ơn ạ
em gửi file đính kèm như bên dưới. Cảm ơn
 
Dear các anh chị, em có file dữ liệu như đính kèm, hiện e liên tục làm việc với dữ liệu như vậy, dữ liệu nhiều mà mỗi cứ copy paste từng ô 1 rồi dán ra nhiều ô rất lâu ạ, anh/chị có phương pháp nào giúp em với ạ. ( Em excel kém :(( , hjx )
Em xin chân thành cảm ơn ạ
em gửi file đính kèm như bên dưới. Cảm ơn
Bạn thử:
PHP:
Sub Test()
    Dim DL, KQ, i&, j&, k&, Sp
    ReDim KQ(1 To Rows.Count, 1 To 2)
    With Sheet1
        DL = .Range("A1:B20")
        For i = 1 To UBound(DL)
            Sp = Split(DL(i, 2), ",")
            For j = LBound(Sp) To UBound(Sp)
                k = k + 1
                KQ(k, 1) = DL(i, 1)
                KQ(k, 2) = Sp(j)
            Next
        Next
    End With
    Sheet1.Range("C24").Resize(k, 2) = KQ
End Sub
 
Dear các anh chị, em có file dữ liệu như đính kèm, hiện e liên tục làm việc với dữ liệu như vậy, dữ liệu nhiều mà mỗi cứ copy paste từng ô 1 rồi dán ra nhiều ô rất lâu ạ, anh/chị có phương pháp nào giúp em với ạ. ( Em excel kém :(( , hjx )
Em xin chân thành cảm ơn ạ
em gửi file đính kèm như bên dưới. Cảm ơn
Bạn dùng Text to Columns kết hợp Pivot Wizard (Alt+D+P) sẽ nhanh thôi
 
Bạn thử:
PHP:
Sub Test()
    Dim DL, KQ, i&, j&, k&, Sp
    ReDim KQ(1 To Rows.Count, 1 To 2)
    With Sheet1
        DL = .Range("A1:B20")
        For i = 1 To UBound(DL)
            Sp = Split(DL(i, 2), ",")
            For j = LBound(Sp) To UBound(Sp)
                k = k + 1
                KQ(k, 1) = DL(i, 1)
                KQ(k, 2) = Sp(j)
            Next
        Next
    End With
    Sheet1.Range("C24").Resize(k, 2) = KQ
End Sub
cám ơn Pro nhiều lắm ạ, từ giờ tiết kiệm được khối thời gian ^^, thanks nhiều ạ
 
Nếu Sp có bao nhiêu dữ liệu bao nhiêu dấu phẩy thì tách ra bao nhiêu cột thì code điều chỉnh sao bạn
Dữ liệu trước khi tách
PRE008​
Add more 1 Antenna, Remove 1 Antenna, Remove 1 RRU​
PRE038​
Add more 1 Antenna, Remove 1 Antenna​
PRE048​
Add more Cosite​
SVA010​
Add more 1 Antenna, Remove 1 Antenna, Remove 1 RRU​

Dữ liệu sau khi tách
PRE008​
Add more 1 Antenna​
Remove 1 Antenna​
Remove 1 RRU​
PRE038​
Add more 1 Antenna​
Remove 1 Antenna​
PRE048​
Add more Cosite​
SVA010​
Add more 1 Antenna​
Remove 1 Antenna​
Remove 1 RRU​
 
Nếu Sp có bao nhiêu dữ liệu bao nhiêu dấu phẩy thì tách ra bao nhiêu cột thì code điều chỉnh sao bạn
Dữ liệu trước khi tách
PRE008​
Add more 1 Antenna, Remove 1 Antenna, Remove 1 RRU​
PRE038​
Add more 1 Antenna, Remove 1 Antenna​
PRE048​
Add more Cosite​
SVA010​
Add more 1 Antenna, Remove 1 Antenna, Remove 1 RRU​
Dữ liệu sau khi tách
PRE008​
Add more 1 Antenna​
Remove 1 Antenna​
Remove 1 RRU​
PRE038​
Add more 1 Antenna​
Remove 1 Antenna​
PRE048​
Add more Cosite​
SVA010​
Add more 1 Antenna​
Remove 1 Antenna​
Remove 1 RRU​



Tham khảo:
PHP:
Sub Test2()
    Dim Cll As Range, Sp, i%
    For Each Cll In Range("A1:B" & Range("B" & Rows.Count).End(xlUp).Row)
        If Len(Cll) <> 0 Then
                Sp = Split(Cll, ",")
                For i = LBound(Sp) To UBound(Sp)
                    Cells(Cll.Row + 22, Columns.Count).End(xlToLeft).Resize(, 2).Value = Sp(i)
                Next i
        End If
   Next
End Sub
 
Lần chỉnh sửa cuối:
Tham khảo:
PHP:
Sub Test2()
    Dim Cll As Range, Sp, i%
    For Each Cll In Range("A1:B" & Range("B" & Rows.Count).End(xlUp).Row)
        If Len(Cll) <> 0 Then
                Sp = Split(Cll, ",")
                For i = LBound(Sp) To UBound(Sp)
                    Cells(Cll.Row + 22, Columns.Count).End(xlToLeft).Resize(, 2).Value = Sp(i)
                Next i
        End If
   Next
End Sub
hì thanks pro, nhung minh muôn du lieu chi trai dai tren 1 cot thoi ạ, cam on ban nhieu :)
 
hì Cảm ơn pro, nhung minh muôn du lieu chi trai dai tren 1 cot thoi ạ, cam on ban nhieu :)
Góp ý cho bạn:
1/ Muốn như thế nào thì phải có 1 sheet kết quả để người giúp xem và hiểu thì mới chuẩn được.
2/ Cần đọc lại nội quy để tránh vi phạm.

A_Noiquy.GIF
 
kết quả như cái phần mình tô xanh đúng không bạn
 

File đính kèm

  • tach 1 ô thanh nhiều ô.xlsx
    10.3 KB · Đọc: 10
Web KT

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

Back
Top Bottom