PQ实战 | 每天出差到底有几人?
今天是整理的一个网友的实际案例,我们“学以致用”!
需求说明:每个人出差一段时间,统计每天出差几人?
整体思路:按开始和结束日期区间展开,然后按日期分组,计数 和 合并姓名即可
加载进入PQ这里就不啰嗦了,直接进入PQ编辑器编辑!不懂的同学可以去看一下前面的专题基础(共三期)!
点击阅读:PQ 第一期 | Power Query是什么?怎么学?
步骤01 | 根据区间构建日期list
= Table.AddColumn(更改的类型,"日期",each List.Dates([起],Duration.TotalDays([止]-[起])+1,#duration(1,0,0,0)))
计算两个日期之间的天数,可以使用Duration.TotalDays 函数,不包括截至那一天,所以我们需要+1,其他函数之前案例中都有讲解!
List.Date(起始日期,构建多少个,间隔)
duration 是PQ中内置的数据类型,Excel中函数和VBA中是没有这玩意的!
#duration(天,时,分,秒)
所以上面表示间隔一天,也可以设置间隔几天!
步骤02 | 按日期展开
点击两边展开的箭头就可以扩展到新行!
对应的M函数语法:
Table.ExpandListColumn(表, 展开列的名称)
下一步,我们按日期分组
步骤03 | 按日期分组统计
= Table.Group( #"展开的“日期”","日期",{{"人数",each List.Count([姓名])},{"姓名",each Text.Combine([姓名],",")}})
分组功能是PQ中使用比较多的功能!可以收工操作,然后修改,新手期!
基础语法如下:
Table.Group(表,分组的字段,{{字段1,处理方式1},{字段2,处理2}})
需要分组的字段如果不止一个需要使用list,结果字段可以有多组!
如果只有一组,可以不用再套一层大的list!
进阶分组用法更加灵活强大!
完美收工!
本文由“壹伴编辑器”提供技术支持