Hỗ trợ code chuyển đổi text to columns

Liên hệ QC

Hoàng Đình Huy

Thành viên mới
Tham gia
24/11/17
Bài viết
26
Được thích
1
Giới tính
Nam
Hi các anh/chị,

Em có bài toán như sau ạ
1630318578810.png

Kết quả mong muốn:
1630318607958.png

Nhờ các anh/chị hỗ trợ giúp em code chuyển đổi với ạ.

(Em gửi file đính kèm ạ)
 

File đính kèm

  • chuyển text columns.xlsx
    9.7 KB · Đọc: 11
Dùng Power Query.
 

File đính kèm

  • chuyển text columns.xlsx
    95.2 KB · Đọc: 7
Upvote 0
Hi các anh/chị,

Em có bài toán như sau ạ
View attachment 265080

Kết quả mong muốn:
View attachment 265081

Nhờ các anh/chị hỗ trợ giúp em code chuyển đổi với ạ.

(Em gửi file đính kèm ạ)
Mã:
Sub ABC()
Dim sArr(), Res(), i&, j&, iR&, Arr, K&
With Sheet1
    iR = .Range("A" & Rows.Count).End(3).Row
    sArr = .Range("A3:B" & iR).Value
End With
ReDim Res(1 To 10000, 1 To 2)
For i = 1 To UBound(sArr, 1)
    Arr = Split(sArr(i, 2), ",")
    For j = 0 To UBound(Arr)
        K = K + 1
        Res(K, 1) = sArr(i, 1)
        Res(K, 2) = Trim(Arr(j))
    Next
Next
With Sheet2
    .Range("C:D").ClearContents
    If K Then .Range("c2").Resize(K, 2).Value = Res
End With
End Sub
Thử code này coi
 
Upvote 0
Mã:
Sub ABC()
Dim sArr(), Res(), i&, j&, iR&, Arr, K&
With Sheet1
    iR = .Range("A" & Rows.Count).End(3).Row
    sArr = .Range("A3:B" & iR).Value
End With
ReDim Res(1 To 10000, 1 To 2)
For i = 1 To UBound(sArr, 1)
    Arr = Split(sArr(i, 2), ",")
    For j = 0 To UBound(Arr)
        K = K + 1
        Res(K, 1) = sArr(i, 1)
        Res(K, 2) = Trim(Arr(j))
    Next
Next
With Sheet2
    .Range("C:D").ClearContents
    If K Then .Range("c2").Resize(K, 2).Value = Res
End With
End Sub
Thử code này coi
Chỗ .End(3).Row thì chỉ số trong ngoặc theo trật tự nào vậy bạn. Theo bài này thì tôi suy ra 3 = xlUp, còn các cái khác?
 
Upvote 0

File đính kèm

  • Tách nhiều dòng.xlsm
    19.2 KB · Đọc: 7
Upvote 0
Dạ. em theo quy luật là : Trái-phải-lên- xuống = 1-2-3-4 ạ
Các tác giả phần mềm khác nhau lại đưa ra các trật tự khác nhau làm người dùng rối, không nhớ trật tự nào để dùng nếu không mất công search hoặc thử. Như trong css thì 4 chỉ số lần lượt chạy theo kim đồng hồ bắt đầu từ Top - Right - Bottom - Left...
Còn đây lại trái - phải - lên - xuống.
 
Upvote 0
Các tác giả phần mềm khác nhau lại đưa ra các trật tự khác nhau làm người dùng rối, không nhớ trật tự nào để dùng nếu không mất công search hoặc thử. Như trong css thì 4 chỉ số lần lượt chạy theo kim đồng hồ bắt đầu từ Top - Right - Bottom - Left...
Còn đây lại trái - phải - lên - xuống.
Hihi. Thực ra là em học vẹt thôi. chứ cũng chẳng theo cái gì gọi là định nghĩa cả. tại em cứ đọc trái phải lên xuống nó tiện miệng. và số nó tăng dần.nên chắc quen đọc thế. cũng ít thấy người dùng cái số kiểu này. có vài người trên diễn đàn cũng dùng cái này.viết số thế sẽ bớt được 1 xíu thời gian. hìhi
 
Upvote 0
Hihi. Thực ra là em học vẹt thôi. chứ cũng chẳng theo cái gì gọi là định nghĩa cả. tại em cứ đọc trái phải lên xuống nó tiện miệng. và số nó tăng dần.nên chắc quen đọc thế. cũng ít thấy người dùng cái số kiểu này. có vài người trên diễn đàn cũng dùng cái này.viết số thế sẽ bớt được 1 xíu thời gian. hìhi
Tôi chỉ muốn nói mấy ông lớn phần mềm thôi. Hình như có nhiều thứ nữa lại khác 2 trật tự đã nói. => Rối.
 
Upvote 0
vâng. nếu không bận mải gì. thì có lẽ viết rõ ràng là xlup, xldown... là nhìn dễ hiểu nhất ạ
Khi nhìn vào tên của hằng số thôi là đã có chút khái niệm, ý nghĩa của hằng số rồi. Trong vd. system Windows các vd. Windows Message WM_*** có rất nhiều có cùng giá trị. Nếu dùng giá trị thì nhìn vào con số chả có khái niệm gì cả. Con số chỉ là con số. Nhưng nhìn vào vd. WM_CLOSE là tôi đã có chút khái niệm rồi. Những code toàn con số, hàng chục hàng trăm con số, đọc rất mệt.

Nhiều người có vẻ hàng ngày dùng nên nhớ, họ viết code họ dùng con số. Thói quen xấu không nên học. Kệ họ.
 
Upvote 0
Khi nhìn vào tên của hằng số thôi là đã có chút khái niệm, ý nghĩa của hằng số rồi. Trong vd. system Windows các vd. Windows Message WM_*** có rất nhiều có cùng giá trị. Nếu dùng giá trị thì nhìn vào con số chả có khái niệm gì cả. Con số chỉ là con số. Nhưng nhìn vào vd. WM_CLOSE là tôi đã có chút khái niệm rồi. Những code toàn con số, hàng chục hàng trăm con số, đọc rất mệt.

Nhiều người có vẻ hàng ngày dùng nên nhớ, họ viết code họ dùng con số. Thói quen xấu không nên học. Kệ họ.
Dạ. Cháu cũng biết là nên viết rõ ràng ra là điều tốt nhất. Nhiều khi theo thói quen. Và thêm chút lười. Sẽ cố gắng sửa ạ. Cám ơn chú
 
Upvote 0
Hi các anh/chị,

Em có bài toán như sau ạ
View attachment 265080

Kết quả mong muốn:
View attachment 265081

Nhờ các anh/chị hỗ trợ giúp em code chuyển đổi với ạ.

(Em gửi file đính kèm ạ)
Mã nhóm:
=IFERROR(IF(COUNTIF(A$7:A7,A7)<INDEX(LEN(B$1:B$4)-LEN(SUBSTITUTE(B$1:B$4,",",""))+1,MATCH(A7,A$1:A$4,0)),A7,INDEX(A$1:A$4,MATCH(A7,A$1:A$4,0)+1)),"")
Mã SP:
=IFERROR(TRIM(MID(SUBSTITUTE(INDEX(B$2:B$4,MATCH(A8,A$2:A$4,0)),",",REPT(" ",99)),COUNTIF(A$8:A8,A8)*99-98,99)),"")
 

File đính kèm

  • chuyển text columns.xlsx
    13.3 KB · Đọc: 5
Upvote 0
Web KT
Back
Top Bottom