Mỗi tuần một chuyên đề

Có cách nào tìm 1 ký tự trong một chuỗi lặp lại bao nhiêu lần?

  • Thread starter ntb_802
  • Ngày gửi
N

ntb_802

Guest
15/11/04
39
1
0
47
Ha Noi
Ví dụ:mình có chuỗi như sau: abcdabcdabcd
công thức nào tìm chữ "a" trong chuỗi trên lặp lại bao nhiêu lần, mình lần mãi chẳnng thấy đâu, các bạn giúp mình với!
 
Khóa học Quản trị dòng tiền
HongViet

HongViet

Cao cấp
10/11/05
286
10
18
Đà nẵng
Bạn nên dùng hàm tự tạo, chắc vậy!

Nếu dùng công thức trong excel thì khó lắm!
Hàm tự tạo thì dùng hàm Instr(Num,"Str1", "Str2")
[Nếu bạn không cụ thể hóa được mình sẽ giúp sau!]
 
adam_tran

adam_tran

Guitar inspiration
17/5/05
1,374
36
48
46
Goooogle
HongViet nói:
Nếu dùng công thức trong excel thì khó lắm!
Hàm tự tạo thì dùng hàm Instr(Num,"Str1", "Str2")
[Nếu bạn không cụ thể hóa được mình sẽ giúp sau!]

Hì, không khó đâu! bạn có thể dùng hàm SUBSTITUTE để xoá đi ký tự cần tìm (thay thế bằng ký tự rỗng ""), lúc đó chuỗi mới sẽ không còn chuỗi cần đếm nữa. Đếm độ dài chuỗi mới giảm bao nhiêu ký tự (bằng cách lấy độ dài chuỗi cũ trừ độ dài chuỗi mới), kết quả chia cho độ dài chuỗi cần đếm, sẽ biết được nó lặp lại bao nhiêu lần.

Thí dụ ở ô A1 bạn có chuỗi abc, ở ô A2 bạn có chuỗi ahjabckjdhhabckjhdgabcljjhhaabckh

Tại A3 bạn nhập công thức: =(LEN(A2)-LEN(SUBSTITUTE(A2;A1;"")))/LEN(A1), nó sẽ cho đúng giá trị = 4.
 
Sửa lần cuối:
N

ntb_802

Guest
15/11/04
39
1
0
47
Ha Noi
Cám ơn các bạn đã Giúp đỡ, hàm của bạn Hồng Việt mình thấy kết quả không đúng (mình đã làm đúng như bạn hướng dẫn - hay bạn thử lại xem), cách của Adam_tran đúng là pro, chuyên nghiệp thật, rất đơn giản mà hay, một lần nữa cám ơn bạn nhé.
 
Secret_grasses

Secret_grasses

Guest
ntb_802 nói:
Cám ơn các bạn đã Giúp đỡ, hàm của bạn Hồng Việt mình thấy kết quả không đúng (mình đã làm đúng như bạn hướng dẫn - hay bạn thử lại xem), cách của Adam_tran đúng là pro, chuyên nghiệp thật, rất đơn giản mà hay, một lần nữa cám ơn bạn nhé.

Anh Hồng Việt chỉ gợi ý cho bạn, để viết hàm bằng VBA. Bạn cóp nguyên công thức của ảnh mà chưa viết hàm thì cho ra kết quả sai là đúng rồi.:friend:.
 
N

ntb_802

Guest
15/11/04
39
1
0
47
Ha Noi
Secret_grasses nói:
Anh Hồng Việt chỉ gợi ý cho bạn, để viết hàm bằng VBA. Bạn cóp nguyên công thức của ảnh mà chưa viết hàm thì cho ra kết quả sai là đúng rồi.:friend:.
Đây là nguyên văn hàm mà bạn Hồng Việt gửi bằng cửa hâụ cho mình, bạn kiểm tra xem thế nào nhé mình chạy nhưng kết quả không đúng.

Function FinDLap(Str1 As String, STr2 As String) as integer
Dim iJ As Integer, iDem As Integer, iDai As Integer, iTam As Integer
iDai = len(Str1)
For iJ = 1 to iDai
iTam = Instr(iJ, Str1, Str2)
IF iTam >0 then
iDem = IDem +1: Str1=Mid(Str1,iTam)
End if
Next iJ
FINDLap = iDem
End Function
 

Xem nhiều

Webketoan Zalo OA