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

Excel VBA如何统计A列唯一值的出现次数并写入对应C列

方案1:直接使用Excel公式(最简单高效)
  • 选中C1单元格,输入公式 =COUNTIF(A:A,B1)
  • 选中C1单元格,鼠标移动到单元格右下角,当光标变成十字填充柄时下拉,自动填充到B列有值的最后一行即可完成统计。
方案2:VBA代码实现

你原本设想的逻辑需要多次遍历A列,数据量较大时效率较低,推荐用字典一次性统计所有值的出现次数,再批量写入C列,运行效率更高,适配所有Excel版本无需额外配置:

Sub 统计唯一值出现次数()
    Dim dic As Object, lastA As Long, lastB As Long, i As Long
    ' 后期绑定创建字典,无需手动引用库
    Set dic = CreateObject("Scripting.Dictionary")
    ' 获取A列最后一个有数据的行号
    lastA = Cells(Rows.Count, "A").End(xlUp).Row
    ' 遍历A列统计所有值的出现次数
    For i = 1 To lastA
        If Cells(i, "A").Value <> "" Then
            dic(Cells(i, "A").Value) = dic(Cells(i, "A").Value) + 1
        End If
    Next
    ' 获取B列最后一个有数据的行号
    lastB = Cells(Rows.Count, "B").End(xlUp).Row
    ' 匹配B列的唯一值,写入对应统计结果到C列
    For i = 1 To lastB
        If dic.exists(Cells(i, "B").Value) Then
            Cells(i, "C").Value = dic(Cells(i, "B").Value)
        Else
            Cells(i, "C").Value = 0
        End If
    Next
    ' 释放对象
    Set dic = Nothing
End Sub

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 16:06:02