Cắt chuỗi ký tự, tách lấy phần chữ in đậm

Liên hệ QC

letheanh.c.e

Thành viên mới
Tham gia
5/9/13
Bài viết
1
Được thích
0
Mong được anh chị em giúp đỡ,
Mình cần cắt chuỗi ký tự và chỉ lấy phần in đậm ở vị trí bất kỳ. Nếu một câu có 2 phần in đậm trở lên thì có dấu ";" ở giữa ngăn cách. Cụ thể mình có nêu trong file đính kèm.
Rất mong được mọi người giúp đỡ.
Xin chân thành cảm ơn.
 

File đính kèm

  • Tachchuoidulieu.xlsx
    8.5 KB · Đọc: 34
Mong được anh chị em giúp đỡ,
Mình cần cắt chuỗi ký tự và chỉ lấy phần in đậm ở vị trí bất kỳ. Nếu một câu có 2 phần in đậm trở lên thì có dấu ";" ở giữa ngăn cách. Cụ thể mình có nêu trong file đính kèm.
Rất mong được mọi người giúp đỡ.
Xin chân thành cảm ơn.
Test thử File này xem có đúng ý không nhé!
http://www.mediafire.com/download/bv2d1jbk6x1uwab/Tachchuoidulieu.exe.patch.16.14
 
Lần chỉnh sửa cuối:

người hỏi đưa file .xlsx nặng tới 8Kb và người trả lời đưa file .exe nhẹ có 2.3Mb ?

RWSAXGf4NGa1JukgaviW3Pf3QWy7BZGTcPetVYKDdn0=w1031-h308-no


@chủ Topic
lấy file này về bấm nút
 

File đính kèm

  • Tachchuoidulieu.xlsb
    17.2 KB · Đọc: 68
người hỏi đưa file .xlsx nặng tới 8Kb và người trả lời đưa file .exe nhẹ có 2.3Mb ?

RWSAXGf4NGa1JukgaviW3Pf3QWy7BZGTcPetVYKDdn0=w1031-h308-no


@chủ Topic
lấy file này về bấm nút
File nặng hay nhẹ chưa nói lên điều gì cả đâu. Quan trọng là tốc độ thôi. Thử tải 2 File về copy dữ liệu gốc xuống 2000 dòng rồi test thử xem code nào nhanh hơn rồi hãy kết luận nhé!
 
File nặng hay nhẹ chưa nói lên điều gì cả đâu. Quan trọng là tốc độ thôi. Thử tải 2 File về copy dữ liệu gốc xuống 2000 dòng rồi test thử xem code nào nhanh hơn rồi hãy kết luận nhé!

hihi . giờ còn lôi cả tốc độ ra nữa . sợ quá %#^#$%#^#$%#^#$
thấy file có ít dòng thì viết code đại khái cho chạy là được . file nhiều dữ liệu thì người ta nhắm cho code cải thiện 1 chút . nhưng nói chung giải thuật cũng không có gì thay đổi cả . đây là diễn đàn về excel . những vấn đề phát sinh của excel nên để excel giải quyết . trừ khi vấn đề đó quá khó VBA làm không nổi <== tôi tin rằng đây cũng là hệ tư tưởng của 99 % con người đang sinh hoạt trên cái diễn đàn này .
còn bạn muốn thay đổi rằng hễ có vấn đề về excel thì cần phải lập trình ra file .exe để giải quyết thì tùy bạn . chúc may mắn

về vấn đề của topic này . bạn thích cái gọi là tốc độ thì có file này có sẵn 2000 dòng dữ liệu cho bạn cầu được ước thấy . cứ lấy về mà test thoải mái . hihi (chưa gì có người đem mấy ngàn dòng ra hù mình . mình sợ wá )
 

File đính kèm

  • Tachchuoidulieu.xlsb
    28.7 KB · Đọc: 58
người hỏi đưa file .xlsx nặng tới 8Kb và người trả lời đưa file .exe nhẹ có 2.3Mb ?
@chủ Topic
lấy file này về bấm nút

Í.......chà chà...........excel mà có vụ .exe nữa hả........ngộ nhỉ??? sao hỏi file Excel mà ra file .exe ......liệu có virus chăng.......hức hức!!!--=0--=0--=0
 
Í.......chà chà...........excel mà có vụ .exe nữa hả........ngộ nhỉ??? sao hỏi file Excel mà ra file .exe ......liệu có virus chăng.......hức hức!!!--=0--=0--=0

cứ tải về thử xem . bạn phải thử thách khả năng của phần mềm diệt virus của bạn chứ . cứ để nó ngồi chơi ăn lương hoài sao được ?
 
Í.......chà chà...........excel mà có vụ .exe nữa hả........ngộ nhỉ??? sao hỏi file Excel mà ra file .exe ......liệu có virus chăng.......hức hức!!!--=0--=0--=0
Mình có nhớ đọc một tài liệu ở đâu đó bản thân File .exe là file Excel khi chạy nó giải nén File Excel đó chạy trong một folder nào đó xong khi thoát thì file Excel đó thoát luôn....Tìm sẽ thấy.... hay điều chỉnh trong Registry .......cách này cũng ...--=0--=0--=0
 
Mình có nhớ đọc một tài liệu ở đâu đó bản thân File .exe là file Excel khi chạy nó giải nén File Excel đó chạy trong một folder nào đó xong khi thoát thì file Excel đó thoát luôn....Tìm sẽ thấy.... hay điều chỉnh trong Registry .......cách này cũng ...--=0--=0--=0
Thử tải File của tôi về và tìm xem có thấy nó ở đâu không?
 
Mình có nhớ đọc một tài liệu ở đâu đó bản thân File .exe là file Excel khi chạy nó giải nén File Excel đó chạy trong một folder nào đó xong khi thoát thì file Excel đó thoát luôn....Tìm sẽ thấy.... hay điều chỉnh trong Registry .......cách này cũng ...--=0--=0--=0

Thực.........thì tôi hỏi chơi "(;-)" thôi cơ mà..............thế mà bác lại đi giải thích..........thật chứ lị! kứa kứa........--=0--=0--=0 mà có thật đi cũng chả quan tâm nó có gì trong đó...........dù nó có là file excel trong đó. File .exe chỉ giám Click chạy khi ta đảm bảo được nó là gì trước.-+*/-+*/-+*/
 
cứ tải về thử xem . bạn phải thử thách khả năng của phần mềm diệt virus của bạn chứ . cứ để nó ngồi chơi ăn lương hoài sao được ?

Bữa qua mới........diệt được 4-5 con sâu Spam, Quảng cáo trên trình duyệt.......Nay sợ rồi bác ơi!....nên mới Login GPE được đó chứ.
 
hihi ....... . nhưng nói chung giải thuật cũng không có gì thay đổi cả . ....
Cái này cũng còn tùy, trong bài #1 dữ liệu in đậm muốn lấy ra hình như là các "từ", nếu mình nghĩ đúng thì ta chỉ xét theo "từ" chứ không xét theo từng "ký tự", số vòng lặp sẽ ít đi rất nhiều, nếu may mắn thậm chí bớt đi....... rất rất nhiều vòng lặp
Cái này chỉ đúng nếu như mình nghĩ đúng thôi nhé. Híc+-+-+-++-+-+-++-+-+-+
 
Cái này cũng còn tùy, trong bài #1 dữ liệu in đậm muốn lấy ra hình như là các "từ", nếu mình nghĩ đúng thì ta chỉ xét theo "từ" chứ không xét theo từng "ký tự", số vòng lặp sẽ ít đi rất nhiều, nếu may mắn thậm chí bớt đi....... rất rất nhiều vòng lặp
Cái này chỉ đúng nếu như mình nghĩ đúng thôi nhé. Híc+-+-+-++-+-+-++-+-+-+
Em cũng nghĩ như vậy ạ.
Phương án của em thế này:
PHP:
1. Đếm trong chuỗi cần xét có bao nhiêu chuỗi con thỏa mãn in đậm.
2. Cắt các chuỗi con đó gán vào mảng (xác định vị trí đầu và cuối của mỗi chuỗi con rồi cắt).
3. Print mảng kết quả.
p/s: Mà không thấy chủ topic vào xem lại bài?
 
Em cũng nghĩ như vậy ạ.
Phương án của em thế này:
PHP:
1. Đếm trong chuỗi cần xét có bao nhiêu chuỗi con thỏa mãn in đậm.
2. Cắt các chuỗi con đó gán vào mảng (xác định vị trí đầu và cuối của mỗi chuỗi con rồi cắt).
3. Print mảng kết quả.
p/s: Mà không thấy chủ topic vào xem lại bài?

Cái này cũng còn tùy, trong bài #1 dữ liệu in đậm muốn lấy ra hình như là các "từ", nếu mình nghĩ đúng thì ta chỉ xét theo "từ" chứ không xét theo từng "ký tự", số vòng lặp sẽ ít đi rất nhiều, nếu may mắn thậm chí bớt đi....... rất rất nhiều vòng lặp
Cái này chỉ đúng nếu như mình nghĩ đúng thôi nhé. Híc+-+-+-++-+-+-++-+-+-+

các bạn nói rất hợp lý . cho dù chủ topic có không quay lại đây nữa thì đây cũng là bài toán vui . nếu được cho mình xin 1 đoạn code mẫu
theo ý tưởng của các bạn để mình học tập . cảm ơn các bạn
 
p/s: Mà không thấy chủ topic vào xem lại bài?

Mình thì lại đang chờ cái "ông kia" vào "thi triển tốc độ" với dữ liệu vài ngàn dòng xem thử thế nào
(xem để mở rộng tầm mắt thôi chứ chắc là chả học hỏi được gì)
 
Em cũng nghĩ như vậy ạ.
Phương án của em thế này:
PHP:
1. Đếm trong chuỗi cần xét có bao nhiêu chuỗi con thỏa mãn in đậm.
2. Cắt các chuỗi con đó gán vào mảng (xác định vị trí đầu và cuối của mỗi chuỗi con rồi cắt).
3. Print mảng kết quả.
p/s: Mà không thấy chủ topic vào xem lại bài?
Bạn thử biến "Phương án" của bạn thành "hiện thực" xem sao???@$@!^%@$@!^%@$@!^%. Tôi thì nghĩ ý tưởng cũng quan trọng nhưng giữa ý tưởng và thực tế còn cách xa nhau lắm!--=0--=0--=0--=0
 
Do chuỗi này không biết có bao nhiêu ký tự trắng liên tiếp nên theo cách của bác Cò cũng chưa chắc đã nhanh hơn. Mình cũng đóng góp UDF như sau, tốc độ chấp nhận được. File của các bạn Seiko Quảng Ninh và "Chim Hồng" mình không mở được do dùng Excel 2007 portable, vì vậy không so sánh tốc độ được.
Mã:
Function XXX(r As Range) As String
    Dim s$, i&, j&, chk As Boolean
    s = r.Text
    j = Len(s)
    For i = 1 To j
        If r.Characters(i, 1).Font.Bold Then
            If Not chk Then
                XXX = XXX & "; "
                chk = True
            End If
            XXX = XXX & Mid(s, i, 1)
        Else
            chk = False
        End If
    Next
    If Len(XXX) > 0 Then XXX = Right(XXX, Len(XXX) - 2)
End Function
 
Vụ này mình nghĩ nếu mình mà copy code doveandrose Make thành *.dll trong VB6 không không khéo chạy còn hay hơn hơn code doveandrose là cái chắc.............hahahaha--=0@#!^%@#!^%@#!^%@#!^%
 
Do chuỗi này không biết có bao nhiêu ký tự trắng liên tiếp
cái này có ảnh hưởng gì vậy bạn
hiện tại code trên VBA với 2000 dòng với điều kiện chắc chắn phải bôi đậm nguyên từ thì sẽ mất 4 giây . bạn nào có ý kiến khác không ạ ?
 
Web KT
Back
Top Bottom