聚合 Excel 数据

聚合 Excel 数据

我有重复的 ID 值,但我需要保留每行内的数据,而不仅仅是删除它。

以下是我目前拥有的:

 
课程成绩
1 地理​​ 90
2 数学 80
3 地理 75
4 数学 90
4 科学 90
4 地理 50
5 科学 85

这就是我要的:

ID geo math sci gradegeo grademath gradesci
1 1 0 0 90        
2 0 1 0 80
3 1 0 0 75
4 0 1 1 50 90 90
5 0 0 1 85

希望有人能帮忙:)

附言:我认为这应该在具有多个表和一个主键的数据库中完成,但是遗憾的是,我无法访问它。

答案1

使用两个数据透视表(第一个:选择范围,插入,表格,数据透视表,数据透视表,确定,单击显示的框,将 ID 拖到行标签中,将课程拖到列标签中,将成绩拖到 Σ 值中。)

将该数据透视表复制到右侧,确保左侧数据透视表的 Σ 值为 Count of,右侧数据透视表的 Σ 值为 Sum of。隐藏右侧表格的顶行和 Row Labels 列。根据需要重命名列标签。

为确保左侧表格中显示 0 而非空白,请右键单击表格,选择“数据透视表选项”、“布局和格式”,选中“显示空单元格”并插入 0。如有必要,可以通过左键单击 Σ 值内容、“值字段设置”(以及将“总计”更改为“计数”等的位置)和“数字格式”来调整成绩数字的格式。(如果直接在数据透视表中调整格式,则下次刷新时将撤消)。

用 ID 覆盖行标签,希望您能得到想要的结果。

请注意,如果您将数据添加到源范围,则数据透视表将不会改变,直到您单击其中任一表并选择“刷新”。

答案2

使用数据透视表。这不是“转置”,而是“聚合” - 术语差异应该有助于您进行谷歌搜索:)

  • 输入数据

枢轴-1

  • 选择(突出显示)所有相关数据,然后在“新工作表”中使用插入 -> 数据透视表创建数据透视表。

枢轴-2

  • 根据您的需要自定义数据透视表。在非常特殊的情况下,将课程字段拖放到列标签,将 ID 字段拖放到行标签,并将成绩值拖到值区域两次:一次,保持原样以获得成绩的“总和”(除非单个学生在同一学期两次选修同一门课程,否则这只会求和一次值),对于另一个“成绩总和”,左键单击下拉箭头并查看“值字段设置”。将其从“总和”更改为“计数”。

    • 选择整个数据透视表,按 Ctrl+C 复制到剪贴板,转到新工作表,然后在粘贴选项(功能区主页选项卡上剪贴板图标下的下拉列表)中执行“粘贴带有源格式的值”。

    • 重新排列列并调整格式,直到得到您想要的结果。以下是我为使其看起来像您想要的输出所做的操作;生成数据透视表后,我花了大约 30 秒的时间:

枢轴-3

相关内容