xin giúp đỡ chuyển String thành ký tự đơn và tìm ô có tất cả các ký tự đơn

Liên hệ QC

jdrsdg

Thành viên mới
Tham gia
14/11/19
Bài viết
2
Được thích
0
Xin chào các cao nhân.
Mình mày mò học trên diễn đàn có chỗ tìm kiếm giá trị trong 1 bảng excell, Tuy nhiên khi tìm thì nó thường tìm kết quả theo cả chuỗi mình nhập vào. Ví dụ: mình tìm "abc" thì hàm find trả kết quả ô có abc.
và mình có ý tưởng: nếu tách "abc" thành các giá trị a, b, c riêng và tìm kiếm 1 ô có đủ a, b, c (không nhất thiết xếp theo thứ tự).
Vậy mình xin hỏi:
1. Tách biến (chuỗi "abc" chả hạn) thành các giá trị đơn lẻ (a, b, c).
2. Xử lý hàm tìm kiếm các giá trị đơn lẻ như thế nào khi chưa có cụ thể số lượng giá trị đơn lẻ (a, b, c) và không sót kết quả
các bạn có thể chỉ nêu phương hướng để mình mày mò học tập
 
Xin chào các cao nhân.
Mình mày mò học trên diễn đàn có chỗ tìm kiếm giá trị trong 1 bảng excell, Tuy nhiên khi tìm thì nó thường tìm kết quả theo cả chuỗi mình nhập vào. Ví dụ: mình tìm "abc" thì hàm find trả kết quả ô có abc.
và mình có ý tưởng: nếu tách "abc" thành các giá trị a, b, c riêng và tìm kiếm 1 ô có đủ a, b, c (không nhất thiết xếp theo thứ tự).
Vậy mình xin hỏi:
1. Tách biến (chuỗi "abc" chả hạn) thành các giá trị đơn lẻ (a, b, c).
2. Xử lý hàm tìm kiếm các giá trị đơn lẻ như thế nào khi chưa có cụ thể số lượng giá trị đơn lẻ (a, b, c) và không sót kết quả
các bạn có thể chỉ nêu phương hướng để mình mày mò học tập
Bạn đề nghị nêu phương hướng.
Thì bạn cũng tự đưa ra hướng đi rồi đó, tự làm theo hướng đi đó đi "Tách chuỗi "abc" thành các giá trị đơn lẻ a b, c. hoặc tìm trên diễn đàn bài viết "Tìm kiếm với từ gợi nhớ.".

Đọc bài xong chẳng hiểu bạn muốn cái gì?
 
Bạn tìm hiểu hàm MID, LEFT, RIGHT để tách ký tự, nếu tách từng ký tự 1 thì dùng hàm MID.
Để tìm kiếm 1 chuỗi trong các ô, bạn có thể dùng hàm COUNTIF.
Nếu dùng VBA thì dùng vòng lặp để duyệt từng ký tự trong chuỗi, dùng những hàm như: Like, InStr, ...
Bạn gửi file và cho vài ví dụ cụ thể để dễ hình dung.
 
(*) Giả dụ vùng bạn cần tìm kiếm là [B2:B99]
Bạn Khai báo biến vùng Rng & nạp vùng [B1:B99] vô tham biến
(*) Khai báo thêm 1 biến vùng (Range) như sRng & 1 tham biến kiểu chuỗi kí tự MyAdd
Như bạn nếu, ta tìm thành tố đầu tiên như lệnh
Mã:
Set sRng=Rng.Find("a", , xlFormulas, xlPart)
If Not sRng Is Nothing Then  'Nếu tìm thấy '
   MyAdd = sRng.Address
   Do
        If InStr(sRng.Value,"b") And InStr(sRng.Value,"c") Then
            'Ghi Lai Trị sRng Vô đâu đó   '         
        End If
      Set sRng=Rng.FindNext(sRng)
   Loop While Not sRng Is Nothing And sRng.Address <> MyAdd
End If

Chúc bạn thành công!
 
Lần chỉnh sửa cuối:
...Nếu dùng VBA thì dùng vòng lặp để duyệt từng ký tự trong chuỗi, dùng những hàm như: Like, InStr, ...
Khônng giản dị như bạn nghĩ đâu. Thớt chưa làm được nên chưa biết hết phức tạp của đòi hỏi này.
Nếu chuỗi là "ababa" thì tìm mấy lần? Tìm "a" và "b" là xong, hay phải tìm đủ 3 lần "a" và 2 lần "b"?

Nếu chỉ "mày mò" thì thớt nên quên đi và tìm hỏi cái khác. Bao giờ giỏi lập trình thì cái này tự động biết giải. Bây giờ mà vướng víu vào đây chỉ chậm tiến trình.
 
Khônng giản dị như bạn nghĩ đâu. Thớt chưa làm được nên chưa biết hết phức tạp của đòi hỏi này.
Nếu chuỗi là "ababa" thì tìm mấy lần? Tìm "a" và "b" là xong, hay phải tìm đủ 3 lần "a" và 2 lần "b"?

Nếu chỉ "mày mò" thì thớt nên quên đi và tìm hỏi cái khác. Bao giờ giỏi lập trình thì cái này tự động biết giải. Bây giờ mà vướng víu vào đây chỉ chậm tiến trình.
cảm ơn bạn
 
Web KT
Back
Top Bottom