bg:帶時(shí)間維度切換,多層級(jí)條形圖
- 寫一個(gè)指標(biāo),多指標(biāo)就可以不用重復(fù)寫時(shí)間維度
KPI =
VAR a =SELECTEDVALUE ( 'KPI'[指標(biāo)名稱] ) //新建指標(biāo)表
VAR resurt =
SWITCH (
a,
"K1", [K1], // K1 指標(biāo)名,[K1] 該指標(biāo)計(jì)算sum或count等
"k2", [K2]
)
RETURN
resurt
2.時(shí)間維度
KPI MTD = CALCULATE ( [KPI], DATESMTD( 'Date'[Date]) )
//QTD YTD 同上
3.KPI 時(shí)間維度篩選
KPI.時(shí)間維度 = SWITCH(SELECTEDVALUE('時(shí)間維度'[時(shí)間維度]), //新建維度表
"YTD",[KPI YTD],
"MTD",[KPI MTD],
"QTD",[KPI QTD]
)
- 條形圖SVG
4.1 單一條形圖
- 4.1.1 單一維度
條形圖.單一層級(jí) =
var a =[KPI.時(shí)間維度]
var e =CALCULATE([KPI.時(shí)間維度],ALL(fact[Channel])) //前面的維度
var svg="data:image/svg+xml;utf8,
<svg xmlns='http://www.w3.org/2000/svg' width='300' height='30'>
<rect x='0' y='1' width=' "& DIVIDE(a,e)*150 &" ' height='25'
fill= '#18B196'
/>
<text x='
"& IF(a>100000000||DIVIDE(a,e)*150>=150,DIVIDE(a,e)+50,DIVIDE(a,e)*150+20) &"
'
y='17'
font-size='12'
text-anchor='start' <!-- 還有middle或end -->
font-family='Arial'
fill='white'>"
& FORMAT(a,"#,0") &
"</text>
</svg>"
return IF(ISBLANK(a),BLANK(),svg)

條形圖.單一維度
- 4.1.2 多層級(jí)
條形圖.多層級(jí) =
var a =[KPI.時(shí)間維度]
var e =
MAXX(ALLSELECTED('fact'[層級(jí)1],'fact'[層級(jí)2],'fact'[層級(jí)3]), MAX([KPI.時(shí)間類型], [KPI]))
var svg="data:image/svg+xml;utf8,
<svg xmlns='http://www.w3.org/2000/svg' width='300' height='30'>
<rect x='0' y='1' width='"& DIVIDE(a,e)*150 &"' height='25'
fill= '#42C8E5'
/>
<text x='"& IF(a>100000000||DIVIDE(a,e)*150>=150,DIVIDE(a,e)+50,DIVIDE(a,e)*150+20) &"' y='17' font-size='12' text-anchor='start' font-family='Arial' fill='white'>"& FORMAT(a,"#,0") &"</text>
</svg>"
return IF(ISBLANK(a),BLANK(),svg)

條形圖.多層級(jí)
4.2 組合條形圖
多層級(jí).組合.條形圖 =
VAR MaxWidth = 300
VAR MaxValue =MAXX(ALLSELECTED('fact'[層級(jí)1],'fact'[層級(jí)2],'fact'[層級(jí)3]), MAX([KPI.時(shí)間類型], [KPI]))
VAR ScaleFactor = 0.08 // 調(diào)整比例以縮小圖形
VAR Width1 = IF(MaxValue = 0, 0, MaxWidth * [KPI.時(shí)間維度]/ MaxValue * ScaleFactor)
VAR Width2 = IF(MaxValue = 0, 0, MaxWidth * [KPI2] / MaxValue * ScaleFactor/2)
VAR SVG =
IF(ISBLANK([KPI.時(shí)間維度]),
BLANK(),
"data:image/svg+xml;utf8,
<svg xmlns='http://www.w3.org/2000/svg' width='" & MaxWidth & "' height='25'>
<!-- 第一個(gè)條形圖 -->
<rect x='0' y='0' width='" & Width1 & "' height='25' fill='rgb(224,157,0)'/>
<!-- 第二個(gè)條形圖 -->
<rect x='" & Width1 & "' y='0' width='" & Width2 & "' height='25' fill='rgb(157,172,204)'/>
<!-- 第一個(gè)條形圖的文本 -->
<text x='" & (Width1/60) & "' y='20' font-size='12' font-weight='bold' fill='white'>" & [KPI.時(shí)間維度] & " / <tspan dx='1' font-size='12' font-family='Arial' fill='white'>" & [KPI2]& "</tspan></text>
<!-- 第二個(gè)條形圖的文本 -->
</svg>"
)
RETURN
SVG

多層級(jí).組合.條形圖