正文:

今天给大家分享一下,在PQ时分组的一些玩法。

案例一:

关于分组的玩法我收集了几个案例,往后会一个个写出来,今天会先来点简单的。

要求:

左表的数据转换成右表的结构。

这个问题如果写VBA来处理也不难,判断装数组再join一下,应该就可以了,我们今天来用Power Query来处理下。

= Table.Group(源,"类型",{"a",each Text.Combine([值],",")})

老规矩先上代码。

额。。。这时候你可能会想,大叔,你代码是不是复制少了,这么复杂的问题,你怎么就这么丁点代码?!!实际上就这么一行代码就可以解决,是不是惊呆了,嘻嘻!!

解答:

下面我们简单的看看,这个分组函数的说明。

第一参数是表,第二参数是你要分组的列名,第三参数可以理解为处理方式。第四,第五参数放在后面再讲。

华丽的分割线。

案例二:

来个综合的实战案例。

要求:

有接触过装修类或者工程类工作的朋友应该有经验。很多时候做一个工程会用同一种材料,但会用在不同的地方。但是往往我们要在采购材料之前先计算好用量。

左表是一张数据表,序号里的一..二..三代表不同的项目,数量列里记录的是项目里字项目的用量,有些数据是直接记录用量,有些数据记录的是用量的计算方法,比如(8.6*0.18)。最终我们最后要计算出每一个项目的总用量。

let

源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content],

a = Table.Group(

Table.FillDown(源,{"序号"}),"序号",

{"a",each Expression.Evaluate(

Text.Combine(

List.Transform(List.Select([数量],(x)=> x<>null),each Text.From(_)),"+"

)

)

}

)

in

a

既然要统计分组的数据,那么同样的套路,第一步用Table.Group就肯定没有错。注意,因为数据源的序号列只有第一行有数据,所以我们要先对序号列进行向下埋充处理。处理后再作为Table.Group的第一参数。

接下来我们要对第三参数里的自变量作处理,先要把不为null的数据提取出来。List.Select([数量],(x)=> x<>null)这里担心内层的自变量跟外层的有冲突,所以我这里先把内层的定义成x。

现在好像只要把List里面的值全部加起来就能达到我们想要的效果,问题就是要怎样加,我想到的是Expression.Evaluate,这个函数可以直接把带有公式的字符串直接运算并返回对应的结果,比如"1+2+3*4",可以直接得出15。

List里的数据转换成一串字符串,好不好处理,肯定好处理啊,直接外层套一个Text.Combine不就可以了吗,我当时是这样想的,逻辑上没问题,但是会出错,我们一起来看看。

出错原因也很简单,数值是不能直接合并的,要多走一步,把数值先换化成文本,再来合并应该就没问题了。

最后的最后,套上一层Expression.Evaluate,大功告成!!

感谢观看!!

剧透下期分享神奇的分组2,神秘的第四,第五参数会上场。

总结:

知识决定思路,以上仅为大叔个人解法,绝不是唯一解。欢迎各路大咖留言指点。

如果您没能看懂代码,也不要紧,因为目前国内会玩M语言的人并不算多,如果你对M感兴趣的话,建议您可以拜读一下施总的博客Power Query爱好者-pqfans_M语言学习资料_教程_分享_论坛_博客,是目前国内唯一一个可以免费学习到M的地方。

感谢观看,Thanks!

powerquery分组_Power Query 神奇的分组统计1相关推荐

  1. powerquery分组_Power Query实现数据分组压缩的思路分享

    前几日群里E友们出的题,我们就直接借用一下案例(偷懒),核心还是来熟悉一下PQ的分组及一些常用的函数 感受一下,PQ在数据处理方面的强大!讲解方式:动画演示,主要分解思路,适当函数讲解!演示版本:36 ...

  2. list 分组_Power query 灵活处理员工特殊出勤问题(3)-TableGroup分组 amp; 合并查询

    断更了几天, 忙着别的事情去.....今天终于好好坐下, 继续写分享. 这一期主要内容是, 利用TableGroup分组 & 最终合并查询; 一. 数据反馈 前几天, 妹纸发来消息说数据不对, ...

  3. powerquery分组_Power Query系列 - 排序Ranking

    Power Query系列 - 排序Ranking 难度: ★★☆☆☆(1星) 适用范围: ★★★☆☆(3星) 概况: 在数据分析中,我们常常需要对数据进行排序,同时我们想知道某个项目或者产品的排名, ...

  4. powerquery分组_power query 分组合并展示

    一.需求:根据部门汇总业绩,并展示员工业绩明细(效果图如下) 二.实现步骤: 1.将原始数据加载至power query中处理 2.对数据进行基本处理,这里因一个员工有多条数据,事先进行员工业绩汇总 ...

  5. powerquery分组_power query 如何累计求和?如何分组分条件?

    Excel分组求和方法更新 =SUMIFS(D$2:D2,C$2:C2,C2) sumifs是条件求和(分组求和) sum(D$2:D2)下拉是累计求和 结合两个公式就可以做分组累计求和 ------ ...

  6. powerquery分组_Power Query中的Table.Group函数详细分析

    在我们操作过程中,使用分组依据进行汇总计算的操作应该是非常的多的,我们对于这个函数还是非常有必要深入了解下. Table.Group 按为每行指定的列 key 中的值对 table 的行进行分组. 对 ...

  7. pandas使用groupby函数和count函数返回的是分组下每一列的统计值(不统计NaN缺失值)、如果多于一列返回dataframe、size函数返回分组下的行数结果为Series(缺失值不敏感)

    pandas使用groupby函数和count函数返回的是分组下每一列的统计值(不统计NaN缺失值).如果多于一列返回dataframe.size函数返回分组下的行数结果为Series(不区分缺失值和 ...

  8. pandas使用groupby函数对dataframe进行分组统计、使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index)

    pandas使用groupby函数对dataframe进行分组统计.使用as_index参数设置分组聚合的结果中分组变量不是dataframe的索引(index) 目录

  9. java 多字段分组_java8 stream统计、汇总、多字段分组、多个列汇总统计

    前言 本文将展示groupingBy收集器的多个示例,阅读本文需要先准备Java Stream和Java收集器Collector的知识. 一.GroupingBy收集器 Java8的Stream AP ...

最新文章

  1. 以太坊和EOS的DApps数量飙升但用户量滞后
  2. oracle导入dmp报无效的sql,oracle施用pl/sql导入数据库备份文件dmp导入失败原因
  3. undefined reference to 'pthread_create'问题解决
  4. apache tomcat下32还是64_JDK和Tomcat安装和配置的图文教程
  5. QML实现酷炫的 Cover Flow 效果(PathView)
  6. java form action 参数_java发起form请求(有参数,无参数)
  7. Fish Shell 使用笔记
  8. onSaveInstanceState与onRestoreInstanceState何时调用、如何使用
  9. SVD在推荐系统中的应用
  10. 西安交大计算机网络 笔记,计算机网络笔记整理
  11. 华为设备BGP中的路由控制与实验
  12. 8年项目总结:4个G,项目经理必备模板全汇总
  13. 计算机中win是哪个版本,win7系统应该选择哪个版本比较好
  14. IDEA启动Tomcat 中文乱码问题
  15. oracle minus 利用率,Oracle Minus 取差集(也可以用来做分页,但效率不高)
  16. oracle的month函数的使用方法,oracle next_day,add_month函数
  17. 永洪科技怎么样_【永洪科技怎么样?】-看准网
  18. 初次学习Docker没什么经验记录下的笔记
  19. vcruntime140.dll丢失的解决方法
  20. 计算机专业助我成长作文600,科技伴随我成长作文

热门文章

  1. android高德地图计算行驶里程,高德地图批量统计驾车轨迹的用时及总里程
  2. 石墨笔记, Onenote 和 Effie 哪个适合单口或脱口秀作者?
  3. 常用正则 -- 正则表达式
  4. 知网 BibTeX自动生成(使用BibTeX引用中文参考文献)
  5. IEEE Access LaTex 版本问题(一):图片的标注无法换行、无法左对齐以及如何加粗
  6. SQL 身份证获取性别
  7. php表格制作4行两列的表格,excel表格怎么插行和列?
  8. Ratatype - 在线打字教程,提高打字速度
  9. 大数据集群Linux环境配置
  10. Linux三剑客之awk最佳实践