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

Liên hệ QC

iamcuong

Cám ơn GPE
Tham gia
17/7/10
Bài viết
155
Được thích
27
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
Capture.jpg

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 ạ.
 

File đính kèm

  • all03092015.xlsx
    42 KB · Đọc: 52
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
View attachment 146492

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))
 
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))

Vâng, em cám ơn bác.
Em cũng vừa tìm được câu trả lời nếu dùng hàm ở topic này

Chờ mọi người giúp dùm bằng VBA ạ.
 
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
View attachment 146492

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).

attachment.php


attachment.php
 

File đính kèm

  • Picture1.jpg
    Picture1.jpg
    113.5 KB · Đọc: 137
  • Picture2.jpg
    Picture2.jpg
    113 KB · Đọc: 127
Lần chỉnh sửa cuối:
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
View attachment 146492

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ì.........--=0--=0--=0
 
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));".";","))
Capture.jpg
@$@!^%@$@!^%
 
Bạn xem file có đúng ý bạn không?
 

File đính kèm

  • all1.xls
    172.5 KB · Đọc: 70
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 @$@!^%@$@!^%
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
 
Kết quả mĩ mãn ạ.
Em cám ơn bác lắm lắm @$@!^%@$@!^%
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)
 
Lần chỉnh sửa cuối:
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
 
Mình xin góp ý với bạn thế này , cách giải là các cao nhân chỉ bạn hết tất tần tật rồi, mình chỉ muốn thêm một ý nhỏ, vì theo bạn là gồm nhiều shéets cũng có cách tìm như vậy, nên đôi khi bạn chỉ muốn ngay tại shéets hiện hành thực hiện được điều đó, vậy nên theo mình tại shéets hiện hành đó bạn cần đặt cho nó một điều kiện vd tại shéets hiện hành có một ô cố định có chữ "ready" thì thực hiện thao tác đó thì ok...mình không biết bạn có yêu cầu đó ko?
 
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)
Dạ Thầy ndu96081631 và bạn Tờ rung phân tích cũng rất đúng ạ.
- Nếu đúng như yêu cầu đưa ra thì code trên đúng là vẫn thiếu. Nhưng thực ra, em chỉ cần quan tâm đến mấy cột high, low, close.
- Dữ liệu của em, mỗi tháng sẽ gồm khoảng 20 sheet dữ liệu như trên. Mỗi ngày em thực hiện thao tác này 1 lần, nên bộ code này đã đáp ứng đủ nhu cầu ạ.
Một lần nữa, em rất cám ơn Thầy và các anh, bạn đã hỗ trợ ạ. /-*+//-*+/
 
Mình thấy trong dữ liệu của bạn có phân dữ liệu theo thời gian, và có một số thông số cập nhật theo mã,mà khi tôi viết về những vấn đề này thông thường tôi phải đưa ra những dữ liệu thông kê, mà trong tất cả các bài tôi đã đọc thì chưa thấy ai chú trọng vấn đề này, theo tôi thì nó rất quan trong, vì nó theo dõi được cả quá trình, cũng như sức khỏe kinh doanh hay tình hình kinh doanh của bạn như thế nào?dựa vào những chỉ số đó bạn có thể biết đánh giá khả năng làm việc của bạn cũng như tình hình kinh doanh của công ty bạn.Nhưng vấn đề xếp hạng những chỉ số như thế này thì tôi chưa thấy, hoặc có thể chưa may mắn được đọc trên diễn đàn, mà vấn đề xếp hạng tổng quát như thế này bản thân tôi phải dùng các dòng toán học với sự hổ trợ của VBA để làm một cách tổng quát được.Tôi vd:" bạn muốn xếp hạng hữu hạn 10 đến 20 mã sản phẩm nào đó mà theo yêu cầu thông số nào đó mà nó càng lớn thì vị trị của nó càng cao".Nhưng vấn đề tôi nói với bạn,đối với con số dù bạn xếp hàng nó như thế nào thì sẽ có những trường hợp 2 hoặc 3,4,5....sản phẩm có các thông số bằng nhau, mà trong toán học khi bạn xếp hạng thì những trường hợp đó nó lại ra chỉ một con số mà thôi.Mà khi xếp hàng thì đôi khi người ta lại muốn bạn xếp hạng theo thứ tự 1,2,3,4.... từ trên xuống.nhưng số 1 thì bạn chỉ lọc được một thằng,lỡ may nếu có nhiều thằng số 1 bạn sẽ mất rất nhiều chỉ số (cũng là số 1) bị bỏ sót.Vì theo sự hiểu biết của tôi, bạn có thể lọc được những giá trị số 1 giống nhau, nhưng không thể lọc được hết nếu trong xếp hạng bạn chỉ có một con số 1, rồi mới tới số 2,3,4...theo thứ tự từ trên xuống, và trong quá trình giải quyết vấn đề này tôi đã nhờ VBA chạy những dòng toán học và đưa ra những kết quả phổ quát nhất...nếu bạn có hứng thú trong vấn đề này ...thì có thể liên hệ với tôi , tôi có thể giải quyết cho bạn!
 
Mình thấy trong dữ liệu của bạn có phân dữ liệu theo thời gian, và có một số thông số cập nhật theo mã,mà khi tôi viết về những vấn đề này thông thường tôi phải đưa ra những dữ liệu thông kê, mà trong tất cả các bài tôi đã đọc thì chưa thấy ai chú trọng vấn đề này, theo tôi thì nó rất quan trong, vì nó theo dõi được cả quá trình, cũng như sức khỏe kinh doanh hay tình hình kinh doanh của bạn như thế nào?dựa vào những chỉ số đó bạn có thể biết đánh giá khả năng làm việc của bạn cũng như tình hình kinh doanh của công ty bạn.Nhưng vấn đề xếp hạng những chỉ số như thế này thì tôi chưa thấy, hoặc có thể chưa may mắn được đọc trên diễn đàn, mà vấn đề xếp hạng tổng quát như thế này bản thân tôi phải dùng các dòng toán học với sự hổ trợ của VBA để làm một cách tổng quát được.Tôi vd:" bạn muốn xếp hạng hữu hạn 10 đến 20 mã sản phẩm nào đó mà theo yêu cầu thông số nào đó mà nó càng lớn thì vị trị của nó càng cao".Nhưng vấn đề tôi nói với bạn,đối với con số dù bạn xếp hàng nó như thế nào thì sẽ có những trường hợp 2 hoặc 3,4,5....sản phẩm có các thông số bằng nhau, mà trong toán học khi bạn xếp hạng thì những trường hợp đó nó lại ra chỉ một con số mà thôi.Mà khi xếp hàng thì đôi khi người ta lại muốn bạn xếp hạng theo thứ tự 1,2,3,4.... từ trên xuống.nhưng số 1 thì bạn chỉ lọc được một thằng,lỡ may nếu có nhiều thằng số 1 bạn sẽ mất rất nhiều chỉ số (cũng là số 1) bị bỏ sót.Vì theo sự hiểu biết của tôi, bạn có thể lọc được những giá trị số 1 giống nhau, nhưng không thể lọc được hết nếu trong xếp hạng bạn chỉ có một con số 1, rồi mới tới số 2,3,4...theo thứ tự từ trên xuống, và trong quá trình giải quyết vấn đề này tôi đã nhờ VBA chạy những dòng toán học và đưa ra những kết quả phổ quát nhất...nếu bạn có hứng thú trong vấn đề này ...thì có thể liên hệ với tôi , tôi có thể giải quyết cho bạn!
Hôm nay mới đọc được phần trả lời này của Trung.
Bạn nói đúng ý mình. Dữ liệu chứng khoán rất cần được xử lý theo thời gian, để có thể xem xét theo cả 1 quá trình. Còn file của mình, chỉ đánh giá được tại 1 thời điểm nhất định, nên việc theo dõi còn rất nhiều bất cập
Mình hay vào đây để download dữ liệu http://www.cophieu68.vn/export.php
Thời gian tới, mình sẽ liên hệ với Trung, để xây dựng 1 file quản lý tài chính cá nhân và chứng khoán hoàn thiện.
 
Web KT
Back
Top Bottom