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

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

案例:

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

效果如下图 2 所示。

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

excel分层抽取数据(提取Excel每个分类的前几名)(1)

excel分层抽取数据(提取Excel每个分类的前几名)(2)

解决方案:

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

excel分层抽取数据(提取Excel每个分类的前几名)(3)

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

excel分层抽取数据(提取Excel每个分类的前几名)(4)

数据表已上传至 Power Query。

excel分层抽取数据(提取Excel每个分类的前几名)(5)

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

excel分层抽取数据(提取Excel每个分类的前几名)(6)

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

excel分层抽取数据(提取Excel每个分类的前几名)(7)

excel分层抽取数据(提取Excel每个分类的前几名)(8)

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

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

excel分层抽取数据(提取Excel每个分类的前几名)(9)

excel分层抽取数据(提取Excel每个分类的前几名)(10)

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

excel分层抽取数据(提取Excel每个分类的前几名)(11)

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

excel分层抽取数据(提取Excel每个分类的前几名)(12)

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

excel分层抽取数据(提取Excel每个分类的前几名)(13)

excel分层抽取数据(提取Excel每个分类的前几名)(14)

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

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

excel分层抽取数据(提取Excel每个分类的前几名)(15)

excel分层抽取数据(提取Excel每个分类的前几名)(16)

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

excel分层抽取数据(提取Excel每个分类的前几名)(17)

excel分层抽取数据(提取Excel每个分类的前几名)(18)

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

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

excel分层抽取数据(提取Excel每个分类的前几名)(19)

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

excel分层抽取数据(提取Excel每个分类的前几名)(20)

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

excel分层抽取数据(提取Excel每个分类的前几名)(21)

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

excel分层抽取数据(提取Excel每个分类的前几名)(22)

很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。

现在终于有了,文中专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。

,