datagridview设置选中行_Excel 按条件查找最大值,在 Power Query 中设置如此简单

经常看我推文的读者应该会有体会,同样的案例,在有不同解决方案的情况下,Power Query 往往是方法最简单的,而且设置完后就不用再管了,以后只要刷新就能同步数据源。

Power Query 的功能非常强大,如果要完全释放其能力,光会使用图形界面是不够的,高级的需求还要学习 M 语言。

有的同学一听说要写代码就放弃了,其实没有想象的那么可怕,最近我开始陆续用最简单的方法教大家学习一些简单的 M 语言。在结合图形界面操作的基础上稍微修改部分语句,就能简单地实现目标效果。

很多同学都反馈这个教学方式非常适合小白学习。以下是部分案例:

  • Excel – 如何批量修改列标题,且固定不再变?
  • Excel 中最常用的 if 函数在 Power Query 中怎么用?

今天教大家如何在 Power Query 中查找最大值。

案例:

下图 1 为各班级考试成绩,请用 Power Query 分别按以下条件查找:

  1. 查找出全年级数学分数最高的同学
  2. 查找出一班数学成绩最高的同学

上述第 2 个案例效果如下图 2 所示。

c12ae6359453b04db232e3eacbbccb50.png
a12e3190a814f8c5b3ef2c5492ba110b.png

解决方案 1:查找全年级数学最高分

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

c47da41fdef8f0a1efff43ed28252443.png

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

56a0b30cb718def58c6c63ccc9eeabbe.png

表格已上传至 Power Query。

5dc43aab3e73634f6378303e7dd44849.png

点击“数学”旁边的箭头,在“数字筛选器”下面有多种查找条件,然而并没有最大值这个条件,所以得自己写函数。

58afcf59203db7a1e728073068012087.png

3. 在“数学”的筛选区域任意勾选一个分数 --> 点击“确定”

2590f7e7a5b9738dd26e85875cfd680a.png

此时,公示栏中将刚才的操作记录成了以下的对应公式:

= Table.SelectRows(更改的类型, each ([数学] = 43))

e871693107485522ab3dd15401e5fe7e.png

4. 在上述公式的基础上,将“43”替换为“List.Max(更改的类型[数学])”,完整公式如下:

= Table.SelectRows(更改的类型, each ([数学] = List.Max(更改的类型[数学])))

公式释义:

  • List.Max:相当于 Excel 中的 max 函数
  • 更改的类型[数学]:“更改的类型”是上一个步骤的名称,可以在“应用的步骤”区域看到,“[数学]”是列名
9a95900a19267d84af7c8210c2122f66.png

5. 回车以后,就查找出了全年级数学最高分的对应行数据。

38e80346f4cde78d5271755990b2b6b3.png

解决方案 2:查找一班数学最高分

开始设置之前,先将刚才的查找记录清除:在右侧的“查询设置”区域,将最后一个步骤删除。

beeed4284d719a4ef93b50925eb5ea64.png

1. 点击“班级”旁边的箭头 --> 勾选“一班”--> 点击“确定”

9576ef060857ff5566038b54e2756715.png
cc355020cd91fe46bf2e06945b588030.png

此时如果我们仿照上一个案例中的做法,在“数学”列中随便选一个值,公式如下:

= Table.SelectRows(更改的类型, each ([班级] = "一班") and ([数学] = 54))

如果要在此基础上替换成 List.Max 函数,结果是查找不到的。为什么呢?因为上述 M 语句中用了 and,即表示:既是“一班”,又要数学分数最高。这个结果不存在,因为最高分在二班。

所以这个方法行不通,得另找途径。

7cad84302cc0514e2cba36ca1698b667.png
406e471769e2ab33f6867ed4b22ef278.png

2. 点击“数学”旁边的箭头 --> 在“数字筛选器”中选择任意一个选项,比如“大于...”

7919b6c4f1506e4e32e77244758f0c0c.png

3. 在弹出的对话框中输入任意值 --> 点击“确定”

b0a05bd7a7c500ccd3ac5d99e26a0a48.png

4. 现在公式如下:

= Table.SelectRows(筛选的行, each [数学] > 60)

仿照上一个案例的解决方案,将“>60”替换为“= List.Max(筛选的行[数学])”,完整公式如下:

= Table.SelectRows(筛选的行, each [数学] = List.Max(筛选的行[数学]))

c5ab557d3772a20bf16a35a61c7c994d.png
37ee46a9fb2b7761d3d2fe837da4fa39.png

5. 回车后,即查找出了一班数学成绩最高的同学所对应的行。

d1444ae810824f8324e921f75f1e6b57.png

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

b0f5216c7465dfadccd7f3237f401cd5.png

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

fc5757bdb0096227e773fa6e0af06839.png

这就是最终结果。

a12e3190a814f8c5b3ef2c5492ba110b.png

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值