Tách dữ liệu trong 01 ô (dòng) ra thành nhiều dòng!

Liên hệ QC
Tách dữ liệu trong ô 1 ô thành nhiều dòng

Em nhờ các cao thủ tách giúp em file này. Dùng được VBA thì càng tốt. Nội dung:

Cần tách dữ liệu ở những ô cột C,D,E,G (Những ô cần tách em bôi vàng điển hình vài ô) trong sheet "Bang doc" các dữ liệu cách nhau bởi dấu "+"
Làm sao mà ta được đáp án như sheet "Bang doc 2"

Em xin chân thành cám ơn!
 
Lần chỉnh sửa cuối:
Em nhờ các cao thủ tách giúp em file này. Dùng được VBA thì càng tốt. Nội dung:

Cần tách dữ liệu ở những ô cột C,D (Những ô cần tách em bôi vàng điển hình vài ô) trong sheet "Bang doc" các dữ liệu cách nhau bởi dấu "+"
Làm sao mà ta được đáp án như sheet "Bang doc 2"

Em xin chân thành cám ơn!
PHP:
Sub abc()
Dim data(), Res(1 To 65536, 1 To 11), i, j, k, tam3, tam4
data = Sheet1.Range(Sheet1.[A7], Sheet1.[D65536].End(3).Offset(, 7)).Value
For i = 1 To UBound(data)
   If data(i, 3) = "" Then
      k = k + 1
      For j = 1 To 11
         Res(k, j) = data(i, j)
      Next
   Else
      tam3 = Split(data(i, 3), "+")
      tam4 = Split(data(i, 4), "+")
      For ii = 1 To UBound(tam3) + 1
         k = k + 1
         For j = 1 To 11
            Res(k, j) = data(i, j)
         Next
         Res(k, 3) = tam3(ii - 1)
         Res(k, 4) = tam4(ii - 1)
      Next
   End If
Next
Sheet2.[A7].Resize(k, 11) = Res
End Sub
 
Tách dữ liệu trong 01 ô (dòng) ra thành nhiều dòng!- Gấp mong mọi người giúp đỡ

Dear các anh chị,
Em đang cần tách dữ liệu ô của cột A sang các cột B,C,D,E,F, G như file đính kèm. Em đã đọc bài hướng dẫn và lập theo công thức ở trên thì được kết quả như cột B. Cho em hỏi, em có thể làm như vậy cho các cột còn lại không và công thức như thế nào?
Vì em đang cần gấp nên mong mọi người giúp đỡ em.

Em cảm ơn nhiều lắm!

Thanks,
Vi
 

File đính kèm

  • excel.xlsx
    10.4 KB · Đọc: 58
Dear các anh chị,
Em đang cần tách dữ liệu ô của cột A sang các cột B,C,D,E,F, G như file đính kèm. Em đã đọc bài hướng dẫn và lập theo công thức ở trên thì được kết quả như cột B. Cho em hỏi, em có thể làm như vậy cho các cột còn lại không và công thức như thế nào?
Vì em đang cần gấp nên mong mọi người giúp đỡ em.

Em cảm ơn nhiều lắm!

Thanks,
Vi
bạn thử làm theo cách sau:
- tại sheet1 chọn cột/ vùng cần tách (A2:A9)

- trên thanh Ribbon - chọn DATA- tại nhóm Data Tools click Text to Columns

- hộp thoại Convert Text ... - Step 1 of 3 - click Next

B1.jpg

- tiếp Step 2 of 3:
B2.jpg

- chọn các Checkbox như hình dưới và đặt chuột vào mục Other --> click Ctrl + J

B2_1.jpg

click Next

- tiếp Step 3 of 3: chọn vị trí Paste (Destination - đích đến) ví dụ chọn B2

B3.jpg

click Finish

'----------
nếu "làm ko ra" thì vào xem tiếp: Split Data into Several Columns Based on Carriage Returns
 
Lần chỉnh sửa cuối:
PHP:
Sub abc()
Dim data(), Res(1 To 65536, 1 To 11), i, j, k, tam3, tam4
data = Sheet1.Range(Sheet1.[A7], Sheet1.[D65536].End(3).Offset(, 7)).Value
For i = 1 To UBound(data)
   If data(i, 3) = "" Then
      k = k + 1
      For j = 1 To 11
         Res(k, j) = data(i, j)
      Next
   Else
      tam3 = Split(data(i, 3), "+")
      tam4 = Split(data(i, 4), "+")
      For ii = 1 To UBound(tam3) + 1
         k = k + 1
         For j = 1 To 11
            Res(k, j) = data(i, j)
         Next
         Res(k, 3) = tam3(ii - 1)
         Res(k, 4) = tam4(ii - 1)
      Next
   End If
Next
Sheet2.[A7].Resize(k, 11) = Res
End Sub


Trường hợp mình muốn tách thêm cột E và cột G nữa thì viết code như thế nào hả anh?
E cám ơn anh nhiều!
 
Trường hợp mình muốn tách thêm cột E và cột G nữa thì viết code như thế nào hả anh?
E cám ơn anh nhiều!
Sub B_tachdong()
Dim data(), Res(1 To 65536, 1 To 11), i, j, k, g, f, tam3, tam4, tam5, tam7
data = Sheet1.Range(Sheet1.[A7], Sheet1.[G65536].End(3).Offset(, 7)).Value
For i = 1 To UBound(data)
If data(i, 3) = "" Then
k = k + 1
For j = 1 To 11
Res(k, j) = data(i, j)
Next
Else
tam3 = Split(data(i, 3), "+")
tam4 = Split(data(i, 4), "+")
tam5 = Split(data(i, 5), "+")
tam7 = Split(data(i, 7), "+")

For ii = 1 To UBound(tam3) + 1
k = k + 1
For j = 1 To 11
Res(k, j) = data(i, j)
Next
Res(k, 3) = tam3(ii - 1)
Res(k, 4) = tam4(ii - 1)
Res(k, 5) = tam4(ii - 1)
Res(k, 7) = tam7(ii - 1)

Next

End If
Next
Sheet3.[A7].Resize(k, 11) = Res
End Sub

Các anh kieemrtra giúp em code trên xem nó bị lỗi ở chỗ nào mà không chạy được vậy anh
 
Sub B_tachdong()
Dim data(), Res(1 To 65536, 1 To 11), i, j, k, g, f, tam3, tam4, tam5, tam7
data = Sheet1.Range(Sheet1.[A7], Sheet1.[G65536].End(3).Offset(, 7)).Value
For i = 1 To UBound(data)
If data(i, 3) = "" Then
k = k + 1
For j = 1 To 11
Res(k, j) = data(i, j)
Next
Else
tam3 = Split(data(i, 3), "+")
tam4 = Split(data(i, 4), "+")
tam5 = Split(data(i, 5), "+")
tam7 = Split(data(i, 7), "+")

For ii = 1 To UBound(tam3) + 1
k = k + 1
For j = 1 To 11
Res(k, j) = data(i, j)
Next
Res(k, 3) = tam3(ii - 1)
Res(k, 4) = tam4(ii - 1)
Res(k, 5) = tam4(ii - 1)
Res(k, 7) = tam7(ii - 1)

Next

End If
Next
Sheet3.[A7].Resize(k, 11) = Res
End Sub

Các anh kieemrtra giúp em code trên xem nó bị lỗi ở chỗ nào mà không chạy được vậy anh

Đoán là sai câu này:
data = Sheet1.Range(Sheet1.[A7], Sheet1.[G65536].End(3).Offset(, 7)).Value
 

File đính kèm

  • TACH DONG.rar
    107.5 KB · Đọc: 54
Lần chỉnh sửa cuối:
Dear các anh chị,
Em dang can tach first name va last name cua file dinh kem thanh cac cot khac nhau. Em da thu tach bang cach tren nhung khong duoc. Moi nguoi giup em voi, khong hieu sao lan nay lai khong tach duoc nua.
Em dang can gap nen mong nhan duoc su giup do som tu cac anh chi trong dien dan.

Em cam on,

Vi
 

File đính kèm

  • Name.xlsx
    98.8 KB · Đọc: 27
Dear các anh chị,
Em dang can tach first name va last name cua file dinh kem thanh cac cot khac nhau. Em da thu tach bang cach tren nhung khong duoc. Moi nguoi giup em voi, khong hieu sao lan nay lai khong tach duoc nua.
Em dang can gap nen mong nhan duoc su giup do som tu cac anh chi trong dien dan.

Em cam on,

Vi

cái dấu cách trong file của bạn không phải là dấu cách của excel
thông thường thì tôi có thể dùng Find để thay cái dấu cách này, nhưng file của bạn ko làm đượcc (chẳng hiểu tại sao nữa)
thôi thì chịu khó làm dài một chút
1-tại B2
Mã:
B2=SUBSTITUTE(A2,CHAR(160)," ")
2- kéo xuống hết vùng dữ liệu
3- copy cột này, nhấp chuột phải==>chọn paste special==>chọn paste value
4- chọn toàn bộ vùng dữ liệu cột B,==>vào lớp data===trong group data tool chọn "text to column"
==>chọn "delimited"(thường thì nó đã chọn)==>next==>nhấp vào ô "Space"==>chọn "text" trong mục "column data format"==>chọn "Destimation" là C1==>ok, vậy là nó tách xong cho bạn
 
thống kê ngược

ah, thì ra thế, sao tự dưng nghĩ thêm việc vào người vậy?

tức là muốn kết quả là A7:E18 từ dữ liệu A2:E5,
Vậy thì công thức sẽ phụ thuộc vào cột A, và khó là lập công thức cho cột A

Bạn xem file gửi kèm

Bác vodoi2x ơi, em cũng đang cần 1 hàm để thống kê ngược từ 1 bảng dữ liệu nguồn (thống kê các mã sp theo sđt người mua) sang 1 bảng thống kê mới có dạng thống kê tất cả sđt các khách hàng theo từng sản phẩm)

Bác giúp em với.
Đây là file của em ạ:
Tks bác giúp đỡ.
 

File đính kèm

  • thong ke nguoc.xlsx
    10.5 KB · Đọc: 17
Chào cả nhà.
Tôi xin nhờ cả nhà chỉ giúp cách tách 1 ô của 1 dòng thành nhiều dòng.
Cụ thể: Như file đính kèm
Nội dung này tôi rất cấn và tôi cũng đã mò mẫn mãi vẫn chưa có cách giải quyết.
Rất mong cả nhà hỗ trợ giúp tôi.
 

File đính kèm

  • Tach dong theo SLg SP.xlsx
    10.2 KB · Đọc: 24
Chào cả nhà.
Tôi xin nhờ cả nhà chỉ giúp cách tách 1 ô của 1 dòng thành nhiều dòng.
Cụ thể: Như file đính kèm
Nội dung này tôi rất cấn và tôi cũng đã mò mẫn mãi vẫn chưa có cách giải quyết.
Rất mong cả nhà hỗ trợ giúp tôi.
Để chung một sheet vậy à hay cho sang sheet mới?
 

File đính kèm

  • Tachdong_.xlsb
    20.4 KB · Đọc: 31
Chào cả nhà.
Tôi xin nhờ cả nhà chỉ giúp cách tách 1 ô của 1 dòng thành nhiều dòng.
Cụ thể: Như file đính kèm
Nội dung này tôi rất cấn và tôi cũng đã mò mẫn mãi vẫn chưa có cách giải quyết.
Rất mong cả nhà hỗ trợ giúp tôi.
1 phút
 
Web KT
Back
Top Bottom