Công thức tìm nhiều chuỗi con ?

Liên hệ QC

TrungChinhs

Thành viên tích cực
Tham gia
18/2/08
Bài viết
1,475
Được thích
2,468
Nghề nghiệp
Công chức
Để tìm một chuỗi con trong một chuỗi lớn ta thường dùng hàm Find hoặc hàm Search.
Vd: =SEARCH(E4;B4;1)
Vậy có công thức nào tìm được nhiều chuỗi con trong một chuỗi lớn không ?
Tôi thử một số cách nhưng không được (xem file đính kèm).
Nhờ các chỉ giúp hoặc làm giúp công thức

Xin cảm ơn !
 

File đính kèm

  • Tim nhieu chuoi con.xls
    16.5 KB · Đọc: 63
Nếu tìm nhiều chuỗi trong 1 chuỗi lớn thì kết quả bạn muốn cho ra gì nào?
Để đơn giản mình cho bạn 1 ví dụ nha!
[A1] ="A1235dff 35A31 B3135 1351A6391"
Rồi tôi muốn tìm Chữ "A" trong ô A1 kia thì bạn muốn ra gì nào?
Đáp số:
A/ 1, 12, 26 (Tất cả vị trí A trong chuỗi)
B/ 1 (Vị trí đầu thôi)
C/ 26 (Vị trí cuối)

Còn công thức này:
=SEARCH(C4,$B$4:$B$21,1)
Thì theo mình bạn muốn tìm vị trí của số 1 trong cả 1 vùng [B4:B21]. Vậy kết quả nó sẽ ra gì đây?
A/ 8-9-10-14-15-17
B/ 8-9-10-#VALUE!-#VALUE!-#VALUE!-14-15-17-#VALUE!

Cái mà bạn nghĩ ra phải ứng với hiện thực bạn cần sài thì mới có tác dụng đó.
Thân.
 
Để tìm một chuỗi con trong một chuỗi lớn ta thường dùng hàm Find hoặc hàm Search.
Vd: =SEARCH(E4;B4;1)
Vậy có công thức nào tìm được nhiều chuỗi con trong một chuỗi lớn không ?
Tôi thử một số cách nhưng không được (xem file đính kèm).
Nhờ các chỉ giúp hoặc làm giúp công thức

Xin cảm ơn !
Theo những gì thể hiện từ công thức trong file, tôi đoán bạn muốn tìm 1 chuổi trong cả 1 vùng (chứ ko phải tìm một chuỗi con trong một chuỗi lớn )
Bạn thử tham khảo bài này xem:
http://www.giaiphapexcel.com/forum/showthread.php?t=6037
Các công thức trong file bạn, cột E và F lý ra phải là công thức mãng mới đúng... (bấm Ctrl + Shift + Enter khi nhập xong công thức rồi bôi đen công thức trên thanh Formula và bấm F9 để xem kết quả
Bạn thử nói xem bạn đang có ý tưởng gì nào?
 
Theo những gì thể hiện từ công thức trong file, tôi đoán bạn muốn tìm 1 chuổi trong cả 1 vùng (chứ ko phải tìm một chuỗi con trong một chuỗi lớn )
Bạn thử tham khảo bài này xem:
http://www.giaiphapexcel.com/forum/showthread.php?t=6037
Các công thức trong file bạn, cột E và F lý ra phải là công thức mãng mới đúng... (bấm Ctrl + Shift + Enter khi nhập xong công thức rồi bôi đen công thức trên thanh Formula và bấm F9 để xem kết quả
Bạn thử nói xem bạn đang có ý tưởng gì nào?

Hôm nay trong khi tổng hợp dữ liệu Tôi có nhu cầu như đã nêu trong bài này và đã nghiên cứu bài của Ndu:
trich:- Anh cứ tưởng tượng cái dấu * ấy là AND+OR (sẽ vô cùng dể hiểu)
IF(('DU LIEU'!$B$20=LG)*('DU LIEU'!$B$3:$G$16<>""),COLUMN('DU LIEU'!$B$2:$G$2),"")
Diển giãi:
NẾU ((trong mãng LG, có thằng em nào = với $B$3) ($B$3:$G$16 không rổng) THÌ ta lấy COLUMN của vùng B$2:$G$2, NGƯỢC LẠI thì.. không lấy gì cả) ---> (cho rổng luôn)...

Trong bài này ndu tìm chuỗi trong ô $B$3 xem chuỗi đó có giống với chuỗi trong vùng dữ liệu mãng LG ? tức là tìm một chuỗi trong một vùng.

Nhưng từ câu giải thích NẾU ((trong mãng LG, có thằng em nào = với $B$20....
Tôi nảy sinh ý nghĩ tìm trong mảng $B$4:$B$21 xem có em nào = với C4 không
Tức là tôi muốn tìm 1 chuỗi bất kỳ trong mảng $B$4:$B$21 xem có chuỗi nào giống với một chuỗi con trong chuỗi lớn đang xét.

ví dụ: trong $B$4:$B$21 cócác chuỗi con 1, 2, 3, 4, 5... trong đó có số 3 là số nằm trong chuỗi lớn Chính...3
Tôi cũng đã thử công thức mảng đối với hàm Search nhưng không được (tôi không thạo công thức lắm). Rất mong các bạn quan tâm giúp đỡ.

Xin cảm ơn !
 
Thật ra bài anh trích dẩn và bài post ở đây có hơi khác nhau 1 chút:
NẾU ((trong mãng LG, có thằng em nào = với $B$3
tức là trong vùng LG có cell nào = cell $B$3 không (chính xác = nhau luôn)---> Tức ta xét nguyên cả cell bao gồm toàn bộ chuổi chứa trong nó ---> Còn bài anh post ở đây thì xét xem 1 chuổi nào đó có tồn tại ở 1 cell nào đó (mà cell đó lại nằm trong 1 vùng) ---> Cái này gần giống chức năng Find (Ctrl + F)
Ví dụ: Tại E4 anh gõ công thức:
=SEARCH($C4,$B$4:$B$21,1)

rồi Ctrl + Shift + Enter thì có nghĩa là:
- Lấy C4 mang đi so với từng em từ B4 đến B21, chỉ cần 1 cell nào đó trong vùng này có chứa chuổi C4 (chỉ cần có chứa chuổi C4, không cần =C4)thì nó sẽ cho kết quả là 1 số nào đó, ngược lại nếu không có thì nó cho kết quả = #VALUE!
- Vậy sau khi thiết lập xong công thức, anh bôi đen nó trên thanh Formula rồi bấm F9 sẽ thấy ngay
------------
===> Chổ khác nhau cơ bản giữa bài anh trích dẩn và bài post tại đây nằm ở 2 dòng tô màu xanh ấy
 
Cảm ơn Ndu !
Trong bài của bạn mà tôi trích dẫn cái mà tôi tâm đắc nhất chính là ý tưởng tìm một chuỗi con trong một mảng (vùng), thay vì tìm chuỗi con trong chuỗi lớn nằm trong một ô như ta vẫn thường làm. Từ ý tưởng đó Tôi mới nảy sinh ý tưởng làm ngược lại nhằm rút ngắn việc tìm kiếm theo cách thông thường.
Tôi nghĩ rằng ý tưởng này có thể hiện được nhưng có lẽ công thức rất phức tạp - kẹt nỗi tôi không thạo về công thức lắm nhất là công thức mảng.
Mong được các bạn cùng nghiên cứu, trao đổi.
Thân !
 
Cảm ơn Ndu !
Trong bài của bạn mà tôi trích dẫn cái mà tôi tâm đắc nhất chính là ý tưởng tìm một chuỗi con trong một mảng (vùng), thay vì tìm chuỗi con trong chuỗi lớn nằm trong một ô như ta vẫn thường làm. Từ ý tưởng đó Tôi mới nảy sinh ý tưởng làm ngược lại nhằm rút ngắn việc tìm kiếm theo cách thông thường.
Tôi nghĩ rằng ý tưởng này có thể hiện được nhưng có lẽ công thức rất phức tạp - kẹt nỗi tôi không thạo về công thức lắm nhất là công thức mảng.
Mong được các bạn cùng nghiên cứu, trao đổi.
Thân !
Đương nhiên là được chứ anh! Đường link trong bài số #3 chính là 1 trong số đó ---> Anh tham khảo xem!
 
@ ndu: theo chỉ dẫn của bạn mình tìm được bài rồi !
@ anhtuan1066: hôm qua tôi cũng đã xem bài theo chỉ dẫn của bạn nhưng do không nghiên cứu kỹ nên chưa hiểu, hôm nay xem lại bài của bạn thì thấy đúng ý rồi nhưng chưa có thời gian thử công thức vào bài. Tôi sẽ nghiên tiếp nếu có gì cần trao đổi bạn vui lòng giúp nhé.

Cảm ơn các bạn nhiều!
 
Tôi áp dụng công thức tìm chuỗi con trong bài "tách tỉnh" của bạn anhtuan1066 vào bài của mình thì gặp tình huống như sau:
Nếu chuối con (chuỗi cần tìm) bắt đầu từ ký tự đầu tiên của chuỗi lớn thì kết quả cho là 0 (không phải là không tìm thấy). Còn ở từ ký tự thứ 2 trở đi thì tìm thấy (xem File đính kèm).
Xin các bạn chỉ giúp nguyên nhân và cách khắc phục. Thank !
 

File đính kèm

  • TimChuôiCon.xls
    54 KB · Đọc: 51
Tôi áp dụng công thức tìm chuỗi con trong bài "tách tỉnh" của bạn anhtuan1066 vào bài của mình thì gặp tình huống như sau:
Nếu chuối con (chuỗi cần tìm) bắt đầu từ ký tự đầu tiên của chuỗi lớn thì kết quả cho là 0 (không phải là không tìm thấy). Còn ở từ ký tự thứ 2 trở đi thì tìm thấy (xem File đính kèm).
Xin các bạn chỉ giúp nguyên nhân và cách khắc phục. Thank !
Trong cột G (Danh sách điểm) anh hãy xóa hết các dòng rổng thử xem!
 

File đính kèm

  • TimChuôiCon.xls
    44.5 KB · Đọc: 61
Cảm ơn Ndu đã giúp, đúng là tại các dòng rỗng (nhớ để đời).
 
Web KT
Back
Top Bottom