農林漁牧網

您現在的位置是:首頁 > 林業

銷售需求丨購物籃分析

2022-09-03由 PowerBI白茶 發表于 林業

關聯度怎麼分析

銷售需求丨購物籃分析

BOSS:那個誰,對,就是你,你給我研究研究咱商場物品擺放是否合理?!

白茶:(Excuse me?)...BOSS,那個我就是個碼字的!

BOSS:加錢!給我做個高大上的購物籃分析!

白茶:(支付寶到賬####元!)好嘞!

銷售需求丨購物籃分析

在實際業務中,商場物品的擺放是否對營銷有所影響?所策劃的營銷活動是否真正的起到了促銷價值?活動贈品的使用效果如何?購物籃分析是啥?

這些問題,其核心點都是一個問題——

關聯度問題

說的通俗易懂點,就是數學概念中我們學過的

交集概念

的實際用法。

模擬資料:

銷售需求丨購物籃分析

銷售需求丨購物籃分析

這是基本的案例資料,匯入到PowerBI中,並且新增一個日期表,其模型關係圖如下:

銷售需求丨購物籃分析

但是問題也來了,我們想要做關聯度分析,那麼就需要有一個可以切換的維度,白茶在上面就已經提過,核心概念是交集。

編寫如下程式碼:

關聯度產品表 =VALUES ( ‘產品表’ )

複製一份產品表作為可以切換的維度,並且模型關係如下:

銷售需求丨購物籃分析

注意紅框的位置,要做到有關係,但是關係並未啟用的狀態。

解釋一下:

有關係是為了後面的DAX做準備,方便函式生效;

未啟用是因為啟用狀態下,和原有的產品表效果是一樣的,無法達到篩選對比的效果。

新增切片器、表格,搭建最基本的顯示環境:

銷售需求丨購物籃分析

這是基本的篩選環境和上下文環境,DAX的編寫都要在這兩個環境中進行。

銷售需求丨購物籃分析

先對客戶購買人次進行統計:

購買人次 =COUNTROWS ( VALUES ( ‘銷售明細’[客戶流水號] ) )

結果如下:

銷售需求丨購物籃分析

但是資料好像不對勁。

銷售需求丨購物籃分析

原始資料中[腰帶]的行數是1746行,但是我們寫的DAX出來的結果是1613行,很明顯這個資料對不上啊!咋辦?最佳化程式碼如下:

A類購買人次 =SUMX ( ‘銷售明細’, CALCULATE ( COUNTROWS ( VALUES ( ‘銷售明細’[客戶流水號] ) ) ) )

放在表中進行對比:

銷售需求丨購物籃分析

很明顯這次程式碼是沒問題的。

因為當前上下文環境與行上下文環境不同,造成了COUNTROWS函式上下文轉換的問題,因此結果是不準確的;可以透過SUMX函式迭代整個表搭配CALCULATE函式進行上下文轉換進行解決。

那麼當我們篩選產品B的時候,同時購買AB的客戶數量有多少呢?

編寫如下程式碼:

同時購買A和B的客戶數 =VAR BC = CALCULATETABLE ( VALUES ( ‘銷售明細’[客戶流水號] ), USERELATIONSHIP ( ‘關聯度產品表’[商品名稱], ‘銷售明細’[商品名稱] ), ALL ( ‘產品表’ ) )RETURN SUMX ( ‘產品表’, IF ( CALCULATE ( [A類購買人次], Bc ) = [A類購買人次], BLANK (), CALCULATE ( [A類購買人次], Bc ) ) )

結果如下:

銷售需求丨購物籃分析

這段程式碼的核心點在於USERELATIONSHIP函式。

此函式激活了未生效的產品關聯表B的關係,利用CALCULATETABLE函式計算求得在產品表上下文情況下,有多少[客戶訂單號]同時符合產品表A與產品表B。

再利用CALCULATE函式進行求值,計算出AB類同時購買人次。

至於SUMX函式和IF函式是為了解決總計問題,以及無效的AB購買人次顯示問題。

注:後續函數週期表會詳解USERELATIONSHIP函式,這裡就不贅述了。

銷售需求丨購物籃分析

同時購買AB客戶數計算出來了,那麼關聯度就好解決了,佔比即可。

程式碼:

關聯度佔比 =IF ( HASONEVALUE ( ‘產品表’[商品名稱] ), [同時購買A和B的客戶數] / [A類購買人次], BLANK () )

結果如下:

銷售需求丨購物籃分析

新增條件格式,並且降序排列:

銷售需求丨購物籃分析

實際上到這裡,關聯度分析就已經結束了,但是想想咱中國式BOSS的習慣,肯定是想知道金額的,所以我們仍需處理一下:

A類銷售額:

A類銷售額 =SUMX ( ‘銷售明細’, ‘銷售明細’[銷售數量] * RELATED ( ‘產品表’[銷售價] ) )

B類銷售額:

關聯產品B的銷售額 =CALCULATE ( [A類銷售額], USERELATIONSHIP ( ‘關聯度產品表’[商品名稱], ‘銷售明細’[商品名稱] ), ALL ( ‘產品表’ ))

AB類銷售額:

A客戶購買B的金額 =VAR Ac = CALCULATETABLE ( VALUES ( ‘銷售明細’[客戶流水號] ) )VAR Bc = CALCULATETABLE ( VALUES ( ‘銷售明細’[客戶流水號] ), USERELATIONSHIP ( ‘關聯度產品表’[商品名稱], ‘銷售明細’[商品名稱] ), ALL ( ‘產品表’ ) )RETURN SUMX ( ‘產品表’, IF ( CALCULATE ( [關聯產品B的銷售額], NATURALINNERJOIN ( Ac, Bc ) ) = [A類銷售額], BLANK (), CALCULATE ( [關聯產品B的銷售額], NATURALINNERJOIN ( Ac, Bc ) ) ) )

放在表格中新增條件格式,結果如下:

銷售需求丨購物籃分析

核心難點在於USERELATIONSHIP函式啟用未生效關係,以及利用NATURALINNERJOIN函式取交集進行計算。

銷售需求丨購物籃分析

初步效果已經達到,但是這樣顯得不高大上啊!

別急,新增四象限分析圖!

嘿嘿,其實就是一個散點圖,BOSS不會懂得。

銷售需求丨購物籃分析

新增一個散點圖,再分別新增兩條均值線:

銷售需求丨購物籃分析

說白了,就是在散點圖中新增兩條均值線來分類資料。

位於右上角的商品,關聯度佔比高,同時購買金額數高,相關係數遠遠高於其他三個區域。

這個時候說明我們的營銷活動(或者促銷活動、贈品、擺放)中處於右上角的商品是有價值的,也就是沒有白折騰。

再調整一下佈局,新增動態配色,新增時間切片器,其最終效果如下:

銷售需求丨購物籃分析

怎麼樣,是不是格調滿滿?用來升值加薪最好不過了。

樣例連結:http://t.cn/A6AsbE1v

(BOSS:厲害了,那個誰!)

散點圖配色技巧:

1、新增兩個均值程式碼。

程式碼1:

關聯度均值 =

AVERAGEX ( ALL ( ‘產品表’ ), [關聯度佔比] )

程式碼2:

A客戶購買B金額均值 =

AVERAGEX ( ALL ( ‘產品表’ ), [A客戶購買B的金額] )

2、選取喜歡的顏色,利用IF+AND進行判定。

動態顏色 =

IF (

AND ( [A客戶購買B的金額] <= [A客戶購買B金額均值], [關聯度佔比] <= [關聯度均值] ),

“#108DFE”,

IF (

AND ( [A客戶購買B的金額] <= [A客戶購買B金額均值], [關聯度佔比] > [關聯度均值] ),

“#e6b422”,

IF (

AND ( [A客戶購買B的金額] > [A客戶購買B金額均值], [關聯度佔比] <= [關聯度均值] ),

“#0F5C4A”,

IF ( AND ( [A客戶購買B的金額] > [A客戶購買B金額均值], [關聯度佔比] > [關聯度均值] ), “#a22041” )

當然,也可以使用SWITCH函式,這裡就不贅述了。

3、散點圖顏色格式設定。

銷售需求丨購物籃分析

銷售需求丨購物籃分析

散點圖最終效果如下:

銷售需求丨購物籃分析

小夥伴們GET了麼?

白茶會不定期的分享一些函式卡片

(檔案在知識星球[PowerBI丨需求圈])

銷售需求丨購物籃分析

這裡是白茶,一個PowerBI的初學者。