Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 14

Chủ đề: [Hỏi] Cách tách 1 chuỗi được phân cách bằng dấu phẩy

  1. #1
    baohanhtivilcd Guest

    [Hỏi] Cách tách 1 chuỗi được phân cách bằng dấu phẩy

    Thân gửi các bác/anh/chị/em

    Hiện em đang có một vướng mắc sau:
    - Em có 1 file dữ liệu
    + Cột A có chứa các chuỗi
    + Độ dài các chuỗi là không giống nhau
    - Mục đích là tách dữ liệu được giống như phần kết quả
    - Nếu dùng các hàm thông thường thì có lẽ cũng ra kết quả, nhưng vì dữ liệu gồm nhiều dòng, nhiều sheet..., nên nếu dùng hàm e rằng file sẽ nặng -> Dùng VBA


    Vậy rất mong các bác/anh/chị/em giúp em phương án để xử lý chuỗi trên bằng VBA
    Và các bác cũng cho em luôn gợi ý, nếu dùng hàm thông thường thì sẽ xử lý thế nào?

    Em cám ơn các bác/anh/chị/em trong GPE ạ.

  2. #2
    kulu193 Guest
    Trích dẫn Gửi bởi iamcuong
    Thân gửi các bác/anh/chị/em

    Hiện em đang có một vướng mắc sau:
    - Em có 1 file dữ liệu
    + Cột A có chứa các chuỗi
    + Độ dài các chuỗi là không giống nhau
    - Mục đích là tách dữ liệu được giống như phần kết quả
    - Nếu dùng các hàm thông thường thì có lẽ cũng ra kết quả, nhưng vì dữ liệu gồm nhiều dòng, nhiều sheet..., nên nếu dùng hàm e rằng file sẽ nặng -> Dùng VBA


    Vậy rất mong các bác/anh/chị/em giúp em phương án để xử lý chuỗi trên bằng VBA
    Và các bác cũng cho em luôn gợi ý, nếu dùng hàm thông thường thì sẽ xử lý thế nào?

    Em cám ơn các bác/anh/chị/em trong GPE ạ.
    Công thức này xài cho C3 rồi fill qua và fill xuống (Còn cột ngày chắc bạn tự xử lý được)

    Mã:
    =TRIM(MID(SUBSTITUTE($A3,",",REPT(" ",255)),COLUMNS($A:A)*255-254,255))

  3. #3
    inoviss Guest
    [QUOTE="giangleloi"]Công thức này xài cho C3 rồi fill qua và fill xuống (Còn cột ngày chắc bạn tự xử lý được)


    http://www.giaiphapexcel.com/forum/s...%83n-c%C3%A1ch
    Chờ mọi người giúp dùm bằng VBA ạ.

  4. #4
    haqn84 Guest
    Trích dẫn Gửi bởi iamcuong
    Thân gửi các bác/anh/chị/em

    Hiện em đang có một vướng mắc sau:
    - Em có 1 file dữ liệu
    + Cột A có chứa các chuỗi
    + Độ dài các chuỗi là không giống nhau
    - Mục đích là tách dữ liệu được giống như phần kết quả
    - Nếu dùng các hàm thông thường thì có lẽ cũng ra kết quả, nhưng vì dữ liệu gồm nhiều dòng, nhiều sheet..., nên nếu dùng hàm e rằng file sẽ nặng -> Dùng VBA


    Vậy rất mong các bác/anh/chị/em giúp em phương án để xử lý chuỗi trên bằng VBA
    Và các bác cũng cho em luôn gợi ý, nếu dùng hàm thông thường thì sẽ xử lý thế nào?

    Em cám ơn các bác/anh/chị/em trong GPE ạ.
    Excel có công cụ hỗ trợ mà bạn không dùng sao: Text To Column với dấu phân cách là dấu phẩy (comma).




  5. #5
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi iamcuong
    Thân gửi các bác/anh/chị/em

    Hiện em đang có một vướng mắc sau:
    - Em có 1 file dữ liệu
    + Cột A có chứa các chuỗi
    + Độ dài các chuỗi là không giống nhau
    - Mục đích là tách dữ liệu được giống như phần kết quả
    - Nếu dùng các hàm thông thường thì có lẽ cũng ra kết quả, nhưng vì dữ liệu gồm nhiều dòng, nhiều sheet..., nên nếu dùng hàm e rằng file sẽ nặng -> Dùng VBA


    Vậy rất mong các bác/anh/chị/em giúp em phương án để xử lý chuỗi trên bằng VBA
    Và các bác cũng cho em luôn gợi ý, nếu dùng hàm thông thường thì sẽ xử lý thế nào?

    Em cám ơn các bác/anh/chị/em trong GPE ạ.
    Data/Text to Columns: vài giây là có ngay cái mình muốn chứ gì.........[IMG]images/smilies/a01.gif[/IMG][IMG]images/smilies/a01.gif[/IMG][IMG]images/smilies/a01.gif[/IMG]

  6. #6
    lamdh8x Guest
    Chia tách thì phải vài thao tác nữa thì số liệu mới dùng được (Do em quy định dấu , ngăn cách hàng thập phân)...
    Do vậy, em đã theo gợi ý của bác giangleloi, thêm 2 hàm nữa là có thể dùng được dữ liệu luôn


    =VALUE(SUBSTITUTE(TRIM(MID(SUBSTITUTE($A2;",";REPT (" ";1000));(COLUMNS($A:C)-1)*1000+1;1000));".";","))

    [IMG]images/smilies/a20.gif[/IMG][IMG]images/smilies/a20.gif[/IMG]

  7. #7
    tvintec Guest
    Bạn xem file có đúng ý bạn không?

  8. #8
    linhti0209 Guest
    Trích dẫn Gửi bởi doatmenhhon
    Bạn xem file có đúng ý bạn không?
    Kết quả mĩ mãn ạ.
    Em cám ơn bác lắm lắm [IMG]images/smilies/a20.gif[/IMG][IMG]images/smilies/a20.gif[/IMG]
    Tiện đây em cũng gửi luôn bộ code của bác để mọi người cùng xem ạ


    Sub Button1_Click()Dim MyString As String
    Dim o, p As Integer
    Dim x
    Dim Col As Long
    Dim Row As Long


    For o = 3 To 941
    MyString = Cells(o, 1)
    x = Split(MyString, ",")
    For Col = 0 To UBound(x)
    Cells(o, Col + 3) = x(Col)

    Next Col
    Next o

    End Sub


  9. #9
    QuynhTrang Guest
    Trích dẫn Gửi bởi iamcuong
    Kết quả mĩ mãn ạ.
    Em cám ơn bác lắm lắm [IMG]images/smilies/a20.gif[/IMG][IMG]images/smilies/a20.gif[/IMG]
    Tiện đây em cũng gửi luôn bộ code của bác để mọi người cùng xem ạ
    Tôi thấy đâu có đúng như yêu cầu của bạn chứ
    - Thứ nhất: Chuỗi "20150903" thì theo yêu cầu trong file bài 1 nó phải được chuyển thành Date 03/09/2015
    - Thứ hai: Chuỗi "3027.7" thì cái dấu chấm trong chuỗi cần xem lại. Phải chuyển nó thành đúng dấu thập phân tùy theo máy (như máy bạn đang dùng dấu phẩy làm dấu thập phân đúng không?)
    ------------------
    Ngoài ra bài 1 bạn có đề cập rằng dữ liệu của bạn nhiều, tôi không biết nhiều ở đây là bao nhiêu? 1000 dòng? hay 100000 dòng? Bởi sẽ tùy theo số liệu nhiều ít mà độ phức tạp của code sẽ có sự khác nhau (để cho tốc độ tối ưu nhất)

  10. #10
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Ha ha đọc bài của thầy ndu96081631 mắc cười quá. Thế bạn có yêu cầu không thì để ăn cơm xong tôi nghiên cứu làm nốt

Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •