Building Data Models with PowerPivot_进阶篇2

5.1 使用 Userelationship 建立两表之间的多个关系
USERELATIONSHIP(多端,一端)
Measure_送货数量 = CALCULATE(SUM([数量])),USERELATIONSHIP('销售记录'[实际送货日期],'日历年'[日期])


5.2 使用多对多关系
[多 <-> 多] 可变为 [多 <- 一 -> 多]
现在'销售记录'表 & '图书分类'表是多对多关系,两表在Power BI中无法正常关联
在'图书分类'表中新建计算列求分类销售总计值
= SUMX(FILTER('销售记录','图书分类'[图书编号]='销售记录'[图书编号]),'销售记录'[数量])
问题1) 此时可以求得分类后的汇总值,但无法据此在'图书分类'下,求得准确的总计值
问题2) 此时分类销售总计值列将无法根据'销售记录'表中的日期切片


现在构建[多 <- 一 -> 多]关系
在图书分类表下新建列
1) SUMX1 = SUMX(FILTER('销售记录',COUNTROWS(RELATEDTABLE('图书分类'))>0),'销售记录'[数量])
2) Measure = SUM([数量])
CAL = CALCULATE('销售记录'[销售数量],FILTER('销售记录',COUNTROWS(RELATEDTABLE('图书分类'))>0))
3) CAL2 = CALCULATE('销售记录'[销售数量],'图书分类')


6 经典企业高级分析案例
6.1 产品/客户分类分析(ABC分析)
80/20分析(帕累托分析) 只抓关键
Pareto Analysis/ Pareto distributions [pɑ'rɛtɔ] 额
20%的产品带来80%的收入


ABC分析(70/20/10分析) 抓主次
Activity Based Classification
A类产品带来70%的收入
B类产品带来20%的收入
C类产品带来10%的收入
注:本例主要根据不同分类的产品进行计算的
1)步 在产品分类表中创建 新建列 销售金额
Column_销售金额 = CALCULATE(SUM('销售记录'[金额]))
2)步 不同分类的产品按销售额大小求销售额累积和
Column_累积金额 = SUMX(FILTER('产品分类','产品分类'[销售金额]>=EARLIER('产品分类'[销售金额])),'产品分类'[销售金额])
3)步 求累积百分比
累积百分比 = [Column_累积金额]/SUM('产品分类'[销售金额])
注意: 此时的SUM函数中不受行上下文的影响
4)步 求产品ABC分类
产品ABC分类 = IF([累积百分比]<=0.7,"A",IF([累积百分比]<=0.9,"B","C"))


此时可在页面上生成ABC分类切片器,生成产品名称列表以及ABC分类销售额汇总表


按不同客户进行ABC分析
首先生成一个从销售记录表中生成一个客户表
SUMMARIZE('销售记录','销售记录'[客户ID],'销售记录'[客户名称])


6.2 创建参数表
货币表不需要和其他表链接构成关系
'销售记录'[销售额] 是一个Measure
Measure_新销售额=IF(HASONEVALUE('汇率'[货币]),'销售记录'[销售额]/VALUES('汇率'[汇率]),'销售记录'[销售额])
注:HASONEVALUE与VALUES构成了一个筛选组合


http://www.cnblogs.com/lizardbi/tag/PowerBI/

猜你喜欢

转载自blog.csdn.net/ChristopherChen/article/details/78705176