我们知道在Excel中有个LARGE函数,可以取出一组数据中较大的几个数:
如图我们如果要取每行前三大的数值,需要使用LARGE+COLUMN函数组合就可以了,如果放在Power Query中应该用什么办法来获得同样的结果呢?
这个函数刚好可以实现我们想要的结果,1-10中取出{10,9,8}
接下来就是我们要如何取出数据,统计结果,再放到表格中的过程:
我们使用Table.ToRows函数把数据源T表格转换成以行数据为单位的列表
接下来就是在这个列表的基础上进行操作。
我们使用List.Transform函数历遍列表,其实就是循环过程,配合List.MaxN函数取出排名前三的数据。
上面是each _的写法,也可以用(x)=>的写法:
最后就是把这样的列表的列表转换回表格,就是我们Table.ToRows函数的逆过程。
Table.FromRows与Table.ToRows是互逆的过程,通过行数据转换成表格:
最后我们可以把这些过程(TRL、TOP3)全部用函数替代,变成一个大公式:
= Table.FromRows(List.Transform(Table.ToRows(T),each List.MaxN(_,3)))
就是我们最终想要的结果了。
在这个公式的编写过的分步过程中,核心函数是List.MaxN,就相当于Excel中的large函数,然后用Table.ToRows、List.Transform、Table.FromRows函数来做嵌套配合,提取数据、历遍数据、写回数据,虽然过程上比Excel繁琐了很多,我们要学习的就是这种整体的数据操作,而不是Excel中基于单元格的数据计算。
页面更新:2024-05-30
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号