Tách dữ liệu trong 1 ô cell thành nhiều cột

Liên hệ QC

vittran

Thành viên mới
Tham gia
30/10/08
Bài viết
2
Được thích
0
Em có 1 ô dữ liệu trong cell có nội dung như sau: " Trần Văn A
Công ty Cổ phần B
Số điện thoại"
Giờ em muốn tách các dữ liệu này sang thành các cột khác nhau, Cột A" Trần Văn A", Cột B" Công ty Cổ phần B" Cột C" Số điện thoại". Em có gửi hình như trong file đính kèm. Vậy em có thể dùng lệnh j đc ạ? Em xin chân thành cảm ơn mọi người.
 

File đính kèm

  • tach du lieu.rar
    117.7 KB · Đọc: 400
đưa file mẫu lên đi bạn, xem qua file bạn chụp nghe chừng rất khó xử lý, tuy nhiên bạn có thể chèn thêm vào mỗi ô cần tách 1 ký tự đặc biệt nào đó vào file mẫu thì sẽ xử lý được.
 
Em có 1 ô dữ liệu trong cell có nội dung như sau: " Trần Văn A
Công ty Cổ phần B
Số điện thoại"
Giờ em muốn tách các dữ liệu này sang thành các cột khác nhau, Cột A" Trần Văn A", Cột B" Công ty Cổ phần B" Cột C" Số điện thoại". Em có gửi hình như trong file đính kèm. Vậy em có thể dùng lệnh j đc ạ? Em xin chân thành cảm ơn mọi người.

Bạn hãy sử dụng Code này bạn sẽ toại nguyện theo ý muốn.
Trước tiên bạn click phải chuột vào tên sheet chứa dữ liệu bạn cần tách họ và tên, chọn View code và dán đoạn Code này vào cửa sổ code.

PHP:
 [code]

Sub cell_Transpose()
Dim i, j, z, x, d As Long
Dim k As Boolean
Dim st As Long
Dim abc, xyz As String
On Error GoTo errh
Range("A65356").Select
Selection.End(xlUp).Select
z = ActiveCell.Row
For x = 1 To z
d = 1
st = 2
Range("a" & x).Select
abc = ActiveCell.Value
For i = st To Len(abc)
If i > Len(abc) Then
Range("a" & x).Offset(0, d).Value = abc
Exit For
End If
If Asc(Mid(abc, i, 1)) > 64 And Asc(Mid(abc, i, 1)) < 91 Then
Range("a" & x).Offset(0, d).Value = Left(abc, i - 1)
xyz = Right(abc, Len(abc) - i + 1)
abc = xyz
i = 1
d = d + 1
End If
Next i
If Len(Range("a" & x).Value) = Len(abc) Then
Range("a" & x).Offset(0, 1).Value = Range("a" & x).Value
End If
Next x
errh:
 Exit Sub
End Sub

[/ php] 

Tiếp theo bạn chọn vùng dữ liệu cần tách họ và tên, từ menu bạn chọn Tôls, chọn Macro, chọn Macro xuất hiện cửa sổ Macro, bạn nhấn nút Run vậy là xong, bạn có được kết quả rồi nhé, bạn thấy đơn giản không?

[B]Lưu ý:
[/B]Trước khi chạy code bạn cần Insert số dòng bên phải nhiều hơn các từ chứa trong cell cần tách để chứa dữ liệu tách ra, nếu không nó sẽ ghi đè lên dữ liệu của các Cell kề bên.

Chúc các bạn thực hiện thành công.
 
Bạn thử dùng File này xem có đúng ý bạn không nhé?
Nhớ Enable Marco nhé khi bạn chỉnh sửa ô nào trên Sheet File gốc thì Sheet File mới sẽ tự cập nhật
 

File đính kèm

  • Tach.zip
    10.7 KB · Đọc: 418
Lần chỉnh sửa cuối:
Cứ cho dữ liệu của bạn là cột A đi. Ta làm như sau khỏi code vì chỉ 1 lần và rất nhanh.


1/Nhập công thức sau vào ô B1 rồi filldown: Substitute(A1,Char(10),"@")

2/Copy kết quả rồi Paste Speacial --Value vào cột A

3/Chọn cột A--Vào menu Data--Chọn Text to Columns

a/Chọn Delimited ---Next

b/Trong ô Other gõ chữ @---Next

c/Trong ô Destination bạn chon vị trí đặt kết quả (Thậm chí đặt luôn $A$1)---Finish


Hì, giờ xem kết quả ra sao!!!!
 
Lần chỉnh sửa cuối:
Các bác giúp em với, em muốn tách 1 ô công thức: =2,5*3*2 thành các ô khác nhau là 2,5; 3; 2. em bó tay luôn rồi. cảm ơn các bác trước nhé.
 
Các bác giúp em với, em muốn tách 1 ô công thức: =2,5*3*2 thành các ô khác nhau là 2,5; 3; 2. em bó tay luôn rồi. cảm ơn các bác trước nhé.
Bạn bôi đen những ô có công thức:
- B1 : Bấm Ctrl+H

+ Trong hộp Find What : gõ dấu bằng (=) , trong hộp Replace With: gõ dấu nháy ( ' )
+ Bấm Replace All

- B2 : Dùng công thức left(), Mid(), Right(), để tách số - chủ đề này có rất nhiều trên diễn đàn, bạn search thử nhé!

************************
Ví dụ sau khi xong thao tác trên chuỗi cần tách nằm tại C1 ta có :
- Tại D1 nhập công thức :

PHP:
=--TRIM(MID(SUBSTITUTE($C$1,"*",REPT(" ",LEN($C$1))),(COLUMN(A1)-1)*LEN($C$1)+1,LEN($C$1)))

Copy sang bên phải cho những ô còn lại nhé!
 
Lần chỉnh sửa cuối:
Các bác giúp em với, em muốn tách 1 ô công thức: =2,5*3*2 thành các ô khác nhau là 2,5; 3; 2. em bó tay luôn rồi. cảm ơn các bác trước nhé.
Trên excel có công cụ Text to colums: chọn cell chứa nội dung, menu/ data/ text to colums(ở group datatool)/ chọn delimited/other nhập giá trị là */ next hết là xong!
 
Trên excel có công cụ Text to colums: chọn cell chứa nội dung, menu/ data/ text to colums(ở group datatool)/ chọn delimited/other nhập giá trị là */ next hết là xong!
Trước đó b cần chuyển nó về dạng text nhé. Như bạn hoamattroicoi trình bày ở B1
 
Web KT
Back
Top Bottom