首页 » 智能科技 » 若何用Power BI找出上个订单日期?送你3种方法

若何用Power BI找出上个订单日期?送你3种方法

金螳螂建筑装饰股份通讯 2025-04-13 0

扫一扫用手机浏览

文章目录 [+]

以这个大略的数据为例:

如何找出相同产品每笔订单的上一笔的订单日期呢?这里通过M和DAX几种办法来实现这个需求。

若何用Power BI找出上个订单日期?送你3种方法 若何用Power BI找出上个订单日期?送你3种方法 智能科技

利用M添加自定义列

若何用Power BI找出上个订单日期?送你3种方法 若何用Power BI找出上个订单日期?送你3种方法 智能科技
(图片来自网络侵删)

在PowerQuery中添加自定义列:

上个订单日期=

List.Max(

Table.SelectRows(

变动的类型,

(x)=>

x[产品名称]=[产品名称] and

x[订单日期]<[订单日期]

)[订单日期]

)

利用DAX添加打算列

在数据视图中添加打算列:

上个订单日期 =

VAR a=[产品名称]

VAR b=[订单日期]

VAR c=

CALCULATE(

MAX('数据表'[订单日期]),

FILTER('数据表','数据表'[产品名称]=a&&'数据表'[订单日期]<b)

)

RETURN c

利用DAX创建度量值

上面都是添加列的方法,还可以利用度量值来实现,在高下文不变的情形下,度量值的写法也与打算列类似:

上个订单日期 度量值 =

VAR a=MAX([产品名称])

VAR b=MAX([订单日期])

VAR c=

CALCULATE(

MAX('数据表'[订单日期]),

FILTER(ALL('数据表'),'数据表'[产品名称]=a&&'数据表'[订单日期]<b)

)

RETURN c

上面几种办法,无论是M还是DAX,无论是添加列还是度量值,实在逻辑是一样的。

都是先筛选出产品名称即是当前行的产品名称、并且订单日期小于当前当前行订单日期的所有行(M函数利用 Table.SelectRows筛选,DAX利用FILTER函数筛选),然后打算筛选结果的最大订单日期,也便是上一个订单日期。

现在有了窗口函数,实在利用窗口函数打算更加大略,比如利用OFFSET函数来写个度量值:

上个订单日期 OFFSET =

CALCULATE(

MAX('数据表'[订单日期]),

OFFSET(

-1,

ALLSELECTED('数据表'[订单日期],'数据表'[产品名称]),,,

PARTITIONBY('数据表'[产品名称]))

)

将这个度量放到上面的可视化表格中,结果与前面的做法完备一样。

关于窗口函数的用法可以参考:

Power BI本月正式推出的DAX新函数:OFFSET、INDEX、WINDOW

PowerBI剖析技巧:利用窗口函数进行帕累托剖析,大幅提升性能

以上便是打算上个订单日期的几种办法,有了它就可以进一步打算上个订单日期的数据以及订单间隔天数等,也可以进行上一行下一行的干系打算,灵巧利用可以办理各种类似的问题。

「PowerBI星球」内容合集(2023版)

PowerBI星球

标签:

相关文章

制作全彩LED显示屏需要若干钱

1、台式电脑,用于掌握LED显示屏的必需设备,要有一定的配置标准。2、音响+功放,让显示屏同步视频播放发生发火声音的设备。3、多功...

智能科技 2025-04-13 阅读0 评论0

如斯“个性”的傲骄店家 你见过吗

为什么店主的业务韶光要这么设定呢?出于什么样的考虑?省城还有哪些店的业务韶光会这么“个性”呢?近日,山西就这些问题进行了采访。“个...

智能科技 2025-04-13 阅读0 评论0