https://zhuanlan.zhihu.com/p/57763423

上篇文章介绍了帕累托图的用处以及如何制作一个简单的帕累托图,在 PowerBI 中可以很方便的生成,但若仅止于此,并不足以体现 PowerBI 的强大。现实中的分析很多数据维度交织在一起,若要一个一个的生成帕累托图进行分析,就显得太繁臃和低级。

通过简单的点击交互,就能进行动态分析发现见解,才是我们需要的,恰好这也是 PowerBI 所擅长的。

就帕累托分析来说,能从不同的角度快速发现关键因素、以及可以动态设定关键因素的阈值,就是我们需要的。本文通过一个示例来看看如何生成一个动态的帕累托图,先看看最终效果,

这样分析是不是很简单,下面就来看看是如何制作的。

数据为虚拟的某连锁店的电子产品销售明细,以及与之关联的产品和销售地点维度,和一个对应的日期表,建立关系图如下,

要分析的维度:

1,时间维度:年份

2,财务指标:收入和利润

3,销售细分:按地区和产品明细


时间维度

年度指标比较简单,销售明细表中有日期数据,直接根据日期表中的年度创建一个切片器就行了。

财务指标

先建两个度量值:

收入 = SUM('销售明细'[销售额])
利润贡献 = SUM('销售明细'[毛利])

然后在PowerBI Desktop中新建表,只有一个字段[财务指标],数据为收入和利润,

按字段[财务指标]制作切片器,然后写度量值[指标数据],

指标数据 =
SWITCH(TRUE(),
SELECTEDVALUE('财务指标'[财务指标])="收入",[收入],
SELECTEDVALUE('财务指标'[财务指标])="利润",[利润贡献],
BLANK()
)

该度量值判断切片器的选择,如果选择的是收入,就汇总收入数据;如果选择的是利润,就汇总利润。

产品和地区维度

同上面的思路类似,把产品明细和地区明细整合到一起,如下图,

如果数据量很小,手工整理也很快,不过在这里依然可以用DAX实现,在【建模】选项卡下,点击"新表"(参考:PowerBI Desktop中新建表的使用场景),在编辑栏输入:

分析维度 =
VAR item1 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '城市'[城市] ) , "分析维度" , "地区" ) , "分析维度" , [分析维度],"维度明细",[城市] )
VAR item2 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '产品明细'[产品名称]) , "分析维度" , "产品" ) ,"分析维度" , [分析维度], "维度明细" , [产品名称] )
RETURN UNION( item1 , item2 )

然后上图中的表格就生成了,根据该表的字段[分析维度]创建切片器。

至此,三个分析维度已经建立完成,并体现在报表左侧的三个切片器上。


制作帕累托图

步骤和上一篇文章类似,只是由于分析维度更多,需要更细化的处理。各个切片器之间要相互配合,考虑上下文的影响,以下的DAX公式稍微长一点,需要根据每个函数慢慢理解,按照这个实例学习这些函数其实也是个不错的方式。

将【折线和簇状柱形图】拖到画布上,将前面创建的分析维度表中的[维度明细]拖入到共享轴。

创建度量值[分析数据]拖入到列值框中,

分析数据 =
VAR item3=TREATAS( VALUES('分析维度'[维度明细]),'城市'[城市])
VAR item4=TREATAS(VALUES('分析维度'[维度明细]),'产品明细'[产品名称])
RETURN
SWITCH(TRUE(),
SELECTEDVALUE('分析维度'[分析维度])="地区",
CALCULATE([指标数据],item3),
SELECTEDVALUE('分析维度'[分析维度])="产品",
CALCULATE([指标数据],item4),
BLANK()
)

下一步就是获得累计占比的数据,创建度量值如下,

分析数据合计 =
SWITCH(TRUE(),
SELECTEDVALUE('财务指标'[财务指标])="收入",
CALCULATE([收入],ALLSELECTED('销售明细'[销售额])),
SELECTEDVALUE('财务指标'[财务指标])="利润",
CALCULATE([利润贡献],ALLSELECTED('销售明细'[毛利])),
BLANK()
)

数据占比 = DIVIDE([分析数据],[分析数据合计])

累计占比 =
VAR cur_rate=[数据占比]
RETURN
CALCULATE([数据占比],FILTER(ALL('分析维度'[维度明细]),[数据占比]>=cur_rate))

将[累计占比]拖入到列值框中,帕累托图就制作好了,


ABC比例设置

帕累托分析也成为ABC分析,一般按照70%、20%和10%的比例来划分,或者按照二八定律的80%和20%划分,当然这些都是一个概数而已,并不是一定要这样划分,实际分析时还要根据情况自行调整。

在【建模】选项卡下,点击"新建参数"(参考:创建PowerBI「参数」轻松搞定动态分析),建立三个参数如下:

参数a = GENERATESERIES(1, 100, 1)
参数b = GENERATESERIES(0, 100, 1)
参数c = GENERATESERIES(0, 100, 1)

同时生成三个切片器,通过这三个切片器来控制这三个参数的数值大小,然后就可以计算出每一类的相对占比,

A类比例 = DIVIDE([参数a值],[参数a值]+[参数b值]+[参数c值])
B类比例 = DIVIDE([参数b值],[参数a值]+[参数b值]+[参数c值])
C类比例 = DIVIDE([参数c值],[参数a值]+[参数b值]+[参数c值])

利用这三个度量值生成一个环形图,这样动态的ABC比例就设计好了,

判断因素的所属分类

建立度量值,

数据所属分类 =
VAR cur_leji=[累计占比]
RETURN
SWITCH(TRUE(),
cur_leji<=[A类比例],"A",
cur_leji<=[A类比例]+[B类比例],"B",
"C"
)

至此该模型的技术操作完成,剩下的就是一些可视化方面的修饰、格式调整等,以及按照ABC的分类动态配色。

该帕累托模型在主要的分析维度上都已考虑到,可以在实际分析中进行分解套用。

总结:

进行动态帕累托分析的主要步骤:

1,整理需要分析的维度

2,设置ABC比例参数

3,创建指标数据和累计比例

https://dwz.cn/Gtzgkc5P

数据可视化之PowerQuery篇(十一)使用Power BI进行动态帕累托分析的更多相关文章

  1. 数据可视化之分析篇(一)使用Power BI进行动态帕累托分析

    https://zhuanlan.zhihu.com/p/57763423 通过简单的点击交互,就能进行动态分析发现见解,才是我们需要的,恰好这也是 PowerBI 所擅长的. 就帕累托分析来说,能从 ...

  2. 数据特征分析:3.统计分析 & 帕累托分析

    1.统计分析 统计指标对定量数据进行统计描述,常从集中趋势和离中趋势两个方面进行分析 集中趋势度量 / 离中趋势度量 One.集中趋势度量 指一组数据向某一中心靠拢的倾向,核心在于寻找数据的代表值或中 ...

  3. 数据可视化之PowerQuery篇(十六)使用Power BI进行流失客户分析

    https://zhuanlan.zhihu.com/p/73358029 为了提升销量,在不断吸引新客户的同时,还要防止老客户离你而去,但每一个顾客不可能永远是你的客户,不可避免的都会经历新客户.活 ...

  4. 数据可视化之PowerQuery篇(十三)Power BI总计行错误,这个技巧一定要掌握

    https://zhuanlan.zhihu.com/p/102567707 ​前一段介绍过一个客户购买频次统计的案例: Power BI 数据分析应用:客户购买频次分布. 我并没有在文章中显示总计行 ...

  5. 数据可视化之PowerQuery篇(四)二维表转一维表,看这篇文章就够了

    https://zhuanlan.zhihu.com/p/69187094 数据分析的源数据应该是规范的,而规范的其中一个标准就是数据源应该是一维表,它会让之后的数据分析工作变得简单高效. 在之前的文 ...

  6. 数据可视化之PowerQuery篇(十)如何将Excel的PowerQuery查询导入到Power BI中?

    https://zhuanlan.zhihu.com/p/78537828 最近碰到星友的一个问题,他是在Excel的PowerQuery中已经把数据处理好了,但是处理后的数据又想用PowerBI来分 ...

  7. 数据可视化之PowerQuery篇(九)巧用Power Query,Excel也可以轻松管理文档

    https://zhuanlan.zhihu.com/p/111674088 ​来自知乎一个朋友的问题,如何在Excel中批量插入文件的超链接,以便在Excel中对文档进行有序的目录管理? 这个问题的 ...

  8. 数据可视化之PowerQuery篇(七)Power Query应用技巧:批量更改列名

    https://zhuanlan.zhihu.com/p/130460772 ​今天分享一个PowerQuery的小技巧,导入到PowerBI中的数据,如果想要更改数据的列名,可以在PQ编辑器中直接双 ...

  9. 数据可视化之PowerQuery篇(十八)Power BI数据分析应用:结构百分比分析法

    ​https://zhuanlan.zhihu.com/p/113113765 本文为星球嘉宾"海艳"的PowerBI数据分析工作实践系列分享之二,她深入浅出的介绍了PowerBI ...

随机推荐

  1. Alink漫谈(七) : 如何划分训练数据集和测试数据集

    Alink漫谈(七) : 如何划分训练数据集和测试数据集 目录 Alink漫谈(七) : 如何划分训练数据集和测试数据集 0x00 摘要 0x01 训练数据集和测试数据集 0x02 Alink示例代码 ...

  2. Tftp文件传输服务器(基于UDP协议)

    一个简单的UDP服务端与客户端 服务端: from socket import * #创建套接字 udp_server = socket(AF_INET,SOCK_DGRAM) msg_server ...

  3. Swift 界面跳转

    iOS开发中界面跳转有两种方式,上下跳转和左右跳转. 上下跳转_TO: let secondViewController = SecondViewController() self.presentVi ...

  4. [每日一题2020.06.12]P3375 【模板】KMP字符串匹配

    题目链接 关于kmp : https://www.cnblogs.com/roccoshi/p/13096988.html 关于kmp, 想了很久, 我觉得不应该放在这里写, 另开一贴记录一下. #i ...

  5. Hive和HBase整合用户指南

    本文讲解的Hive和HBase整合意思是使用Hive读取Hbase中的数据.我们可以使用HQL语句在HBase表上进行查询.插入操作:甚至是进行Join和Union等复杂查询.此功能是从Hive 0. ...

  6. MFC时间简单比较方法

    MFC//时间简单比较方法 void CMFCsaveListTofileDlg::OnBnClickedButton6()//时间简单比较方法 { // TODO: 在此添加控件通知处理程序代码 C ...

  7. jenkins构建报错 Error fetching remote repo 'origin'

    ERROR: Error fetching remote repo 'origin' Finished: FAILURE // 原因如下 原因一:可能是配置的git分支的权限问题,检查一下配置里面的源 ...

  8. Beta冲刺--冲刺总结

    这个作业属于哪个课程 软件工程 (福州大学至诚学院 - 计算机工程系) 这个作业要求在哪里 Beta 冲刺 这个作业的目标 Beta冲刺--冲刺总结 作业正文 如下 其他参考文献 ... Beta冲刺 ...

  9. Oracle 导入数据库dmp文件

    场景:windows2008 R2系统 ,往新安装的oracle11g数据库导入同事给的dmp文件到指定的新建的用户. 1.创建表空间 在导入dmp文件之前,先打开查看dmp文件的表空间名称(tabl ...

  10. 入门大数据---Flink学习总括

    第一节 初识 Flink 在数据激增的时代,催生出了一批计算框架.最早期比较流行的有MapReduce,然后有Spark,直到现在越来越多的公司采用Flink处理.Flink相对前两个框架真正做到了高 ...