PowerBI技巧:動態提取資料的最後交易記錄

平時經常被問到,如何把資料中最後一次交易記錄提取出來?比如每個客戶的最後一次下單記錄,或者每個產品最後一次賣出記錄等。

這個問題實現起來並不難,以這個簡易的訂單表為例:

PowerBI技巧:動態提取資料的最後交易記錄

如何將上表中每個客戶的最後一次購買記錄提取出來呢?

下面給出DAX和PowerQuery兩種做法。

DAX方法

可以在這個表裡新建一列,如果是最後一條記錄,返回“是”,計算列寫法如下:

最後下單記錄=

VAR

lastdealdate=

CALCULATE(

MAX(‘訂單表’[日期] ),

ALLEXCEPT(‘訂單表’,‘訂單表’[客戶])

RETURN

IF( [日期]=lastdealdate , “是” )

這個計算列的邏輯是,先找出每個客戶的最後一次下單日期,然後判斷每一行該客戶的訂單日期是否等於最後下單日期,如果等於,就返回“是”。

這樣就在訂單表中新增了一列最後記錄的標註,直接篩選就可以提取最後一次下單的記錄表。

PowerBI技巧:動態提取資料的最後交易記錄

當然還可以用DAX新建表,一次性把最後下單記錄提取出來。

PowerBI技巧:動態提取資料的最後交易記錄

邏輯是一樣的,只是把計算列的表示式直接寫在了計算表中。

PowerQuery方法

上面是用DAX來表達的,如果用PowerQuery應該怎麼處理呢?

非常簡單,只需要下面幾個步驟:

1、日期列按升序排列

PowerBI技巧:動態提取資料的最後交易記錄

2、反轉行

PowerBI技巧:動態提取資料的最後交易記錄

3、選中客戶列,右鍵>刪除重複項

即可得到每個客戶的最後一條記錄:

和前面DAX的處理結果一致。

PowerQuery方法要簡單的多,只需要點幾次滑鼠就行了,但是如果客戶在最後下單日期有多條記錄,並且還都需要保留,那麼用上面的PowerQuery方法就失效了,直接用DAX實現即可。

根據不同的業務場景選擇用最合適的方法。

並且資料更新後,上面兩種方法都可以自動顯示更新後資料的最後一條記錄。

TAG: 下單DAX記錄最後PowerQuery