Đăng ký học Excel và VBA cùng GPE tháng 11 - TPHCM

Mua sách "VBA trong Excel - Cải thiện và tăng tốc" tái bản

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

Thảo luận trong 'Cấu trúc dữ liệu Excel và việc Xử lý dữ liệu' bắt đầu bởi vittran, 7 Tháng sáu 2011.

  1. vittran

    vittran Thành viên mới

    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.
     

    Các file đính kèm:

  2. luckypro123

    luckypro123 Thành viên mới

    đư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.
     
  3. be09

    be09 Thành viên gạo cộ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 ijzxAs 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
    ActiveCell.Row
    For 1 To z
    1
    st 
    2
    Range
    ("a" x).Select
    abc 
    ActiveCell.Value
    For st To Len(abc)
    If 
    Len(abcThen
    Range
    ("a" x).Offset(0d).Value abc
    Exit For
    End If
    If 
    Asc(Mid(abci1)) > 64 And Asc(Mid(abci1)) < 91 Then
    Range
    ("a" x).Offset(0d).Value Left(abc1)
    xyz Right(abcLen(abc) - 1)
    abc xyz
    1
    1
    End 
    If
    Next i
    If Len(Range("a" x).Value) = Len(abcThen
    Range
    ("a" x).Offset(01).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êntừ menu bạn chọn Tôlschọn Macrochọn Macro xuất hiện cửa sổ Macrobạn nhấn nút Run vậy là xongbạ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 ranế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.
     
  4. phan ngoc lan

    phan ngoc lan Phan ngọc lan(^_^)

    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
     

    Các file đính kèm:

    • Tach.zip
      Kích thước:
      10.7 KB
      Đọc:
      307
    Lần chỉnh sửa cuối: 7 Tháng mười 2011
  5. sealand

    sealand Thành viên gạo cộ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: 6 Tháng mười 2011
  6. limitlessacc

    limitlessacc Thành viên mớ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é.
     
  7. hoamattroicoi

    hoamattroicoi 一人で Staff Member

    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: 20 Tháng chín 2014
  8. nhantran3vi

    nhantran3vi Thành viên mới

    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!
     
    vtv6 thích bài này.
  9. quanluu1989

    quanluu1989 Thành viên gắn bó

    Trước đó b cần chuyển nó về dạng text nhé. Như bạn hoamattroicoi trình bày ở B1
     
  10. vtv6

    vtv6 Thành viên mới

    Cách này của bạn dễ làm và hay nhất :)
    Thanks nhiều. Đúng lúc mình đang cần.
     

Chia sẻ trang này