首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

提取 Excel 每个分类的前几名,PQ 绝对是一把好手

公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!

点击上方蓝字 --> 点击“...”--> 选择“设为星标

如何按分类筛选出前几名?一种可以用我们的无所不能的函数 sumproduct,相关案例我就不一一举例了,有兴趣的后台搜索一下 sumproduct。

除此之外,Power Query 也是这方面的能手。

案例:

下图 1 是公司各销售人员不同日期的交易数,请筛选出每个人的最大 2 次交易数。

效果如下图 2 所示。

请忽略我教学数据表的小 bug,A 列的标题忘记改成“姓名”了,不过这不影响咱们今天的教程。

解决方案:

1. 选中数据表的任意单元格 --> 选择菜单栏的“数据”-->“从表格”

2. 在弹出的对话框中点击“确定”

数据表已上传至 Power Query。

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

4. 在弹出的对话框中点击“确定”

5. 选中代码中的 Table.RowCount(_),将其替换成以下语句:

Table.FirstN(Table.Sort(_,{"交易数",1}),2)

Table.Sort(_,{"交易数",1}):将“交易数”列按降序排序

Table.FirstN(...,2):提取排序后的前 2 名

修改代码以后,原本的计数列现在就变成了排序表。

随便选中其中的一个单元格,下方就会列出表格的明细,好像已经是我们想要的样子了。

6. 选中“计数”列或其中的任意单元格 --> 选择菜单栏的“添加列”-->“重复列”

接下来我们要做的就是把这个重复列的代码稍微修改一下,从而将筛选表的结果提取出来。

7. 将公式栏中的 Table.DuplicateColumn 替换成 Table.ExpandTableColumn

8. 将 "计数 - 复制" 替换为 {"交易数"}

完整代码为:= Table.ExpandTableColumn(分组的行, "计数",{"交易数"})

神奇的情况发生了,本来三列的表变成了两列,且按照我们的要求筛选出来了。

9. 选择菜单栏的“主页”-->“关闭并上载”-->“关闭并上载至”

10. 在弹出的对话框中选择“现有工作表”及需要上传到的位置 --> 点击“加载”

绿色区域就是筛选出来的结果。

转发、在看也是爱!

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OuV9iOogaIM8qaJFf39PDWVg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

相关快讯

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券