如何在OpenRefine或LibreOffice中按姓名对数值列求和与求平均
按姓名分组计算Number列总和、平均值的实操步骤
LibreOffice Calc 操作
- 基础校验:选中Number列,确认列格式为纯数值(点击顶部「格式」→「单元格」,数字分类选择「数值」,避免文本型数字、空值干扰计算结果)
- 数据透视表法(适配大表批量计算场景)
- 选中带表头的全量数据区域,依次点击顶部菜单栏「数据」→「数据透视表」,选择当前选中区域作为数据源后确认
- 在透视表配置面板完成以下配置:
- 将「Name」字段拖动到行区域,作为分组维度
- 将「Number」字段分两次拖动到值区域
- 第一次拖入的字段将汇总方式调整为求和,输出每个姓名对应的Number列总和
- 第二次拖入的字段将汇总方式调整为平均值,输出每个姓名对应的Number列平均值
- 对应示例数据的计算结果:John总和19、平均值9.5;Ann总和22、平均值11
- 函数计算法(适配小表灵活调整场景)
- 计算某姓名的Number总和:在空白单元格输入
=SUMIF(B:B, "目标姓名", A:A),替换「目标姓名」为实际值即可得到对应结果 - 计算某姓名的Number平均值:在空白单元格输入
=AVERAGEIF(B:B, "目标姓名", A:A),替换「目标姓名」为实际值即可得到对应结果
- 计算某姓名的Number总和:在空白单元格输入
OpenRefine 操作
- 基础校验:将结构化数据导入OpenRefine项目,点击Number列顶部的下拉箭头,依次选择「编辑列」→「改变类型」→「数字」,确保数值列被正确识别,避免聚合计算报错
- 分组聚合计算
- 点击Name列顶部的下拉箭头,选择「按本列值分组行」
- 在分组配置界面,为Number列配置两个聚合规则:
- 第一个规则选择数值求和,输出每个姓名对应的Number列总和
- 第二个规则选择数值平均值,输出每个姓名对应的Number列平均值
- 配置完成后可直接预览聚合结果,支持导出为结构化表格,计算结果与LibreOffice的输出完全一致
内容的提问来源于stack exchange,提问作者IDP
相关产品推荐
相关产品推荐

