小a:白茶兄!!白茶兄!!在不在??!!救命啊,兄弟!
白茶:(一臉迷茫)啊?!
小a:是這樣的,我遇到了乙個需求問題!某位老闆,想自由切換top3!
白茶:額,這個我不是教過你麼?top3通過allselected函式可以實現啊!
小a:不是這樣的,這個老闆是個完美主義者!要的是不同維度的top3,並且只能顯示乙個,比如選擇a維度就不能出現b維度的top3,但是要求在乙個框框中體現!
白茶:…
小夥伴們,以上就是本期內容的問題**,一些場景和人物都是白茶虛構的,但是這個事卻是真的。
在實際生活中,我們經常能遇到各種莫名其妙的需求,也就是白茶所說的中國式報表——即追求個性化自定義邏輯的報表。
而且因為行業和業務需求的不同,這類問題也是千奇百怪。沒有辦法做乙個系統的歸納,只能是不斷的發現需求,解決需求。
話不多說,開始本期的問題:
如何在不同維度之間切換top3,並且讓無關項不顯示呢?
模擬資料:
這是白茶隨機模擬的乙份銷售明細。
其中包含了兩個可以分析的維度:品名和分店。
將其匯入到bi中,建立基礎的度量值。
銷售數量 : =
sum ( '銷售明細'[銷售數量] )
關於本期的問題,白茶有兩個解決思路。
思路①:
通過if判斷欄位來決定是否顯示相關排名。
編寫兩個維度的top3排名度量值。
商品top:
rankx_商品 =
var t1 =
rankx ( allselected ( '銷售明細'[商品名稱] ), [銷售數量 :] )
return
if ( t1 <= 3, t1, blank () )
分店top:
rankx_分店 =
var t1 =
rankx ( allselected ( '銷售明細'[所在分店]] ), [銷售數量 :] )
return
if ( t1 <= 3, t1, blank () )
結果如下:
新增切片器維度:
通過if對篩選字段進行判斷。
商品排名:
rankx_商品kpi =
if ( selectedvalue ( '維度表'[維度] ) <> "分店", [rankx_商品], blank () )
分店排名:
rankx_分店kpi =
if ( selectedvalue ( '維度表'[維度] ) <> "商品", [rankx_分店], blank () )
這裡解釋一下:其效果如下:1、通過rankx函式,分別對[商品]、[分店]維度進行排名,排序依據是[銷售數量],利用if判斷,排名小於3顯示,否則為空;
2、利用if進行維度字段判定,符合條件顯示,否則為空,通過度量值實現維度消失的效果。
如果boss想讓兩個在乙個框框內,可以選擇將兩個視覺化外掛程式重疊,也可以通過多行卡片圖顯示。
思路②:
通過座標維度顯示。
編寫如下**,新增表函式:
table =
var t1 =
selectcolumns ( '銷售明細', "明細", [商品名稱], "類別", "商品", "index", "1" )
var t2 =
selectcolumns ( '銷售明細', "明細", [所在分店], "類別", "分店", "index", "2" )
return
distinct ( union ( t1, t2 ) )
結果如下:
編寫度量值,將新生成的座標維度與事實表建立聯絡:
kpi =
var t1 =
treatas ( values ( 'table'[明細] ), '銷售明細'[商品名稱] )
var t2 =
treatas ( values ( 'table'[明細] ), '銷售明細'[所在分店] )
var t3 =
selectedvalue ( 'table'[類別] )
return
switch (
true (),
t3 = "商品", calculate ( [銷售數量 :], t1 ),
t3 = "分店", calculate ( [銷售數量 :], t2 )
)
排序依據有了,編寫排名**:
rankx kpi =
var t1 =
rankx ( allselected ( 'table'[明細] ), [kpi] )
return
if ( t1 <= 3, t1, blank () )
其結果如下:
解釋一下思路:我們對比一下效果:1、通過新建的表函式,將兩個維度放在一列中;
2、利用treatas將維度與事實表聯絡起來;
3、利用rankx進行排序,之後if判斷,符合條件顯示,否則為空。
小夥伴們❤get了麼?
白茶會不定期的分享一些函式卡片
(檔案在知識星球[powerbi丨需求圈])
這裡是白茶,乙個powerbi的初學者。
BI技巧丨粒度切換
白茶在很久之前,寫過關於笛卡爾積的兩個函式。generate函式與crossjoin函式。傳送門 笛卡爾積 那麼這兩個函式之間具體的區別是什麼呢?在實際用途中的區別呢?本期白茶來解釋一下二者之間的核心點 上下文傳遞問題。在微軟的官方介紹中並未提及兩個函式的區別。但是從語法上看generate引數只能...
電腦銷售技巧 怎樣提高銷售的技巧
銷售部門運營中的壓力蘊含了成功與失敗的雙重機會,想要成功掌握好銷售技巧才是銷售人員的上上之策,那麼銷售人員怎樣提高銷售的技巧呢?怎樣提高銷售技巧,這是銷售人員天天都在找尋答案的問題,而且每個人都會給出這樣或是那樣的答案,您是不是也有一些答案呢?我們一起看一下,怎樣提高銷售技巧。習慣決定性格,性格決定...
電話銷售技巧
銷售技巧 12招攻破客戶拒聽 1 哦!是關於哪方面的事呢?準客戶的名字 這些構想有可能對您非常重要,我希望能夠當面向您解說清楚,另外,我還有一些細節性的問題必須與您討論,請問您 時間 有空或者 時間 有空,我可以去拜訪您嗎?2 把資料寄來就好。我很樂意這樣做。準客戶的名字 但是這些構想只有在符合您個...