日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

是引进外部函数吗_使用PowerBI的这两个函数,灵活计算各种占比

發布時間:2024/7/5 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 是引进外部函数吗_使用PowerBI的这两个函数,灵活计算各种占比 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

計算個體占總體的比例是一個很常見的分析方式,它很簡單,就是兩個數字相除,但是當需要計算的維度、總體的范圍發生動態變化時,如何靈活且快速的計算出各種占比,還是需要動一點心思的。

本文就通過 DAX 中的 ALL 和 ALLSELECTED 函數來看看在 PowerBI 中是如何快速計算出各種占比的。


數據為虛擬的某網上商城的電子產品的銷售記錄,我們根據銷售額指標來計算某產品的占總體或者類別的比例。

首先寫一個銷售額的度量值,

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

在矩陣中看看該度量值的結果,

總體占比

計算占總體的比例,就是每一個類別的銷售額都除以總計數,計算總計數,可以用 ALL 函數清除外部上下文的篩選,如果單獨計算出總計銷售額,可以這樣寫,

銷售額總計=CALCULATE([銷售額],ALL('產品')

將該度量值放入到卡片圖中,可以看到正好是2,305,350.

這里為了更加直觀,我們直接寫出占總體比例的度量值,

總體占比 = DIVIDE([銷售額],CALCULATE([銷售額],ALL('產品')))

矩陣中結果如下,

為了進一步分析具體每一種產品的占比,把產品名稱展開,

分類占比

每一種產品相對于總體的比例都計算出來了,但是如果還需要知道每一種產品占所屬分類的比例,可以這樣寫,

分類占比 =
DIVIDE([銷售額],CALCULATE([銷售額],ALL('產品'[產品名稱])))

結果如下,

這張表中最后一列每種產品占分類的比例正是想要的結果,這兩個度量值的區別就在于ALL('產品')和ALL('產品'[產品名稱])。

ALL('產品')是清除對產品表上所有的列的上下文,正如上面看到的,CALCULATE([銷售額],ALL('產品')的結果就是總體的銷售額。

而ALL('產品'[產品名稱])僅僅是清除產品名稱的上下文,如果上下文不是產品名稱,那么它還是會繼續計算,比如第一行是類別:電腦外設,它不屬于產品名稱,那么這個度量值會計算電腦外設的銷售額。

可以單獨寫一個度量值觀察一下結果,

銷售額 分類 = CALCULATE([銷售額],ALL('產品'[產品名稱]))

可以看出每一個產品計算出的銷售額都是所屬分類的匯總銷售額,正是利用這個特點,拿產品的銷售除以類別合計銷售額,就得到的每種產品占所屬類別的比例。

按篩選上下文計算總體占比

現在如果想分析具體某幾個產品的數據,用產品名稱做個切片器,效果如下,

除了類別行和總計行的占比發生了變化,每一種產品的占比數據并沒有變化。

如果我們只是想分析所選的這幾種產品,把所選這幾種產品作為一個整體,來分析每種產品占所選產品的比例,這個結果顯然不能讓人滿意。

是時候請出ALLSELECTED函數登場表演了!

要計算每一種產品占所選品種合計銷售額的比例,度量值如下,

按篩選 占總體% =
DIVIDE([銷售額],CALCULATE([銷售額],ALLSELECTED('產品')))

最后一列的占比,無論我們篩選哪些產品,總體比例都是100%,而每一種產品,都是該產品占所選產品的比例。

ALLSELECTED函數針對外部上下文中進行篩選計算,正好是我們需要的效果。

按篩選上下文計算類別占比

如果我們想進一步計算按外部所選的產品,并且按照產品類別,來計算相對產品類別的百分比,怎么做呢?

也許你已經想到了,和上面一樣,使用ALLSELECTED('產品'[產品名稱],

按篩選 占分類% =
DIVIDE([銷售額],CALCULATE([銷售額],ALLSELECTED('產品'[產品名稱])))

正是期望中的結果。

從這幾個實例可以看出,使用DAX來計算占比非常靈活,稍微一改動,結果大不同,以硬盤為例,通過ALL和ALLSELECTED函數和參數的變化,獲得了4個不同的占比,并且每種占比都具有一定的意義,都是在某種業務場景下的真實需求。

總結

其實上面計算的每一種占比,分子都不變,只是通過ALL和ALLSELECT函數及其參數的選擇操控不同的上下文環境,來控制分母的計算,進而得到我們所需要的占比。

1,計算占總體的比例,

總體占比 =
DIVIDE([銷售額],CALCULATE([銷售額],ALL('產品')))

2,計算占類別的比例,

分類占比 =
DIVIDE([銷售額],CALCULATE([銷售額],ALL('產品'[產品名稱])))

3,按外部篩選上下文,計算占總體的比例,

按篩選 占總體% =
DIVIDE([銷售額],CALCULATE([銷售額],ALLSELECTED('產品')))

4,按外部篩選上下文,計算占類別的比例,

按篩選 占分類% =
DIVIDE([銷售額],CALCULATE([銷售額],ALLSELECTED('產品'[產品名稱])))

DAX函數并不是很容易理解,必須基于不同的上下文環境來觀察結果,通過不斷的練習、思考背后的邏輯,才能更好的掌握。

總結

以上是生活随笔為你收集整理的是引进外部函数吗_使用PowerBI的这两个函数,灵活计算各种占比的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。