以服务分类和地区为分析维度,利润与销售额为度量指标,建立帕累托模型。
原数据
建表-1帕累托维度
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| 1-帕累托维度 = VAR city = SELECTCOLUMNS ( ADDCOLUMNS ( DISTINCT ( 'SalesData'[城市] ), "分析维度", "城市" ), "维度明细", [城市], "分析维度", [分析维度] )
VAR time = SELECTCOLUMNS ( ADDCOLUMNS ( DISTINCT ( 'SalesData'[日期] ), "分析维度", "日期" ), "维度明细", [日期], "分析维度", [分析维度] ) RETURN UNION ( city,time)
|
建表-2度量指标
建表ABC
1
| ABC = GENERATESERIES(0, 100, 1)
|
语法GENERATESERIES
返回一个单列表,其中包含一个算术序列的值,即一系列值,其中每个值与前面的值相差一个常数。 返回的列的名称为 Value。
1
| GENERATESERIES(<startValue>, <endValue>[, <incrementValue>])
|
术语 | 定义 |
---|
startValue | 用于生成序列的初始值。 |
endValue | 用于生成序列的最终值。 |
incrementValue | (可选)序列的增量值。 如果未提供,则默认值为 1。 |
示例
1
| EVALUATE = GENERATESERIES(1, 5)
|
新建度量值 ABC 值
1
| ABC 值 = SELECTEDVALUE('ABC'[ABC])
|
建表-3基础数据(度量值)
利润、销售额
1 2
| 利润 = SUM(SalesData[利润]) 销售额 = sum(SalesData[销售额])
|
度量指标
1 2 3 4
| 度量指标 = SWITCH(SELECTEDVALUE('2-度量指标'[排序]), 1,[利润], 2,[销售额], [销售额])
|
分析数据、分析数据合计
1 2 3 4 5 6 7 8
| 分析数据 = var Num1=TREATAS(VALUES('1-帕累托维度'[维度明细]),SalesData[日期]) var Num2=TREATAS(VALUES('1-帕累托维度'[维度明细]),SalesData[城市]) return SWITCH(TRUE(), SELECTEDVALUE('1-帕累托维度'[分析维度])="日期",CALCULATE([度量指标],Num1), SELECTEDVALUE('1-帕累托维度'[分析维度])="城市",CALCULATE([度量指标],Num2), BLANK() )
|
1
| 分析数据合计 = CALCULATE([度量指标],ALLSELECTED(SalesData))
|
数据占比
1
| 数据占比 = DIVIDE([分析数据],[分析数据合计])
|
1 2
| 累计占比 = var cur_rate = [数据占比] return CALCULATE([数据占比],FILTER(ALL('1-帕累托维度'[维度明细]),[数据占比]>=cur_rate))
|
A
C
1
| C = 1-MAX('ABC'[ABC])/100
|
B
ABC.color
1 2 3 4 5 6 7 8
| ABC.color = VAR a = [累计占比] RETURN SWITCH( TRUE(), a <= [A],1, a >= [A] && a<= [A]+[B],2, a > [A]+[B],3, BLANK() )
|
ABC.level
ABC参数(切片器)
柱状图ABC颜色
成果