经常看我推文的读者应该会有体会,同样的案例,在有不同解决方案的情况下,Power Query 往往是方法最简单的,而且设置完后就不用再管了,以后只要刷新就能同步数据源。
Power Query 的功能非常强大,如果要完全释放其能力,光会使用图形界面是不够的,高级的需求还要学习 M 语言。
有的同学一听说要写代码就放弃了,其实没有想象的那么可怕,最近我开始陆续用最简单的方法教大家学习一些简单的 M 语言。在结合图形界面操作的基础上稍微修改部分语句,就能简单地实现目标效果。
很多同学都反馈这个教学方式非常适合小白学习。以下是部分案例:
- Excel – 如何批量修改列标题,且固定不再变?
- Excel 中最常用的 if 函数在 Power Query 中怎么用?
今天教大家如何在 Power Query 中查找最大值。
案例:
下图 1 为各班级考试成绩,请用 Power Query 分别按以下条件查找:
- 查找出全年级数学分数最高的同学
- 查找出一班数学成绩最高的同学
上述第 2 个案例效果如下图 2 所示。
解决方案 1:查找全年级数学最高分
1. 选中数据表的任意区域 --> 选择菜单栏的“数据”-->“从表格”
2. 在弹出的对话框中点击“确定”
表格已上传至 Power Query。
点击“数学”旁边的箭头,在“数字筛选器”下面有多种查找条件,然而并没有最大值这个条件,所以得自己写函数。
3. 在“数学”的筛选区域任意勾选一个分数 --> 点击“确定”
此时,公示栏中将刚才的操作记录成了以下的对应公式:
= Table.SelectRows(更改的类型, each ([数学] = 43))
4. 在上述公式的基础上,将“43”替换为“List.Max(更改的类型[数学])”,完整公式如下:
= Table.SelectRows(更改的类型, each ([数学] = List.Max(更改的类型[数学])))
公式释义:
- List.Max:相当于 Excel 中的 max 函数
- 更改的类型[数学]:“更改的类型”是上一个步骤的名称,可以在“应用的步骤”区域看到,“[数学]”是列名
5. 回车以后,就查找出了全年级数学最高分的对应行数据。
解决方案 2:查找一班数学最高分
开始设置之前,先将刚才的查找记录清除:在右侧的“查询设置”区域,将最后一个步骤删除。
1. 点击“班级”旁边的箭头 --> 勾选“一班”--> 点击“确定”
此时如果我们仿照上一个案例中的做法,在“数学”列中随便选一个值,公式如下:
= Table.SelectRows(更改的类型, each ([班级] = "一班") and ([数学] = 54))
如果要在此基础上替换成 List.Max 函数,结果是查找不到的。为什么呢?因为上述 M 语句中用了 and,即表示:既是“一班”,又要数学分数最高。这个结果不存在,因为最高分在二班。
所以这个方法行不通,得另找途径。
2. 点击“数学”旁边的箭头 --> 在“数字筛选器”中选择任意一个选项,比如“大于...”
3. 在弹出的对话框中输入任意值 --> 点击“确定”
4. 现在公式如下:
= Table.SelectRows(筛选的行, each [数学] > 60)
仿照上一个案例的解决方案,将“>60”替换为“= List.Max(筛选的行[数学])”,完整公式如下:
= Table.SelectRows(筛选的行, each [数学] = List.Max(筛选的行[数学]))
5. 回车后,即查找出了一班数学成绩最高的同学所对应的行。
6. 选择菜单栏的“主页”-->“关闭并上载”-->“关闭并上载至...”
7. 在弹出的对话框中选择“现有工作表”及需要上传的位置 --> 点击“加载”
这就是最终结果。
很多同学会觉得 Excel 单个案例讲解有些碎片化,初学者未必能完全理解和掌握。不少同学都希望有一套完整的图文教学,从最基础的概念开始,一步步由简入繁、从入门到精通,系统化地讲解 Excel 的各个知识点。
现在终于有了,以下专栏,从最基础的操作和概念讲起,用生动、有趣的案例带大家逐一掌握 Excel 的操作技巧、快捷键大全、函数公式、数据透视表、图表、打印技巧等……学完全本,你也能成为 Excel 高手。