每個企業的經營活動都是圍繞著客戶而開展的,在服務好老客戶的同時,不斷開拓新客戶是每個企業的經營目標之一。

開拓新客戶必然要付出一定的費用支出,費用支出除以新客戶數,就是新客成本,新客成本的高低也決定了企業的盈利水平。

客戶拓展費用支出相對容易衡量,而新客戶的數量如何計算呢?

表面上感覺計算起來並不難,但如何從數萬筆的訂單數據中,快速計算任意一個時間段有多少新客戶?使用傳統的Excel函數並不是那麼容易計算的。

本文就來嘗試在PowerBI中,使用度量值來快速計算出新客戶數量,以及更進一步,計算出新客戶的購買金額。


示例數據模型中有一個訂單表和一個日期表,通過訂單日期建立關係,先建立兩個簡單的度量值如下:

客戶數 = DISTINCTCOUNT(訂單[客戶姓名])

銷售金額 = SUM(訂單[銷售額])

然後直接寫出新客戶數量的度量值:

新客戶數 =

VAR FirstOrderDate= ADDCOLUMNS ( ALL (訂單[客戶姓名]),

"首次購買日期",

CALCULATE( MIN(訂單[訂單日期]), ALLEXCEPT(訂單,訂單[客戶姓名]) ) )//計算每一個客戶的首次購買日期VAR NewCustomers= FILTER ( FirstOrderDate, CONTAINS(

VALUES (日期表[日期]),

日期表[日期], [首次購買日期] ) )//返回新客戶列表RETURN CALCULATE([客戶數],NewCustomers)

看起來很長,其實主要就是兩個VAR定義的虛擬表,第一個虛擬表FirstOrderDate返回的是所有客戶名稱以及每一個客戶首次購買日期。

這其中只有一個函數之前的文章中沒有使用過:ALLEXCEPT,關於該函數的含義和用法可以參考這個函數卡片:

知識星球中每日函數卡片

VAR定義的第二個虛擬表NewCustomers,返回的是任意時間段內,新客戶的列表

然後使用COUNTROWS(NewCustomers)就計算出了新客戶的數量,總客戶數減去新客戶數量就是老客戶數量。

從上表數據中可以看到,第一個月全部是新客戶(這裡假設是從1月開始經營),到4月開拓的新客戶達到峯值,雖然總體客戶數量一直在增長,但新客戶開拓速度明顯下降,後期主要靠老客戶的重複購買。

更進一步地,使用度量值來計算新客戶的銷售金額。

新客戶購買金額 =

VAR FirstOrderDate= ADDCOLUMNS ( ALL (訂單[客戶姓名]), "首次購買日期", CALCULATE( MIN(訂單[訂單日期]), ALLEXCEPT(訂單,訂單[客戶姓名]) )

)//計算每一個客戶的首次購買日期

VAR NewCustomers= FILTER ( FirstOrderDate, CONTAINS( VALUES (日期表[日期]), 日期表[日期], [首次購買日期] ) )//返回新客戶列表RETURN

CALCULATE([銷售金額],NewCustomers)

這段代碼和計算新客戶數量的DAX,只有最後一行不一樣,計算新客戶數量時,使用COUNTROWS返回新客戶列表的行數,而這裡使用CALCULATE([銷售金額],NewCustomers)來計算新客戶的銷售額。

所以,無論是計算新客戶數量還是求新客戶的銷售額,重點就是如何獲得新客戶的列表。

同樣,總銷售金額減去新客戶的購買金額,就是老客戶的重複購買金額。

上表中外部上下文是每月,實際上,可以選擇任意時間段,比如想看看國慶促銷期間增加的新客戶,只要選擇10月1日到10月7日這個期間,上面度量值會立即計算出這7天裏增加的新客戶和新客戶的購買金額。

如果你剛接觸並打算學習PowerBI,我整理了一本從零開始學習PowerBI的電子書,微信公眾號「PowerBI星球」後臺回復關鍵字「PowerBI」可免費獲取這本電子書,看完這本書,你基本上就入門了,使用PowerBI進行簡單的數據處理和分析沒有問題。

如果你學習PowerBI時苦於沒有數據,可以在公眾號回復關鍵字"數據"獲取我整理的近百個數據集。

如果文章對你有幫助,請不要忘了點贊支持哦,謝謝。

推薦閱讀:

相關文章