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

如何在Excel中统计G列数组列表中各数值的出现次数?

Excel统计G列数组中数字出现次数的解决思路

方法1:拆分数组为单个值后统计

  • 先处理格式:选中G列,用查找替换把{和}替换为空,让单元格内容变成10,11,12这种纯逗号分隔的格式
  • 拆分数字:选中处理后的G列,点击「数据」选项卡→「分列」,选择「分隔符号」→勾选「逗号」,完成后每个数字会被拆到相邻列
  • 统计次数:比如要统计10的出现次数,直接用公式 =COUNTIF(所有拆分出的数字区域,10),其他数字同理

方法2:用TEXTJOIN+SUMPRODUCT(Excel 2019及以上可用)

  • 合并所有数字为文本串:在空白单元格输入公式
    =TEXTJOIN(",",TRUE,SUBSTITUTE(SUBSTITUTE(G:G,"{",""),"}",""))
    
    这个公式会把G列所有数组的数字用逗号连起来,变成10,11,12,10,11,12,11,12,14这样的字符串
  • 统计目标数字次数:比如统计10的次数,用下面的公式(把A1换成上面合并文本的单元格)
    =SUMPRODUCT(--(FILTERXML("<a><b>"&SUBSTITUTE(A1,",","</b><b>")&"</b></a>","//b")=10))
    

方法3:动态数组公式(Excel 365/2021专属)

  • 直接生成所有数字的次数统计,输入以下公式后回车,会自动生成结果:
    =LET(
        处理后文本,SUBSTITUTE(SUBSTITUTE(G:G,"{",""),"}",""),
        所有数字,TEXTSPLIT(TEXTJOIN(",",TRUE,处理后文本),","),
        唯一数字,SORT(UNIQUE(所有数字)),
        出现次数,COUNTIF(所有数字,唯一数字),
        HSTACK(唯一数字,出现次数)
    )
    
  • 如果需要统计指定范围的数字(比如10到14,包括没出现的13),把公式里的唯一数字改成SEQUENCE(5,1,10),出现次数改成COUNTIF(所有数字,SEQUENCE(5,1,10)),就能得到10-14每个数字的次数,包括0次的13

方法4:VBA脚本批量处理(适合旧版本Excel或大量数据)

  • 按Alt+F11打开VBA编辑器,右键当前工作表→插入→模块,粘贴以下代码:
    Sub 统计数组数字次数()
        Dim ws As Worksheet
        Dim lastRow As Long, i As Long
        Dim arr As Variant, num As Variant
        Dim countDict As Object
        
        Set ws = ActiveSheet
        lastRow = ws.Cells(ws.Rows.Count, "G").End(xlUp).Row
        Set countDict = CreateObject("Scripting.Dictionary")
        
        ' 遍历G列所有行,拆分数组并统计次数
        For i = 1 To lastRow
            arr = Split(Replace(Replace(ws.Cells(i, "G").Value, "{", ""), "}", ""), ",")
            For Each num In arr
                num = Trim(num)
                If IsNumeric(num) Then
                    countDict(num) = countDict(num) + 1
                End If
            Next num
        Next i
        
        ' 输出结果到I、J列
        ws.Range("I1:J1") = Array("数字", "出现次数")
        i = 2
        For Each num In countDict.Keys
            ws.Cells(i, "I").Value = num
            ws.Cells(i, "J").Value = countDict(num)
            i = i + 1
        Next num
    End Sub
    
  • 点击运行按钮,结果会自动输出到I、J列;如果需要补充未出现的数字,手动添加行即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 12:44:57