今天给大家介绍一下如何在 Power Query 中生成日期列,为什么要使用 Power Query 生成一个日期列呢?因为 Power Query 生成日期列之后,我们可以通过很多可视化操作来生成想要的一些字段如年、月、季度、周、天等等,并且会根据你 Power BI 的区域设置生成对应区域的日期名称,这样不就得到一个日期表了吗。
在 Power Query 中,我们可以借助 List.Dates、List.DateTimes 和 List.DateTimeZones 来生成日期列,这三个函数有什么区别呢?
List.Dates 以天为增量生成日期列,而 List.DateTimes 和 List.DateTimeZones 以小时、分钟、秒为增量生成时间序列,List.DateTimeZones 相比 List.DateTimes 还会多一个时区。
在生成日期列之前,我们需要先创建两个参数,一个开始日期,一个结束日期。进去 Power Query 编辑器,点击主页选项卡下的管理参数,选择新建参数。
将类型改为日期,输入一个开始日期值。
按照相同的办法创建一个结束日期。
先来创建一个以天为增量的日期列,看一下 List.Dates 函数的用法。给定一个开始日期和计数,然后根据 开始日期和增量生成计数值。比如,开始日期为 2022/01/01,增量为 2,计数为 50,那就会生成 50 个以 2022/01/01 为起点,增量为 2 的列表值。这里的计数是要生成多少个值,而不是开始日期加上计数等于结束日期。
创建一个空查询。
输入以下语句,其中 Duration.Days 用来提取两个日期之间的天数。
生成一个列表之后,将列表转换为表。
然后就是重命名,更改数据类型,这样一个日期列就生成了。
转到添加列选项卡下的日期,我们就可以添加想要添加的一些日期字段了。
月。
季度。
周。
天。
我们只需要生成一个日期列,其他字段通过点点点就能生成。在 DAX 中没有直接生成每月的某一周函数,而在 Power Query 中我们只需点点点就能实现。
转到 Power BI 的表格视图看一下效果。
无需掌握任何 DAX,只需要你会一个函数生成一个日期列,其余字段全部通过点点点实现。
接下来我们再来看下以小时为单位的时间序列。
先创建两个日期/时间类型的参数,如果想加上时区,可以选择日期/时间/时区。
这时我们要用到另一个函数,List.DateTimes,用法跟 List.Dates 一样,只不过最后的增量单位不一样。
我们先来创建一个以小时为增量的时间序列。Duration.TotalHours 返回时间值跨越的总小时数。
然后按照相同的办法转换成一个时间列。
这时我们不仅能添加日期字段,还能添加与时间相关的字段。
以分钟为增量的话,只需要将 Hours 改为 Minutes,#duration 第三个参数为 1。
以分钟为增量的时间列。
如果想生成带有时区的时间序列,需要将参数类型改为日期/时间/时区。
输入时间值之后,会根据你的区域设置自动加上时区。
List.DateTimeZones 与 List.DateTimes 用法一样,不过需要的是日期/时间/时区类型的数据。
日期/时间/时区列表。
如果想更换时区,直接更改参数的时区即可。
关于 Power Query 生成日期时间列的三种办法,各位小伙伴都学会了吗?生成 PQ 时间列之后,我们就可以借助一些可视化操作来生成想要的日期/时间字段,并且会根据你的区域自动生成该区域的日期字段名称,也省去了一些 DAX 中文化的操作,十分方便。
大家赶快去试一下吧,这种生成日期表的方法还是很简单的,并且想要什么字段直接在点击添加就好了。
我们为你整理了一个 Power BI 小小学习素材包,可以点击下方按钮购买体验。
数据分析精英都在学习的五大能力境界
他们是:企业老板,高管,CFO,分析...
可以体验百万级真实企业项目案例,彻底打通任督二脉
时间:2024年05月 班
主题:《业财分析之道》终极业财融合,分析师必备。[私信报名咨询
]
数据分析 | Power BI | Tableau | FineBI
企业咨询 | 企业培训 | 个人学习 | 职业规划
点击“阅读原文”获取更多资源