Tách các dữ liệu trong một ô thành nhiều dòng. (1 người xem)

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

tranduyenit

Thành viên mới
Tham gia
15/3/17
Bài viết
17
Được thích
1
Xin chào cả nhà!
Tình hình là em có một file excel sau nhờ mọi người giúp đỡ.
Hiện em đang có nhiều dữ liệu chứa tại trong một ô được cách nhau bằng phím cách. Giờ em muốn nó được tách riêng các dữ liệu trong đó ra thành từng dòng trong 1 cột riêng biệt.
Cả nhà giúp em với. Em xin cảm ơn nhiều ạ.
tachdl.JPG
 

File đính kèm

.........................
 

File đính kèm

Befaint và mợi người ơi!
Bây giờ tớ muốn nó xuất ra được như sau thì phải làm ntn? Giúp tớ với!

Capture.JPG
 

File đính kèm

Befaint và mợi người ơi!
Bây giờ tớ muốn nó xuất ra được như sau thì phải làm ntn? Giúp tớ với!
Mã:
Sub TachTT()
Dim DL() As Variant, z As Long, r As Long, KQ() As Variant, j As Long
Dim chuoi As Variant, tmp As Variant, i As Long, PN As Variant, iPN As Long
With Sheet1
z = .Range("A" & .Rows.Count).End(xlUp).Row
DL = .Range("A4:B" & z): z = UBound(DL, 1)
ReDim KQ(1 To 65000, 1 To 2)
For r = 1 To z
    chuoi = DL(r, 2)
    If chuoi <> Empty Then
        chuoi = WorksheetFunction.Trim(chuoi)
        tmp = Split(chuoi, " ")
        For i = 0 To UBound(tmp)
            j = j + 1
            KQ(j, 1) = tmp(i)
            PN = Replace((DL(r, 1)), " ", "")
            If IsNumeric(Right(PN, 1)) = False Then iPN = 0 Else iPN = Right(PN, 1)
            KQ(j, 2) = Left(PN, Len(PN) - 1) & iPN + i
        Next i
        Erase tmp
    End If
Next r
If j Then
    .Range("C4").Resize(65000, 2).ClearContents
    .Range("C4").Resize(j, 2) = KQ
End If
End With
End Sub
 
Mã:
Sub TachTT()
Dim DL() As Variant, z As Long, r As Long, KQ() As Variant, j As Long
Dim chuoi As Variant, tmp As Variant, i As Long, PN As Variant, iPN As Long
With Sheet1
z = .Range("A" & .Rows.Count).End(xlUp).Row
DL = .Range("A4:B" & z): z = UBound(DL, 1)
ReDim KQ(1 To 65000, 1 To 2)
For r = 1 To z
    chuoi = DL(r, 2)
    If chuoi <> Empty Then
        chuoi = WorksheetFunction.Trim(chuoi)
        tmp = Split(chuoi, " ")
        For i = 0 To UBound(tmp)
            j = j + 1
            KQ(j, 1) = tmp(i)
            PN = Replace((DL(r, 1)), " ", "")
            If IsNumeric(Right(PN, 1)) = False Then iPN = 0 Else iPN = Right(PN, 1)
            KQ(j, 2) = Left(PN, Len(PN) - 1) & iPN + i
        Next i
        Erase tmp
    End If
Next r
If j Then
    .Range("C4").Resize(65000, 2).ClearContents
    .Range("C4").Resize(j, 2) = KQ
End If
End With
End Sub
nếu ô A6 là 67308-1248 thì hơi mệt !$@!!
chúc bạn một ngày vui }}}}}
 
Kệ chứ anh --=0--=0

Chúc anh tối vui!

Sao "Kệ" được ta?
67308-1248
67308-1249
67308-12410
67308-12411

Chạy "thí thí" cái này vậy. "Đúng Sai là sự thật"
PHP:
Public Sub GPE()
Dim sArr(), dArr(1 To 1000, 1 To 2), i As Long, j As Long, Num As Long, K As Long, Txt As String, Tmp
sArr = Range("A4", Range("B4").End(xlDown)).Value
For i = 1 To UBound(sArr)
    K = K + 1: dArr(K, 2) = sArr(i, 1): dArr(K, 1) = Split(sArr(i, 2), " ")(0)
    sArr(i, 2) = Trim(sArr(i, 2))
    If InStr(sArr(i, 2), " ") Then
        Txt = Left(sArr(i, 1), InStr(sArr(i, 1), "-"))
        Num = Val(Mid(sArr(i, 1), InStr(sArr(i, 1), "-") + 1, 10))
        Tmp = Split(sArr(i, 2), " ")
        For j = 1 To UBound(Tmp)
            K = K + 1: Num = Num + 1
            dArr(K, 2) = Txt & Num
            dArr(K, 1) = Tmp(j)
        Next j
    End If
Next i
Range("F4").Resize(K, 2) = dArr
End Sub
 
Lần chỉnh sửa cuối:

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

Back
Top Bottom