前文:
計算組基礎(chǔ)介紹請見:
http://www.reibang.com/p/0f309922c469
動態(tài)選擇模型活動關(guān)系:
http://www.reibang.com/p/a96d3e4888b0
場景
有date、sales割粮、cost、margin蜂怎,現(xiàn)在想切換分別看全價產(chǎn)品(full price穆刻,簡稱FP)、折扣產(chǎn)品(Markdown 簡稱MD)的銷售和利潤情況杠步。
其中銷售額分為按全價或打折后價格算氢伟,成本保持不變,利潤以折扣形式銷售出去的部分 利潤率會下降
image.png
為了減少度量值的數(shù)量幽歼,我們嘗試以計算組的方式來做
做法
1)建立基礎(chǔ)度量值
Sales_ = SUM(Sheet1[Sales])
Cost_ = SUM(Sheet1[Cost])
Margin_ = DIVIDE([Sales_switch]-[Cost_],[Sales_switch])
- 建立計算組
如同 http://www.reibang.com/p/a96d3e4888b0的步驟朵锣,進(jìn)入tabular editor,建立如下兩個"BY FULL PRICE""BY MARKDOWN"的兩個計算組
image.png
image.png
"BY FULL PRICE"-這個截圖的意思是甸私,全價計算的時候 就按原來的方式正常算
“BY MARKDOWN"-這個截圖的意思是诚些,折扣計算的時候 如果是銷售的度量值,則銷售額要乘上折扣比例,否則返回原來的度量值(經(jīng)測試诬烹,如果if的第二個參數(shù)不填砸烦,那么其他度量值位置會返回空值)
3)應(yīng)用檢查
image.png
經(jīng)對比,切換FP绞吁、MD的時候幢痘,sales發(fā)生了變化,cost不變家破,但是margin也沒有發(fā)生變化颜说。
按照邏輯,margin應(yīng)當(dāng)根據(jù)FP/MD的值 發(fā)生相應(yīng)的變化汰聋。
margin不變的原因门粪,在于:
雖然sales根據(jù)計算組的計算邏輯發(fā)生變化,但是margin引用的sales仍然是原值sales 而不是經(jīng)過計算組處理后的sales
4)優(yōu)化
構(gòu)建一個與計算組表格完全一致的表格烹困,然后新建度量值玄妈,度量值中獲取計算組處理后的sales值。
最后用新構(gòu)建的表格作為外部篩選器髓梅,而不用計算組的表格措近。
--新表
SelectiveMeasure to user =
SELECTCOLUMNS (
SelectiveMeasure,
"Name", SelectiveMeasure[Name],
"Ordinal", SelectiveMeasure[Ordinal]
)
--新sales度量值
Sales_switch =
CALCULATE (
[Sales_],
TREATAS ( VALUES ( 'SelectiveMeasure to user'[Name] ), SelectiveMeasure[Name] )
)
5)優(yōu)化后檢測
將sales cost margin都放在table上,同時將md的正確值也放在table上 方便對比
image.png
image.png