跳至主要内容

Kutools for Office — 一套工具,五种功能。事半功倍。

如何在 Excel 中按组统计数据?

Author Sun Last modified

在 Excel 中,对简单区域中的值总数进行计数是大多数用户的常见且直接的任务。然而,在许多现实场景中——例如销售报告、库存清单或员工数据——信息通常按组组织,如产品类别、部门或地区。在这种情况下,您可能不仅需要计算总体总数,还需要确定每个组内的出现次数。这种需求在汇总和分析分组数据以生成报告或做出数据驱动的决策时尤为常见。虽然 Excel 中没有一个直接的按钮或内置函数明确标有“按组计数”,但有几种可靠且高效的方法可以实现这一目标。

以下是您可以使用的实用方法,用于在 Excel 中统计每个组的数据,满足不同用户的需求和水平——从内置功能到多功能的基于公式的自动化 VBA 解决方案。每种方法都有其自身的优势,使您可以轻松选择最适合特定工作表场景的方法。

使用数据透视表按组统计数据
使用 VBA 代码按组统计数据
使用 Excel 公式(COUNTIF/COUNTIFS)按组统计数据


使用数据透视表按组统计数据

数据透视表非常适合通过不同类别快速汇总大型数据集,包括统计每个组中的项目数量。例如,如果您有一个很长的销售交易列表,并想知道每种产品的销售次数,数据透视表是最快捷实用的工具之一。

假设您有如下示例所示的数据集,并希望按组统计出现次数(例如统计每个项目或类别出现的次数):

a screenshot of the original data

1. 选择包含要统计的组和数据的整个数据范围。单击 插入 > 数据透视表 > 数据透视表 在 Excel 功能区中。见截图:

a screenshot of creating a Pivit Table

2. 在 创建数据透视表 对话框中,选择将数据透视表放置在新工作表还是现有工作表中。如果选择 现有工作表,请确保选择一个不会干扰现有数据的空白单元格。见截图:

a screenshot of choose where to place the Pivot table

3. 单击 确定。在 Excel 窗口的右侧会出现 数据透视表字段 列表面板。将组列标题(例如“项目”或“类别”)拖到 行标签 区域。默认情况下,值区域将使用“计数”功能,显示每个条目出现的次数。见截图:

a screenshot of adding fields in Pivot table

您会立即看到一份报告,Excel 已经对您的数据进行了分组并显示了每个组的计数。这对于可视化跨类别的项目、产品或记录的分布尤其有帮助。如果更新原始数据集,请记得刷新数据透视表以反映任何更改。

a screenshot of the result

提示和注意事项:如果您的数据源范围包括空行或列,在创建数据透视表时请务必排除它们,因为这可能会影响分组的准确性。数据透视表提供了一种直观的方式来汇总数据,但如果需要在公式或其他工作表中重用结果,或者想要更灵活的报告,请考虑以下公式或 VBA 解决方案。


使用 VBA 代码按组统计数据

如果您的工作簿需要频繁地对不同分组的数据进行统计和报告,或者需要对大型数据集或重复任务自动执行此过程,您可以利用 VBA 脚本。VBA(Visual Basic for Applications)允许自定义和自动化 Excel 过程,使您能够创建报告、汇总信息或导出组计数,而只需最少的手动干预。

预防措施:在运行任何新的 VBA 代码之前,请始终保存您的工作。VBA 可实现强大的自动化,但如果配置不当,可能会覆盖数据。

1. 转到 开发工具 > Visual Basic 打开 VBA 编辑器。在出现的窗口中,单击 插入 > 模块,并将以下代码粘贴到模块窗口中:

Sub GroupCount()
    Dim dict As Object
    Dim lastRow As Long
    Dim groupCol As Range
    Dim groupCell As Range
    Dim outputRow As Long
    Dim key As Variant
    
    Set dict = CreateObject("Scripting.Dictionary")
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    ' Change Sheet1 and column as needed
    With Worksheets("Sheet1")
        lastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
        Set groupCol = .Range("A2:A" & lastRow)
        
        For Each groupCell In groupCol
            If Not dict.Exists(groupCell.Value) Then
                dict(groupCell.Value) = 1
            Else
                dict(groupCell.Value) = dict(groupCell.Value) + 1
            End If
        Next groupCell
        
        outputRow = 2
        .Cells(1, "C").Value = "Group"
        .Cells(1, "D").Value = "Count"
        
        For Each key In dict.Keys
            .Cells(outputRow, "C").Value = key
            .Cells(outputRow, "D").Value = dict(key)
            outputRow = outputRow + 1
        Next key
    End With
End Sub

2. 要执行代码,请按 F5 或在 VBA 编辑器中单击 Run button “运行”按钮。脚本将扫描“Sheet1”中 A 列(从 A2 开始)的组数据,统计每个组的计数,并从第 2 行开始在 C 列和 D 列输出汇总结果。

注意:根据您的具体工作簿需要,您可以修改“Sheet1”、列引用和输出位置。如果您的数据包含空单元格或特殊情况,请检查结果以确保准确性。如果重复的组名有不同的拼写(例如“Apple”与“apple”),结果将把这些视为不同的组。对于定制分组(不区分大小写、排序输出或更复杂的分组),可能需要进一步添加到 VBA 代码中。

VBA 最适合自动化的重复任务——尤其是在处理大型或频繁更新的数据集时手动汇总耗时的情况下。如果您遇到“对象变量未设置”或“下标越界”之类的错误,请确认您的工作表和范围引用与实际的数据结构匹配。


使用 Excel 公式(COUNTIF/COUNTIFS)按组统计数据

对于喜欢直接在工作表网格上操作或需要动态的基于公式的解决方案来进行进一步计算和引用的用户,Excel 的 COUNTIF 和 COUNTIFS 函数提供了一个有效的解决方法。当您希望组计数随着基础数据的变化而自动更新,或将结果放在数据旁边以便参考或进一步分析时,这些公式特别有用。

示例场景:假设您的数据在 A 列(组名)和 B 列(值)中,并且您希望统计每个组出现的次数。

1. 在数据旁边的新列中(例如 C2 单元格),输入以下公式以计算每个组的计数:

=COUNTIF($A$2:$A$100, A2)

2. 输入公式后,按 Enter 键。要将此公式应用于所有行,请从 C2 单元格向下拖动填充柄以填充数据旁边的单元格,或者双击填充柄以自动填充。该公式将返回该行组的出现次数。

3. 如果您想获取所有组及其相应计数的唯一列表,请首先提取不同的组名(例如,通过使用 删除重复项 功能或 UNIQUE 公式,具体取决于您的 Excel 版本),然后对唯一列表应用 COUNTIF 公式。

参数解释:在上述公式中,$A$2:$A$100 是包含组名的范围。调整此范围以匹配您的实际数据。A2 是当前行组值的单元格引用。

这个公式解决方案非常灵活:您可以将其用于过滤列表、排序数据或与其他计算一起使用。但是请注意,如果应用于非常大的数据集,重新计算可能需要额外的时间。

COUNTIFS 允许按多个条件进行计数,如果您的分组更复杂(例如按类别和地区分组)。


相关文章:


最佳Office办公效率工具

🤖 Kutools AI 助手:以智能执行为基础,彻底革新数据分析 |代码生成 |自定义公式创建|数据分析与图表生成 |调用Kutools函数……
热门功能:查找、选中项的背景色或标记重复项 | 删除空行 | 合并列或单元格且不丢失数据 | 四舍五入……
高级LOOKUP多条件VLookup|多值VLookup|多表查找|模糊查找……
高级下拉列表快速创建下拉列表 |依赖下拉列表 | 多选下拉列表……
列管理器添加指定数量的列 | 移动列 | 切换隐藏列的可见状态 | 比较区域与列……
特色功能网格聚焦 |设计视图 | 增强编辑栏 | 工作簿及工作表管理器 | 资源库(自动文本) | 日期提取 | 合并数据 | 加密/解密单元格 | 按名单发送电子邮件 | 超级筛选 | 特殊筛选(筛选粗体/倾斜/删除线等)……
15大工具集12项 文本工具添加文本删除特定字符等)|50+种 图表 类型甘特图等)|40+实用 公式基于生日计算年龄等)|19项 插入工具插入二维码从路径插入图片等)|12项 转换工具小写金额转大写汇率转换等)|7项 合并与分割工具高级合并行分割单元格等)| ……
Kutools支持多种语言——可选择英语、西班牙语、德语、法语、中文等40多种语言!

通过Kutools for Excel提升您的Excel技能,体验前所未有的高效办公。 Kutools for Excel提供300多项高级功能,助您提升效率并节省时间。 点击此处获取您最需要的功能……


Office Tab为Office带来多标签界面,让您的工作更加轻松

  • 支持在Word、Excel、PowerPoint中进行多标签编辑与阅读
  • 在同一个窗口的新标签页中打开和创建多个文档,而不是分多个窗口。
  • 可提升50%的工作效率,每天为您减少数百次鼠标点击!

所有Kutools加载项,一键安装

Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。

Excel Word Outlook Tabs PowerPoint
  • 全能套装——Excel、Word、Outlook和PowerPoint插件+Office Tab Pro
  • 单一安装包、单一授权——数分钟即可完成设置(支持MSI)
  • 协同更高效——提升Office应用间的整体工作效率
  • 30天全功能试用——无需注册,无需信用卡
  • 超高性价比——比单独购买更实惠