每个部门的第一个人是经理,如何在Excel部门求和表中列出经理?

Excel学习世界 2025-01-03 11:25:01

解答读者提问:根据部门业绩统计表汇总每个部门的总业绩情况,汇总表里需要列出部门和部门经理,默认每个部门中第一次列出的人是部门经理。

案例:

下图 1 中每个部门第一次出现的人是部门经理,根据这个规则,计算各部门的总指标和总实际完成数,同时列出部门经理的名字。

效果如下图 2  所示。

解决方案:

这个案例中,分组求和不难,难的是还要提取出每个分组的第一个人员。

1. 选中数据表的任意单元格 --> 选择工具栏的“数据”-->“来自表格/区域”

2. 在弹出的对话框中保留默认设置 --> 点击“确定”

表格已上传至 Power Query。

3. 选择工具栏的“主页”-->“分组依据”

4. 在弹出的对话框中按以下方式设置 --> 点击“确定”:

在弹出的对话框中选择“高级”选项;

在第一个下拉菜单中选择“部门”;

新列名:输入“指标”;

操作:选择“求和”;

柱:选择“指标”;

点击“添加聚合”按钮 --> 在新的聚合中设置如下:

新列名:输入“实际完成”;

操作:选择“求和”;

柱:选择“实际完成”

现在默认的公式如下。

Table.Group 函数这里用到了三个参数:Table.Group (要聚合的表, 聚合列的列名, 要执行的聚合列操作);

第三个参数表示要执行聚合的操作,可以有多个聚合,用 {} 分开;格式为 {{新列名1, 聚合1}, {新列名2, 聚合2},{新列名3, 聚合3},...};

目前第三个参数中共有两个聚合,就是刚才通过对话框设置的。

了解了公式的语法,接下来就简单了,现在缺一个“部门经理”的聚合,我们只需在现有公式中加上这个条件就行了。

5. 在第三个参数的第一个位置加上 {"部门经理",each [姓名]{0}},

公式释义:

"部门经理":新聚合的列名

each [姓名]{0}:

提取出每个分组中出现的第一个“姓名”;

{0} 表示列表中的第一个元素;PQ 中的 M 语句沿用了大多数编程语言的惯例,从 0 开始统计第一个元素

回车后就能看到“部门经理”列已经生成了。

6. 选择工具栏的“主页”-->“关闭并上载”-->“关闭并上载至”

7. 在弹出的对话框中选择“表”--> 选择“现有工作表”及所需上载至的位置 --> 点击“确定”

右侧绿色的表格就是符合要求的汇总表。

0 阅读:3

Excel学习世界

简介:Excel 学习交流