分享

PowerBI技巧:动态提取数据的最后交易记录

 PowerBI星球 2021-06-22

平时经常被问到,如何把数据中最后一次交易记录提取出来?比如每个客户的最后一次下单记录,或者每个产品最后一次卖出记录等。

这个问题实现起来并不难,以这个简易的订单表为例:

如何将上表中每个客户的最后一次购买记录提取出来呢?

下面给出DAX和PowerQuery两种做法。

DAX方法

可以在这个表里新建一列,如果是最后一条记录,返回“是”,计算列写法如下:

最后下单记录 =
VAR lastdealdate=
    CALCULATE(
        MAX('订单表'[日期] ),
        ALLEXCEPT('订单表','订单表'[客户])
    )
RETURN
    IF( [日期]=lastdealdate , "是" )
这个计算列的逻辑是,先找出每个客户的最后一次下单日期,然后判断每一行该客户的订单日期是否等于最后下单日期,如果等于,就返回“是”。

这样就在订单表中新增了一列最后记录的标注,直接筛选就可以提取最后一次下单的记录表。

当然还可以用DAX新建表,一次性把最后下单记录提取出来。

逻辑是一样的,只是把计算列的表达式直接写在了计算表中。

PowerQuery方法

上面是用DAX来表达的,如果用PowerQuery应该怎么处理呢?

非常简单,只需要下面几个步骤:

1、日期列按升序排列

2、反转行

3、选中客户列,右键>删除重复项

即可得到每个客户的最后一条记录:

和前面DAX的处理结果一致。

PowerQuery方法要简单的多,只需要点几次鼠标就行了,但是如果客户在最后下单日期有多条记录,并且还都需要保留,那么用上面的PowerQuery方法就失效了,直接用DAX实现即可。

根据不同的业务场景选择用最合适的方法。

并且数据更新后,上面两种方法都可以自动显示更新后数据的最后一条记录。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多