笔记 Power BI 动态帕累托图制作
帕累托图(Pareto chart)是将出现的质量问题和质量改进项目按照重要程度依次排列而采用的一种图表。以意大利经济学家V.Pareto的名字而命名的。帕累托图又叫排列图、主次图,是按照发生频率大小顺序绘制的直方图,表示有多少结果是由已确认类型或范畴的原因所造成。
帕累托法则往往称为二八原理,即百分之八十的问题是百分之二十的原因所造成的。帕累托图在项目管理中主要用来找出产生大多数问题的关键原因,用来解决大多数问题。
在帕累托图中,不同类别的数据根据其频率降序排列的,并在同一张图中画出累积百分比图。
帕累托法用双直角坐标系表示,左边纵坐标表示频数,右边纵坐标表示频率。分析线表示累积频率,横坐标表示影响质量的各项因素。
目录
动态帕累托图制作
准备数据
确定横纵坐标轴维度
制作切片器
时间维度切片器
纵坐标切片器制作
横坐标切片器制作
制作帕累托图
获得累计占比的数据
ABC比例设置
动态帕累托图制作
准备数据
为了省事,直接照了一份数据
确定横纵坐标轴维度
Ps,只为了学习,只考虑制作问题,不考虑实际分析问题。
横坐标:投放位置,投放类型,投放素材
纵坐标:消耗、激活量、LTV
制作切片器
横纵坐标、时间维度切片器
时间维度切片器
表中有激活日期,直接搞。错了不负责哈。
纵坐标切片器制作
纵坐标:消耗、激活量、LTV
首先制作度量值。喜欢把度量值放到一个表,先“输入数据”创建一个度量值的表。
创建度量值,创建后删除列1
消耗 = SUM('渠道每日消耗'[消耗])
激活量=SUM('激活量、留存率'[激活量]
LTV = SUM('激活量、留存率'[LTV])
制作切片器,可以看到只有一个选项,所以需要先建立一张表,把三个选项放进去。
按字段[数据指标]制作切片器,然后写度量值[数据数据],让筛选器生效
数据指标 =
SWITCH(TRUE(),
SELECTEDVALUE('数据指标'[数据指标])="消耗",[消耗],
SELECTEDVALUE('数据指标'[数据指标])="激活量",[激活量],
SELECTEDVALUE('数据指标'[数据指标])="LTV",[LTV],
BLANK()
)
SWITHCH函数:如果消耗被选中,则返回度量值[[消耗];
如果激活量被选中,则返回[激活量];
如果LTV被选中,则返回[LTV];
使用函数说明
SWITCH
释义:针对值列表计算表达式,并返回多个可能的结果表达式之一
语法:SWITCH(表达式,值,结果[,值,结果]…[,此外])
参数:
- 第一参数:返回单个标量值的任何 DAX 表达式,其中,表达式将被计算多次(针对每行/上下文)
- 第二参数:与表达式的结果相匹配的常量值
- 第三参数:当表达式的结果与对应的值匹配时,要进行计算的任何标量表达式
- 第四参数:如果表达式的结果与任何值参数都不匹配,要进行计算的任何标量表达式
备注:
- 所有满足表达式的返回结果必须为同一数据类型
- 当存在多条件判断时,SWITCH函数比IF函数更加简洁明了
SELECTEDVALUE
SELECTEDVALUE函数属于“筛选”类函数,隶属于“表函数”。
微软官方介绍是这么说的:
当指定列当前上下文中只有一个非重复值时,返回该值;
否则返回替代结果,省略则返回空值;
通俗点来说,就是根据当前上下文匹配相关值。
用途:通常用于度量值中,获取外部筛选器。
语法:SELECTEDVALUE(<列>[, <备用值>])
参数:
列:固定现有列,不能是表达式;
备用值:可选项,如果第一参数上下文判定为空,或者出现多个重复值时,返回备用值;默认不填返回结果为空。
横坐标切片器制作
横坐标:投放位置,投放类型,投放素材
同上面的思路类似,把投放位置、投放类型、投放素材整合到一起,如下图。
数据量小,可以手工输入;数据量大采用DAX实现,在【建模】选项卡下,点击"新表"
在编辑栏输入:
分析维度 =
VAR item1 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '渠道维度'[投放位置] ) , "分析维度" , "投放位置" ) , "分析维度" , [分析维度],"维度明细",[投放位置] )
VAR item2 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '渠道维度'[投放类型] ) , "分析维度" , "投放类型" ) , "分析维度" , [分析维度],"维度明细",[投放类型] )
VAR item3 = SELECTCOLUMNS( ADDCOLUMNS( DISTINCT( '渠道维度'[投放素材] ) , "分析维度" , "投放素材" ) , "分析维度" , [分析维度],"维度明细",[投放素材] )
RETURN UNION( item1 , item2,item3 )
ADDCOLUMNS( DISTINCT( '渠道维度'[投放位置] ) , "分析维度" , "投放位置" ):去重提取渠道维度表中的投放位置字段内容,另增一列,列名为分析维度,列值为投放位置
使用函数说明
VAR
作用:将某个函数的结果存储成为一个参数,供其他函数使用。
- 通过VAR变量的语法,从而能够代替DAX中的筛选条件,做到简化DAX代码;
- 通过VAR变量命名,创建定义一张虚拟的列表或表;
- 通过VAR变量命名,定义需要的值列表,并分别放置于“不同的计算筛选环境"里来构建DAX的一个个逻辑条件(类似于EARLIER()函数的“当前行”),然后将这些条件按条件步骤组装成一个复杂的计算逻辑条件。
语法:VAR <name> = <expression>
参数:
name处定义变量名,要求格式为:
- 支持英文字母和数字组合,但是不能以数字开头。
- 除了可以使用双下划线“__”作为前缀以为,不支持使用其他的特殊字符,包括空格。
- 不能跟内置函数名重复;
不能跟已存在的表同名,但是可以跟原始列重名。
expression处填写用来生成变量值的函数。
SELECTCOLUMN
释义:以表的形式返回所有指定的计算列
语法:SELECTCOLUMNS(表 或 表达式返回的表, 列名,表达式,[列名,表达式…])
参数:
- 第一参数:表 或 表达式返回的表
- 第二能数:自定义的列名,需要用双引号包起来
- 第三参数:返回标量值dax表达式
备注:
- 返回的表仅包含新生成的列,不包含原始第一参数中的列(即从空表开始添加列)
- 通过表达式派生出的新列数据以第一参数表的行上下文为依据进行计算
- 若表达式所直接引用的列为第一参数表中的列,则具备与第一参数对应列相同的数据沿袭
- 返回的表不具有第一参数表所自带的扩展表属性
ADDCOLUMNS
释义:将计算列添加到给定的表或表表达式
语法:ADDCOLUMNS(表 或 表达式返回的表, 列名,表达式,[列名,表达式…])
参数:
- 第一参数:需要添加新列的表
- 第二能数:可重复,要添加的新列的名称
- 第三参数:表达式:可重复,要添加的新列的表达式
备注:
- 第一参数的表或表的表达式存在数据沿袭
- 通过表达式派生出的新列数据以第一参数表的行上下文为依据进行计算
- 通过表达式派生出的新列不具备数据沿袭
- 返回的表具有第一参数表所自带的扩展表属性
ADDCOLUMNS与SELECTCOLUMNS区别
- ADDCOLUMNS在原表上新增一列
- SELECTCOLUMNS在空白表上去新增一列(获取别的表或表的表达式的数据,然后在空白表上新增列)
建立分析维度切片器
接下来,需要将中间表关联到最原始的表中,让切片器生效。
分析数据 =
VAR item4=TREATAS( VALUES('分析维度'[维度明细]),'渠道维度'[投放位置])
VAR item5=TREATAS(VALUES('分析维度'[维度明细]),'渠道维度'[投放类型])
VAR item6=TREATAS(VALUES('分析维度'[维度明细]),'渠道维度'[投放素材])
RETURN
SWITCH(TRUE(),
SELECTEDVALUE('分析维度'[分析维度])="投放位置",
CALCULATE([数据指标],item4),
SELECTEDVALUE('分析维度'[分析维度])="投放类型",
CALCULATE([数据指标],item5),
SELECTEDVALUE('分析维度'[分析维度])="投放素材",
CALCULATE([数据指标],item6),
BLANK()
)
使用函数说明
VALUES
释义:VALUES函数,隶属于“筛选”类函数。当参数为列时,返回结果会去除重复值,保留空项;当参数为表时,结果不会进行去重复操作。
用途:适用于度量值计算。
语法:VALUES(表or列)
参数:VALUES函数的参数可以是列,也可以是表,但不能是表达式。
返回结果:去除重复值的列或者返回一个完整的表。当表为单列单行时,可以作为值使用。
TREATAS
释义:
TREATAS()函数是DAX中用于表格间虚拟连接的函数,当遇到如下情况时,可以考虑使用TREATAS:
- 维度表或事实表之间没有可以单独关联的列;
- 出现多对多或其他无法使用直接的方法关联的情况
- 数据模型非常复杂时,通过建立虚拟关系以减少对表格之间物理连接的依赖
至此,三个分析维度已经建立完成,并体现在报表左侧的三个切片器上。
制作帕累托图
将【折线和簇状柱形图】拖到画布上,将前面创建的分析维度表中的[维度明细]拖入到共享轴、度量值[分析数据]拖入到列值。
获得累计占比的数据
分析数据合计 =
SWITCH(TRUE(),
SELECTEDVALUE('数据指标'[数据指标])="消耗",
CALCULATE([消耗],ALLSELECTED('渠道每日消耗'[消耗])),
SELECTEDVALUE('数据指标'[数据指标])="激活量",
CALCULATE([激活量],ALLSELECTED('激活量、留存率'[激活量])),
SELECTEDVALUE('数据指标'[数据指标])="LTV",
CALCULATE([LTV],ALLSELECTED('激活量、留存率'[LTV])),
BLANK()
)
数据占比 = DIVIDE([分析数据],[分析数据合计])
累计占比 =
VAR cur_rate=[数据占比]
RETURN
CALCULATE([数据占比],FILTER(ALL('分析维度'[维度明细]),[数据占比]>=cur_rate))
将度量值[累计占比]拖入到列值框中,帕累托图就制作好了,。
ABC比例设置
帕累托分析也成为ABC分析,一般按照70%、20%和10%的比例来划分,或者按照二八定律的80%和20%划分,当然这些都是一个概数而已,并不是一定要这样划分,实际分析时还要根据情况自行调整。
透视表
建个【矩阵】,把数值显示出来。
在【建模】选项卡下,点击"新建参数",建立三个参数如下:
参数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值])
数据所属分类 =VAR cur_leji=[累计占比]
RETURN
SWITCH(TRUE(),
cur_leji<=[A类比例],"A",
cur_leji<=[A类比例]+[B类比例],"B",
"C"
)
利用A类比例、B类比例、C类比例,创建环形图。
将数据所属分类放入矩阵。
支持动态帕累托图制作完成,abc三个参数影响矩阵、环形图。激活日期、数据指标、分析维度影响折线和簇状柱形图、矩阵。
可根据按照ABC的分类动态配色,实现后,abc也将会影响折线和簇状柱形图。
笔记 Power BI 动态帕累托图制作相关推荐
- 172_再谈 Power BI 客户帕累托(ABC)分析度量值写法
172_再谈 Power BI 客户帕累托(ABC)分析度量值写法 一.背景 我们再来谈一谈帕累托在 Power BI 中的度量值写法.我们分别使用以RANKX 和 WINDOW 两个函数为核心写度量 ...
- Power BI产品帕累托分析
效果图一: 说明: 1.x轴为每个产品的销售金额,按照从大到小排序 2.y轴为这些产品累积的销售金额占比,也就是 到产品的累积销售金额 除以 所有产品总的销售金额 3.红色框部分表示,累积销售金额占比 ...
- 使用Tableau制作帕累托图
帕累托法制,也叫二八法则,二八原则认为:80%的财富掌握在20%的人手里,也可以理解为,各种复杂业务的背后,往往少数关键因素的影响占据了主导地位.我们需要尽可能的找到关键影响因素,往往能达到事半功倍的 ...
- Tableau图表 • 帕累托图
帕累托图,又称排列图.主次图,在反映质量问题.展现质量改进项目等领域有广泛应用,目前,也被应用到了社会生活的很多领域.在日常业务中,可以通过帕累托图分析销售额的多少百分比来自多少比例的客户,或者来自哪 ...
- 保姆式教学:用Tableau创建可调节的帕累托图
帕累托图又称为排列图或主次图,表示有多少结果是由已确认类型或范畴的原因所造成,这个图解规律也就是我们俗称的二八定律,比如: 世界上20%的人掌握80%的财富: 公司里20%的产品创造了80%的收入等. ...
- Tableau帕累托图
帕累托图,又称排列图.主次图,在反映质量问题.展现质量改进项目等领域有广泛应用,目前,也被应用到了社会生活的很多领域.在日常业务中,可以通过帕累托图分析销售额的多少百分比来自多少比例的客户,或者来自哪 ...
- Tableau——帕累托图
一.适用场景: 帕累托图应用帕累托法则,往往称为二八原理,即百分之八十的问题是百分之二十的原因所造成的.在帕累托图中,通过图形体现两点重要信息: "至关重要的极少数"和" ...
- R语言使用ggplot2包和ggQC包可视化帕累托图(Pareto chart)
R语言使用ggplot2包和ggQC包可视化帕累托图(Pareto chart) 目录 R语言使用ggplot2包和ggQC包可视化帕累托图(Pareto chart) #帕累托图(Pareto ch ...
- 直方图 帕累托图_如何发现现象背后的关键因素?帕累托图,质量管理的利器...
大家好: 无论在日常生活还是工作中,都会发生一些事情或者结果,是我们不希望发生的.我们也希望从根本上解决掉,但有时候却无从下手,比如本来打算用来看书的时间不知道去哪里了:本来打算存款的钱也不知道去哪里 ...
最新文章
- th:text为null报错_小猿圈web前端之vue-cli项目打包完成后运行文件路径报错问题
- 汤家凤高等数学基础手写笔记-不定积分
- python3.6.5安装tensorflow_ubuntu下python3.6.5import tensorflow显示非法指令(核心已转储)
- 【精华总结】全文4000字、20个案例详解Pandas当中的数据统计分析与排序
- 荒岛余生为什么没有打开包裹_您会带到荒岛什么办公桌设置?
- mysql 使用索引_mysql使用索引的注意事项
- 关于XShell 启动虚拟机的weblogic并在本地打开oracle-weblogic 有关部署
- Wordpress 模版技术手册 - WordPress Theme Technical manuals
- c语言程序设计小学生测验,c语言程序设计(1) 小学生计算机辅助教学系统
- 最新福昕高级阅读编辑器
- Setup Factory 安装程序的图标
- 图文详解超五类网线的接法
- 寒假第二周学习总结与反思
- fastadmin表格操作
- 使用grub启动虚拟软盘的方法
- Ceph Async RDMA网络通信性能优化
- MySQL基于位置的恢复
- 计算机类期刊审稿周期及录用比例
- fastadmin 微信支付宝整合插件 支付宝APP支付 ALIN10146
- 风格迁移1-00:Liquid Warping GAN(Impersonator)-目录-史上最新无死角讲解
热门文章
- 镁光dram功耗计算工具
- linux 常用软件2
- web 后台学习介绍
- Ultraman 奥特曼名字
- 城市的夜空有着雾霾...
- NOIP 2011 提高组 Day2 校模拟 7.11
- 面向对象--02面向对象的三个基本特征
- c语言第几天的答案,C语言根据日期取其位于一年中的第几天
- [Line: 197] Ran out of memory allocating 1073741824 bytes with alignment 0 怎样让内存不够的电脑打开UE4.26
- 南卡发布新骨传导蓝牙耳机,全新音质技术打造立体颅腔音质