excel中怎样统计一个单元格中的数字个数并按重复次数多少排列?

如题所述

=MOD(LARGE((LEN($A1)-LEN(SUBSTITUTE($A1,ROW($A$1:$A$10)-1,"")))*100+ROW($A$1:$A$10),COLUMN(A$1)),100)-1&"("&LARGE(LEN($A1)-LEN(SUBSTITUTE($A1,ROW($A$1:$A$10)-1,"")),COLUMN(A$1))&")"
数组公式,即同时按Shift+Ctrl+Enter结束公式编辑,会自动生成一对{},右拉
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-16
假定a1为你的值所在。
构造第2行:a2=0 b2=1 ... J2=9
第三行:a3
=LEN($A$1)-LEN(SUBSTITUTE($A$1,A2,""))
上面的formular给出了统计a1单元格内0的次数
拉到J3, 一直运算到出现9的次数。

copy a2 to j3,
save value only to a4-j5
sort a4-j5 by row5 left to right largest to smallest

最后把两行写成新的一行,第六行
a6=a4&"("&a5&")"
拉到j6
统计,排列完毕。本回答被网友采纳
第2个回答  推荐于2016-06-26
 Function f(rg As Range, p As Integer)
    Dim a(1 To 10)
    Set d = CreateObject("scripting.dictionary")
    For i = 1 To Len(rg)
        c = Mid(rg, i, 1)
        d(c) = d(c) + 1
    Next
    k = 10
    For i = 0 To 9
        c = Chr(Asc("9") - i)
        If Not d.exists(c) Then
            a(k) = c & "(0)"
            k = k - 1
        End If
    Next
    k = 0
    Do While d.Count > 0
        x = ""
        y = 0
        For Each c In d
            If d(c) > y Then
                x = c
                y = d(c)
            End If
        Next
        k = k + 1
        a(k) = x & "(" & y & ")"
        d.Remove (x)
    Loop
    f = a(p)
End Function

a3填:

=f($A$1,COLUMN(A1))

右拉

本回答被提问者采纳
第3个回答  2015-09-16
用 VBA 代码很容易做到,建议使用。
相似回答