You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何统计Excel单元格中数字字符的出现频次?

Excel统计单元格内数字的最高出现次数(无重复则返回0)

假设你的数字列表在A列,以下是几种实现需求的方法:

方法一:数组公式(兼容Excel 2019及更早版本)

在B1单元格输入以下公式,按Ctrl+Shift+Enter组合键确认输入(数组公式需按此组合键),然后下拉填充到所有需要计算的行:

=IF(MAX(LEN(A1)-LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},"")))=1,0,MAX(LEN(A1)-LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},""))))

公式说明:

  • LEN(A1)-LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},"")):逐个计算0-9每个数字在当前单元格中的出现次数
  • MAX(...):提取这些次数里的最大值
  • IF判断:如果最大值为1(即所有数字仅出现1次,无重复),返回0;否则返回该最大值

方法二:动态数组公式(适用于Excel 365/2021)

Excel 365及2021支持动态数组,公式更简洁,输入后会自动向下填充:

=LET(counts,LEN(A1)-LEN(SUBSTITUTE(A1,SEQUENCE(10,,0),)),max_count,MAX(counts),IF(max_count=1,0,max_count))

公式说明:

  • SEQUENCE(10,,0):自动生成0-9的数字序列,替代手动输入的数组
  • LET函数给中间计算结果命名,让公式逻辑更清晰
  • 后续判断逻辑和数组公式一致

方法三:VBA自定义函数

如果需要更灵活的批量处理,可自定义函数:

  1. 按下Alt+F11打开VBA编辑器
  2. 点击菜单栏「插入」→「模块」,粘贴以下代码:
Function MaxDigitCount(rng As Range) As Integer
    Dim cellText As String, i As Integer, digitCounts(9) As Integer, maxCount As Integer
    cellText = rng.Value
    ' 遍历每个字符统计次数
    For i = 1 To Len(cellText)
        digitCounts(Mid(cellText, i, 1)) = digitCounts(Mid(cellText, i, 1)) + 1
    Next i
    maxCount = Application.Max(digitCounts)
    ' 判断是否返回0或最大值
    MaxDigitCount = IIf(maxCount = 1, 0, maxCount)
End Function
  1. 返回Excel界面,在B1单元格输入=MaxDigitCount(A1),下拉填充即可

以上三种方法都能得到你期望的结果,比如:

  • A1单元格为11111时,B1返回5
  • A2单元格为12345时,B2返回0
  • A3单元格为23222时,B3返回4

内容的提问来源于stack exchange,提问作者Amod

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 22:10:40