先看图,说一下需求,表格中,ABC三列是原始数据, 需要动态统计出每个部门的分组累计和(如E列结果所示)。

Power Query怎么解决分组累积求和?-天天办公网

此类问题,对Excel公式函数稍微熟悉一点的,料想一条简单的SUMIF函数填充就能解决

=SUMIF(A$2:A2,A2,C$2:C2)

但在“部门”乱序的情况下, 就不好使用公式去整理数据好再使用公式了,使用Power Query的优势, 就可以直接从表格中查询数据,直接转换,整理,统计出想要的结果。详细步骤如下(可能不是最简单的方法,各位看官先看看这个解决方法。

示例使用Office2013为蓝本, Office2016方法雷同。

step 1:选择表格区域 A1:C12,点击Power Query选项卡工具 [从表] 按钮,导入Power Query查询编辑器。

Power Query怎么解决分组累积求和?-天天办公网

Step 2:[表1]查询中,使用[添加列]功能, 添加一个”索引“列。

Power Query怎么解决分组累积求和?-天天办公网

Step 3:在查询编辑器中,将[表1]右键→[复制]出一个新查询,并重命名为“查询结果。

Power Query怎么解决分组累积求和?-天天办公网

Step 4:点击[开始]选项卡→[分组依据]对表格进行分组统计,设置结果如下图。

Power Query怎么解决分组累积求和?-天天办公网

Step 5:点击[添加列]选项卡→[添加自定义列],设置公式 ={1..[计数]},点击确定按钮后,在查询结果”序号“字段点击展开按钮,展开这个字段。

Power Query怎么解决分组累积求和?-天天办公网

Step 6:为了便于查询结果的准确性,在”查询结果“表中,使用[添加列]功能,添加一个索引列。

Power Query怎么解决分组累积求和?-天天办公网

Step 7:点击[开始]→[合并查询],选择[表1],并选择两个相关联匹配的列。

Power Query怎么解决分组累积求和?-天天办公网

Step 8:展开NewColumn,只选择[金额列]。

Power Query怎么解决分组累积求和?-天天办公网

Step 9:选择”索引“字段列,点击[开始]→[分组依据]功能对数据做第二次分组统计。

Power Query怎么解决分组累积求和?-天天办公网

Step 10:最关键的一步,修改M公式,原公式如下:

= Table.Group(#”展开的“NewColumn””, {“索引”}, {{“累计求和”, each List.Sum([金额]), type number}})

修改后公式如下:

= Table.Group(#”展开的“NewColumn””, {“索引”}, {“累计求和”, each List.Sum(List.FirstN([金额],List.First([序号])))})

获得累积结果如下图所示

Power Query怎么解决分组累积求和?-天天办公网

Step 11:继续使用合并查询将[表1]的内容与查询结果匹配在一起, 点击[开始]选项卡→[合并查询],对话框中做如下设置。

Power Query怎么解决分组累积求和?-天天办公网

Step 12:展开NewColumn,只保留”部门“,”姓名“,”金额“三列

Power Query怎么解决分组累积求和?-天天办公网

Step 13:最后,调一下列的顺序,并把辅助的”索引“列删除,就可获得最终结果。

Power Query怎么解决分组累积求和?-天天办公网

虽然看上去步骤复杂,实际操作不到1分钟就可以完成数据的累计求和,特别是在乱序的情况下非常有用。表格数据如果是动态的, 还可以通过从文件的方式导入数据查询。