Hàm tìm ký tự xuất hiện ít nhất và nhiều nhất (8 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

Dùng thử công thức mảng này:
Mã:
=MID(A1,MATCH(MAX(FREQUENCY(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),A1),ROW(INDIRECT("1:"&LEN(A1))))),
FREQUENCY(FIND(MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),A1),ROW(INDIRECT("1:"&LEN(A1)))),0),1)
Bác ơi, công thức này mà bác cũng nghĩ ra được, tài quá bác
Dài kinh khủng
Rất hay bác ơi, nhưng khó dùng quá bác à
Bác nghĩ xem có cái nào ngắn gọn hơn không hở bác?
Cháu cảm ơn bác
 
Ngắn hơn một chút:

Mã:
=MID(A1,MATCH(MAX(LEN(A1)-LEN(SUBSTITUTE(A1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))),
LEN(A1)-LEN(SUBSTITUTE(A1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"")),0),1)
 
Ngắn hơn một chút:

Mã:
=MID(A1,MATCH(MAX(LEN(A1)-LEN(SUBSTITUTE(A1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),""))),
LEN(A1)-LEN(SUBSTITUTE(A1,MID(A1,ROW(INDIRECT("1:"&LEN(A1))),1),"")),0),1)
Bác ơi, nhưng mới tìm trong 1 ô
thế còn tất cả các ô thì như nào hở bác?
 
Thử, số trên là tìm nhiều nhất dưới là ít nhất, fill xuống:
Mã:
=INDEX(T(INDIRECT(TEXT(MID(SUBSTITUTE(AGGREGATE({14;15},6,ROW($4:$10)/100+COLUMN($B:$C)/10^5+COUNTIF($B$4:$C$10,$B$4:$C$10)/ISTEXT($B$4:$C$10),1),".",REPT("0",10)),10,10),"R0C000"),0)),ROW(A1))
 
Thử, số trên là tìm nhiều nhất dưới là ít nhất, fill xuống:
Mã:
=INDEX(T(INDIRECT(TEXT(MID(SUBSTITUTE(AGGREGATE({14;15},6,ROW($4:$10)/100+COLUMN($B:$C)/10^5+COUNTIF($B$4:$C$10,$B$4:$C$10)/ISTEXT($B$4:$C$10),1),".",REPT("0",10)),10,10),"R0C000"),0)),ROW(A1))
hu hu.... toàn công thức khủng quá anh
Bài đã được tự động gộp:

Cảm ơn anh
Anh viết giúp em với anh ơi
 

File đính kèm

File đính kèm

File đính kèm

Em cảm ơn anh rất nhìu
Nhưng còn vấn đề này nữa anh ơi
Nếu em cần lấy thêm những mảng khác vào nữa thì làm như nào hở anh?
Dạ vâng ạ
cả số và chữ
Bạn test thử hàm này xem sao.
Cú pháp:
Tìm ký tự max : TimKyTu(1, Vùng tìm kiếm )
Tìm ký tự min : TimKyTu(0, Vùng tìm kiếm )
Mã:
Public Function TimKyTu(Dk, ParamArray Mang() As Variant)
Dim Chuoi
Dim Dem
Dim NMin(1), NMax(1)
Dim i, j, k, x, z, t
ReDim Dem(48 To 122)
For Each j In Mang
    If IsArray(j) = False Then
        Chuoi = WorksheetFunction.Trim(j)
        x = Len(Chuoi)
        If x Then
            For i = 1 To x
                k = AscW(Mid(Chuoi, i, 1))
                Dem(k) = Dem(k) + 1
            Next i
            z = z + x
        End If
    Else
        For Each t In j
            Chuoi = WorksheetFunction.Trim(t)
            x = Len(Chuoi)
            If x Then
                For i = 1 To x
                    k = AscW(Mid(Chuoi, i, 1))
                    Dem(k) = Dem(k) + 1
                Next i
                z = z + x
            End If
        Next t
    End If
Next j
NMin(0) = z
For i = LBound(Dem) To UBound(Dem)
    If Dem(i) >= 1 Then
        If NMin(0) > Dem(i) Then
            NMin(0) = Dem(i)
            NMin(1) = i
        Else
            If NMin(0) = Dem(i) Then
                NMin(1) = NMin(1) & " " & i
            End If
        End If
        If NMax(0) < Dem(i) Then
            NMax(0) = Dem(i)
            NMax(1) = i
        Else
            If NMax(0) = Dem(i) Then
                NMax(1) = NMax(1) & " " & i
            End If
        End If
    End If
Next i
Chuoi = ""
If Dk Then
    For Each i In Split(Trim(NMax(1)))
        Chuoi = Chuoi & " " & ChrW(CLng(i))
    Next i
Else
    For Each i In Split(Trim(NMin(1)))
        Chuoi = Chuoi & " " & ChrW(CLng(i))
    Next i
End If
TimKyTu = Trim(Chuoi)
End Function
 
Bữa hiểu sai giờ làm lại, gần đúng, theo thứ tự bảng chữ cái không theo ô.
Trên là nhiều nhất fill xuống là thấp nhất:
Mã:
=INDEX(CHAR(RIGHT(AGGREGATE({14;15},6,1/(1/MMULT(COLUMN(A:N)^0,LEN(T(OFFSET(B4,(ROW($1:$14)-1)/2,MOD(ROW($1:$14),2))))-LEN(SUBSTITUTE(UPPER(T(OFFSET($B$4,(ROW($1:$14)-1)/2,MOD(ROW($1:$14),2)))),CHAR(COLUMN(A:Z)+64),""))))*1000+COLUMN(A:Z)+64,1),3)),ROW(A1))
 
hI HI.... Nếu anh đếm được thì anh đếm giúp em xem có nhanh và gọn không nào?
Góp thêm cách khác với những vấn đề có thể xảy ra:
  1. Ký tự xuất hiện "nhiều" hay "ít" sẽ có trường hợp đồng hạng, nên liệt kê hết các ký tự này.
  2. Phân biệt ký tự thường và ký tự chữ in hoa.
Trong file sẽ liệt kê số lần xuất hiện của toàn bộ các ký tự
Nhiều nhất:
Mã:
=IFERROR(CHAR(MOD(AGGREGATE(14,6,1/(1/FREQUENCY(IFERROR(CODE(MID($B$4:$B$10&$C$4:$C$10,COLUMN($A:$U),1)),""),ROW($48:$122)))*10^6+ROW($48:$122),ROW($A1)),10^6)),"")
Kết thúc bằng Ctrl+Shift+Enter, fill xuống.
Ít nhất:
Mã:
=IFERROR(CHAR(MOD(AGGREGATE(15,6,1/(1/FREQUENCY(IFERROR(CODE(MID($B$4:$B$10&$C$4:$C$10,COLUMN($A:$U),1)),""),ROW($48:$122)))*10^6+ROW($48:$122),ROW($A1)),10^6)),"")
Kết thúc bằng Ctrl+Shift+Enter, fill xuống.

Thân
 

File đính kèm

Góp thêm cách khác với những vấn đề có thể xảy ra:
  1. Ký tự xuất hiện "nhiều" hay "ít" sẽ có trường hợp đồng hạng, nên liệt kê hết các ký tự này.
  2. Phân biệt ký tự thường và ký tự chữ in hoa.
Trong file sẽ liệt kê số lần xuất hiện của toàn bộ các ký tự
Nhiều nhất:
Mã:
=IFERROR(CHAR(MOD(AGGREGATE(14,6,1/(1/FREQUENCY(IFERROR(CODE(MID($B$4:$B$10&$C$4:$C$10,COLUMN($A:$U),1)),""),ROW($48:$122)))*10^6+ROW($48:$122),ROW($A1)),10^6)),"")
Kết thúc bằng Ctrl+Shift+Enter, fill xuống.
Ít nhất:
Mã:
=IFERROR(CHAR(MOD(AGGREGATE(15,6,1/(1/FREQUENCY(IFERROR(CODE(MID($B$4:$B$10&$C$4:$C$10,COLUMN($A:$U),1)),""),ROW($48:$122)))*10^6+ROW($48:$122),ROW($A1)),10^6)),"")
Kết thúc bằng Ctrl+Shift+Enter, fill xuống.

Thân
Cháu cảm ơn bác
Dài quá bác oi
 
Góp thêm cách khác với những vấn đề có thể xảy ra:
  1. Ký tự xuất hiện "nhiều" hay "ít" sẽ có trường hợp đồng hạng, nên liệt kê hết các ký tự này.
  2. Phân biệt ký tự thường và ký tự chữ in hoa.
Trong file sẽ liệt kê số lần xuất hiện của toàn bộ các ký tự
Nhiều nhất:
Mã:
=IFERROR(CHAR(MOD(AGGREGATE(14,6,1/(1/FREQUENCY(IFERROR(CODE(MID($B$4:$B$10&$C$4:$C$10,COLUMN($A:$U),1)),""),ROW($48:$122)))*10^6+ROW($48:$122),ROW($A1)),10^6)),"")
Kết thúc bằng Ctrl+Shift+Enter, fill xuống.
Ít nhất:
Mã:
=IFERROR(CHAR(MOD(AGGREGATE(15,6,1/(1/FREQUENCY(IFERROR(CODE(MID($B$4:$B$10&$C$4:$C$10,COLUMN($A:$U),1)),""),ROW($48:$122)))*10^6+ROW($48:$122),ROW($A1)),10^6)),"")
Kết thúc bằng Ctrl+Shift+Enter, fill xuống.

Thân
Nếu xuất hiện nhiều nhất sao bạn không dùng Mode?
 
Web KT

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

Back
Top Bottom