hongphuong1997
Thành viên tiêu biểu

- Tham gia
- 12/11/17
- Bài viết
- 773
- Được thích
- 322
- Giới tính
- Nữ
Tìm làm gì, ứng dụng cụ thể vào đâuEm nhờ các bác và anh chị giúp đỡ như file đính kèm
Bác ơi, công thức này mà bác cũng nghĩ ra được, tài quá bácDù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, nhưng mới tìm trong 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)
=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))
Dùng VBA tìm cho nhanh.Em nhờ các bác và anh chị giúp đỡ như file đính kèm
hu hu.... toàn công thức khủng quá anhThử, 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))
Cảm ơn anhDùng VBA tìm cho nhanh.
Vậy trong trường hợp nó có 2 ký tự cùng số lần xuất hiện lớn nhất thì lấy ký tự nào vậy.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
Em cảm ơn anh ạVậy trong trường hợp nó có 2 ký tự cùng số lần xuất hiện lớn nhất thì lấy ký tự nào vậy.
Đây em xem.Em cảm ơn anh ạ
Anh ơi, nếu nhiều hơn 1 ký tự thì nối lại với nhau bằng dấu";"
Em cảm ơn anh
Ký tự ở đây là cả số & chữ hả bạnEm nhờ các bác và anh chị giúp đỡ như file đính kèm
Em cảm ơn anh rất nhìuĐây em xem.
Dạ vâng ạKý tự ở đây là cả số & chữ hả bạn
Bạn test thử hàm này xem sao.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ữ
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
=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))
Góp thêm cách khác với những vấn đề có thể xảy ra:hI HI.... Nếu anh đếm được thì anh đếm giúp em xem có nhanh và gọn không nào?
=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)),"")
=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)),"")
Cháu cảm ơn bácGóp thêm cách khác với những vấn đề có thể xảy ra:
Trong file sẽ liệt kê số lần xuất hiện của toàn bộ các ký tự
- 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.
- Phân biệt ký tự thường và ký tự chữ in hoa.
Nhiều nhất:Kết thúc bằng Ctrl+Shift+Enter, fill xuống.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)),"")
Ít nhất:Kết thúc bằng Ctrl+Shift+Enter, fill xuống.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)),"")
Thân
Nếu tính tổng số ký tự có trong công thức, đem so sánh với tổng số ký tự có trong code VBA thì xem cái nào dài hơn!?Cháu cảm ơn bác
Dài quá bác oi
Nếu xuất hiện nhiều nhất sao bạn không dùng Mode?Góp thêm cách khác với những vấn đề có thể xảy ra:
Trong file sẽ liệt kê số lần xuất hiện của toàn bộ các ký tự
- 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.
- Phân biệt ký tự thường và ký tự chữ in hoa.
Nhiều nhất:Kết thúc bằng Ctrl+Shift+Enter, fill xuống.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)),"")
Ít nhất:Kết thúc bằng Ctrl+Shift+Enter, fill xuống.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)),"")
Thân