公众号平台最新的推送规则对技术类文章不太友善,如果不想错过干货,请务必 “设为星标”哦!!!
点击上方蓝字 --> 点击“...”--> 选择“设为星标”
如何按分类筛选出前几名?一种可以用我们的无所不能的函数 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. 在弹出的对话框中选择“现有工作表”及需要上传到的位置 --> 点击“加载”
绿色区域就是筛选出来的结果。
转发、在看也是爱!
领取专属 10元无门槛券
私享最新 技术干货