前天的PowerBI星球案例模型发出后,有不少人对刷新自动更新到今天很感兴趣,后台询问是如何做到的,这篇文章就统一介绍一下。
其实输入路径打开模版文件后,进入PowerQuery编辑器,仔细查看就能发现其中的奥秘,就是订单表中增加的这三个步骤来实现的,如下图。
当你把订单表首次导入并更改字段的数据类型以后,可以看到原始数据中,最大的订单日期是2021年12月31日。
如果想最大日期变成今天的日期,只需要计算出这个最大日期和今天相隔的天数,然后对订单日期列上的所有日期,都加上这个天数就可以了,这就是调整的基本思路。
下面来看看操作步骤:
右键点击处理前的最后一个步骤(本例是更改的类型),"插入步骤后",这样就可以在后面插入一个新的步骤。
然后在编辑栏输入:
= let
a=List.Max(更改的类型[订单日期]),
b=DateTime.Date(DateTime.LocalNow()),
c=Duration.TotalDays(b-a)
in c
这里通过在PowerQuery中使用变量的形式,分步骤来计算的,a计算的是订单日期列的最大日期;b计算的是今天的日期;c是这两个日期相差的天数。
(添加的步骤默认的名称是"自定义",你可以右键对步骤重命名)
这里的计算结果727,就是2021年12月31日距离今天2023年12月28日的天数:
有了这个天数以后,继续像上面的方式一样,添加个新的步骤:
= Table.TransformColumns(
更改的类型,
{{"订单日期", each Date.AddDays(_,最后订单日期距今日天数), type date}}
)
这里用到了Table.TransformColumns函数,它可以在不添加自定义列的情况下,直接对表中的某个字段进行特定处理。
具体处理用的是Date.AddDays函数,把订单日期列的所有日期都移动上面计算出的天数。
同样再添加一个步骤,再对发货日期也加上这个天数:
= Table.TransformColumns(
调整订单日期,
{{"发货日期", each Date.AddDays(_,最后订单日期距今日天数), type date}}
)
这样调整好以后,任意日期刷新,订单表中的最新日期都会是今天。
实际数据分析中,或许你并不会用到这个技巧,不过通过本文的介绍,可以掌握如何通过PowerQuery获取今天的日期、字段的最大日期,以及两个日期之间的差异计算等数据处理相关知识,希望对你有帮助。
PowerBI星球