giúp đỡ cách đếm số ký tự không trùng lặp trong 1 ô

Liên hệ QC

manhmd169

Thành viên mới
Tham gia
28/4/20
Bài viết
1
Được thích
1
help me.

xin anh chị em trên diễn đàn giúp đỡ, mình gà gà excel quá nên nhờ mọi người giúp cho.

CÁCH ĐẾM CÁC KÝ TỰ KHÔNG TRÙNG LẶP TRONG 1Ô.

rất mong mọi người chỉ giáo
 
Bạn tham khảo bài viết.
 
Lâu lâu thử đếm vú "heo mẹ":
- đặt ra một mảng (0 đến 33000)
- duyệt chuỗi từ ký tự đầu đến ký tự áp cuối.
- nếu InStr = InStrRev = i thì ký tự là duy nhất: dem = dem + 1
- xong vòng lặp thì trị dem cho biết số ký tự khongp trùng lặp.
Bài này code VBA quá dễ. Vì vậy, công thức khủng vui hơn.
 
Đang rảnh, hahaha ...
PHP:
Public Function DemKhongTrung(ByVal txt As String) As Long
Do While Len(txt) > 0
    DemKhongTrung = DemKhongTrung + 1
    txt = Replace(txt, Left(txt, 1), "")
Loop
End Function
nếu muốn không phân biệt chữ Hoa chữ thường làm sao ?
 
nếu muốn không phân biệt chữ Hoa chữ thường làm sao ?
PHP:
Public Function DemKhongTrung(ByVal txt As String) As Long
txt = UCase(txt)' "Thêm dòng này"
Do While Len(txt) > 0
    DemKhongTrung = DemKhongTrung + 1
    txt = Replace(txt, Left(txt, 1), "")
Loop
End Function
 
PHP:
Public Function DemKhongTrung(ByVal txt As String) As Long
txt = UCase(txt)' "Thêm dòng này"
Do While Len(txt) > 0
    DemKhongTrung = DemKhongTrung + 1
    txt = Replace(txt, Left(txt, 1), "")
Loop
End Function
Anh ơi. Theo em làm thêm cái Optional Byval nữa ạ
Nếu tu tu thì xét hoa còn fun thì không hoa hoét gì hết ạ
 
Giải thuật của tôi đếm số ký tự chỉ hiện 1 lần (không bị trùng).
"abcabd" -> 2 (cd)
Bởi vậy mới gọi là đếm vú heo mẹ.
1588083094369.png

Anh ơi. Theo em làm thêm cái Optional Byval nữa ạ
Nếu tu tu thì xét hoa còn fun thì không hoa hoét gì hết ạ
Lắm chuyện. Lại theo phong cách một cái làm đủ thứ. Tập cho ngừoi dùng lười.
Nếu muốn không phân biệt hoa thường thì ngừoi dùng chỉ việc Upper chuỗi đàu vào lên thôi.
Phải chừa chỗ cho ngừoi ta tự quyền biến chớ.
 
Lần chỉnh sửa cuối:
Giải thuật của tôi đếm số ký tự chỉ hiện 1 lần (không bị trùng).
"abcabd" -> 2 (cd)
Bởi vậy mới gọi là đếm vú heo mẹ.
Hahaha ...
PHP:
Public Function DemVuHeoMe(ByVal txt As String) As Long
Dim t As String
Do While Len(txt) > 0
    t = Replace(txt, Left(txt, 1), "")
    If Len(txt) - Len(t) = 1 Then DemVuHeoMe = DemVuHeoMe + 1
    txt = t
Loop
End Function
 
Đếm duy nhất có phân biệt hoa thường:
=CharUniqueCount("aAbBcCdef", True)
=CharUniqueCount("aAbBcCdef", False)
----------------------------------------
PHP:
Public Function CharUniqueCount(ByVal Text As String, _
                 Optional ByVal IgnoreCase As Boolean = False) As Long
  While Text <> vbNullString
    Text = Replace(Text, Left(Text, 1), vbNullString, , , -IgnoreCase)
    CharUniqueCount = CharUniqueCount + 1
  Wend
End Function
----------------------------------------

Đếm có điều kiện, có phân biệt hoa thường:

=CharCount("aAbBcCdef", "=1", True)
=CharCount("aabbccdef", ">1")
=CharCount("aaabbbccdef", ">2")
=CharCount("aaabbbccdef", "=2")
=CharCount("aaabbbccdef", "<>2")
----------------------------------------
PHP:
Public Function CharCount(ByVal Text As String, _
                 Optional ByVal Expression As String = "=1", _
                 Optional ByVal IgnoreCase As Boolean = False) As Long
  Dim oText As String
  While Text <> vbNullString
    Text = Replace(Text, Left(Text, 1), vbNullString, , , -IgnoreCase)
    If Evaluate(Len(oText) & "-" & Len(Text) & Expression) Then CharCount = CharCount + 1
    oText = Text
  Wend
End Function
 
help me.

xin anh chị em trên diễn đàn giúp đỡ, mình gà gà excel quá nên nhờ mọi người giúp cho.

CÁCH ĐẾM CÁC KÝ TỰ KHÔNG TRÙNG LẶP TRONG 1Ô.

rất mong mọi người chỉ giáo
Bạn có thể sử dụng công thức này:
=SUMPRODUCT(N(LEN(A1)-LEN(SUBSTITUTE(A1,MID(A1,ROW($1:$100),1),""))=1))
 
Web KT

Bài viết mới nhất

Back
Top Bottom