PowerBI企业运营分析——全动态帕累托分析
PowerBI企业运营分析——全动态帕累托分析
欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。
借助多源数据的整合与关键指标的实时监控,该平台能够深入剖析业务表现,迅速捕捉问题与机遇。其可视化看板和智能预警功能,帮助管理者直观掌握运营动态,优化资源分配;而深度分析模块则能挖掘潜在趋势,支撑战略决策。无论是成本控制与效率提升、风险管理与控制,还是市场拓展与业务增长,该平台都能提供强有力的数据支撑,推动企业实现精细化运营和可持续发展。
本期课程我们依然将重点放到整合前期分散知识点,帮助您建立清晰的模板搭建思路,本节课程将全面覆盖全动态帕累托分析、topn与帕累托分析的融合应用,并重点讲解ABC分类与topn的结合使用技巧,通过动态呈现排名前N的指标,使内容更具挑战性,请大家紧跟节奏,切勿掉队。
想要一份这样的可视化看板吗?想学吗?我教你呀!
一、案例背景:
我司作为国内一家大型服装电商企业,业务范围涵盖男装、女装、童装和配饰。目前,我们正全力开发企业运营分析系统,该系统旨在借助技术手段达成业绩提升、指标监控、绩效考核、客户维护与开发以及企业发展预测等目标,推动数据共享与流程优化,从而增强决策与运营效率,优化资源配置,并加强风险控制,为企业的长远发展提供强劲动力。
二、设计思路:
通过财务、产品、客户、盈亏预测精准掌控企业发展方向,建立科学的考核机制,并通过控制变动成本,优化企业盈利。
(1)准备基础数据
(2)数据清洗
(3)建立关系视图
(4)个性美化设计
(5)数据建模(度量值)
(6)制作可视化报告
2.5数据建模
2.5.1 分析维度ABC表建立
公式:
分析维度-ABC=
DATATABLE("分析维度ABC",STRING,"序号",INTEGER,{{"A",1},{"B",2},{"C",3}}
)
公式逻辑解析:
DATATABLE
函数用于手动创建一个内存中的静态表,无需连接外部数据源。
语法:
DATATABLE(
列名
1,数据类型1,列名2,数据类型2,...,{{行
1数据
},{行
2数据
},...})
定义了两列:
分析方法
:文本类型(STRING
),描述购物篮分析的具体方法。
序号
:整数类型(INTEGER
),标识方法的顺序。
2、分析阈值建立
公式:
ABC累计占比参数=GENERATESERIES(0.01,1,0.01)
公式逻辑解析:
建模窗口,新建参数功能,选择数值范围,最小值输入0.01,最大值输入1,增量选择0.01,建立好后将阈值格式变更为百分比格式,这样的方式可以避免后期统一格式的麻烦
公式:
TOPN-参数=GENERATESERIES(1,40,1)
公式逻辑解析:
建模窗口,新建参数功能,选择数值范围,最小值输入1,最大值输入40,增量选择1
保留伴生切片器备用
公式:
卡笛积维度表=
VARA1=SELECTCOLUMNS(ADDCOLUMNS(DISTINCT('地图辅助表'[NAME1]),"分析维度","客户省份"), "分析维度", [分析维度],"维度明细" ,[NAME1] ,"序号",2)
VARA2=SELECTCOLUMNS(ADDCOLUMNS(DISTINCT('维度-产品'[子类别]),"分析维度","产品类别"), "分析维度",[分析维度],"维度明细",[子类别],"序号",3)
VARA3=SELECTCOLUMNS(ADDCOLUMNS(DISTINCT('维度-产品'[产品名称]),"分析维度","产品名称"), "分析维度", [分析维度],"维度明细",[产品名称],"序号",4)
VARA4=SELECTCOLUMNS(ADDCOLUMNS(DISTINCT('维度-销售人员'[销售人员]),"分析维度","销售代表"), "分析维度", [分析维度],"维度明细",[销售人员],"序号",1)
RETURN
UNION(A1,A2,A3,A4)
公式逻辑解析:
它通过合并四个不同的维度表来构建一个统一的维度表
整体结构:
使用VAR定义4个变量(A1-A4),每个变量代表一个维度的数据
最后用UNION函数合并这4个变量形成最终表
每个变量的处理逻辑相同:
使用DISTINCT获取维度列的唯一值
用ADDCOLUMNS添加一个常量列"分析维度"(标识维度类别)
用SELECTCOLUMNS选择并重命名列,形成统一结构
各变量具体内容:
A1:处理'地图辅助表'中的省份维度
维度名称:"客户省份"
值来自:NAME1列
序号:2
A2:处理'维度-产品'中的子类别维度
维度名称:"产品类别"
值来自:子类别列
序号:3
A3:处理'维度-产品'中的产品名称维度
维度名称:"产品名称"
值来自:产品名称列
序号:4
A4:处理'维度-销售人员'中的销售人员维度
维度名称:"销售代表"
值来自:销售人员列
序号:1
最终输出表结构:
三列:分析维度、维度明细、序号
包含所有四个维度的并集数据
用途:
这种结构常用于创建统一的维度选择表,便于在报表中实现统一的维度筛选器
序号可能用于控制维度在界面上的显示顺序
2.5.3 度量值建立
公式:
公式逻辑解析:
变量定义:CurrentDimension获取用户在"卡笛积维度表"的"分析维度"列中选择的值(如"客户省份"、"产品类别"等)。如果没有选择,则返回BLANK()。
DimensionDetail获取用户在"维度明细"列中选择的具体值(如"广东省"、"手机"等),返回一个表(可能包含多选值)
2、检查是否选择了维度
如果CurrentDimension非空(用户已选择维度),则进入SWITCH分支;否则返回BLANK()。
动态切换计算逻辑
根据CurrentDimension的值,匹配不同的计算规则:
"客户省份":将DimensionDetail映射到'地图辅助表'[NAME1]列,筛选计算[指标]。
"产品类别":将DimensionDetail映射到'维度-产品'[子类别]列,筛选计算[指标]。
"销售代表":将DimensionDetail映射到'维度-销售人员'[销售人员]列,筛选计算[指标]。
"产品名称":将DimensionDetail映射到'维度-产品'[产品名称]列,筛选计算[指标]。
重点:TREATAS
将 DimensionDetail(用户选择的维度值)强制转换为目标表的列数据类型,实现动态筛选
公式:
维度=
VARCurrentDimension=SELECTEDVALUE('卡笛积维度表'[分析维度],BLANK())
VARDimensionDetail=VALUES('卡笛积维度表'[维度明细])
RETURNIF(NOTISBLANK(CurrentDimension),SWITCH(CurrentDimension,
"客户省份",CALCULATE([指标],TREATAS(DimensionDetail,'地图辅助表'[NAME1])),"产品类别",CALCULATE([指标],TREATAS(DimensionDetail,'维度-产品'[子类别])),"销售代表",CALCULATE([指标],TREATAS(DimensionDetail,'维度-销售人员'[销售人员])),
"产品名称",CALCULATE([指标],TREATAS(DimensionDetail,'维度-产品'[产品名称])),BLANK()),BLANK())
RANKX 排名ABC = RANKX( ALL( '卡笛积维度表'[维度明细] ) , [维度]) ))
公式逻辑解析:
用于对"维度明细"列中的值基于[维度]度量值进行排名。
公式:
TOPN指标 =
VAR A0 = 'TOPN-参数'[TOPN-参数 值]
VAR A1 = IF ( A0 = 0 , 999 , A0 )
VAR A2 = [RANKX 排名ABC]
VAR A3 = SELECTEDVALUE( '卡笛积维度表'[维度明细] )
VAR B = CALCULATE( [维度] , FILTER( VALUES( '卡笛积维度表'[维度明细]) , [RANKX 排名ABC] <= A1 ) )
VAR C = CALCULATE( [维度] , FILTER( ALL ( '卡笛积维度表'[维度明细]) , [RANKX 排名ABC] > A1 ) )
VAR D = IF ( A3 = "其他" , C , B )
RETURN
D
公式逻辑解析:
1、变量定义
A0:用户通过参数表'TOPN-参数'输入的数值(例如在报表中选择"显示前5名")。
A1:如果参数为0(如未选择或选择"全部"),则默认显示999名(即全部);否则使用用户输入的N值。
A3:当前上下文中选中的具体维度值(如省份"北京")。
B:(前N名的汇总)
逻辑:筛选出 排名 ≤ N 的维度明细值,并计算其 [维度] 指标。
示例:
如果 A1=3(显示前3名),则 B 返回排名1~3的省份/产品的指标总和。
C:(其他类别的汇总)
逻辑:筛选出 排名 > N 的所有维度明细值(忽略当前筛选上下文),计算其 [维度] 的总和。
示例:
如果 A1=3,则 C 返回排名4及以后的维度值的汇总(通常标记为"其他")。
D:(动态返回B或C)
返回结果:
如果当前选中的维度明细是 "其他",则返回 C(汇总的非TOP N数据)。
否则返回 B(前N名的数据)。
公式:
topn指标2 = SUMX( VALUES( '卡笛积维度表'[维度明细] ) , [TOPN指标])
公式逻辑解析:
\1. 核心函数 SUMX
作用:迭代计算并求和。
语法:SUMX( <表>, <表达式> )
对表中的每一行计算 <表达式>,最后将所有结果相加。
\2. 参数详解
VALUES( '卡笛积维度表'[维度明细] )
返回当前筛选上下文中'卡笛积维度表'[维度明细]的唯一值列表。
例如:如果筛选了 ["北京", "上海", "广州"],则迭代这3个值。[TOPN指标]对每个维度明细值调用[TOPN指标] 度量值(即之前定义的动态TOP N逻辑)。
[TOPN指标] 会根据 TOPN参数 决定是否返回原始值或归为"其他"类别。
公式:
ABC-累计 =
VAR A = [RANKX 排名ABC]
VAR B = CALCULATE( [维度] , FILTER( ALL( '卡笛积维度表'[维度明细] ) , [RANKX 排名ABC] <= A ) )
VAR E = IF ( HASONEVALUE( '卡笛积维度表'[维度明细]) , B , [ABC-ALL] )
RETURN
E
公式逻辑解析:
(1) 变量A:获取当前排名
[RANKX 排名ABC] 是预先定义的排名度量值(例如降序排名,1表示最高)。
如果当前行是"北京"且排名为2,则 A = 2。
(2) 变量B:计算累计值
ALL( '卡笛积维度表'[维度明细] )
移除对维度明细的所有筛选,确保计算基于全部数据(而非当前报表筛选后的子集)。
FILTER(..., [RANKX 排名ABC] <= A)
筛选出排名 ≤当前行排名 的所有维度明细值。
例如:若当前排名A=3,则筛选排名1、2、3的值。
CALCULATE([维度], ...)
对筛选后的值计算 [维度] 的累积和(如销售额累计)。
(3) 变量E:动态返回结果
HASONEVALUE( '卡笛积维度表'[维度明细] )
检查当前上下文是否只有一个维度明细值(例如表格中具体某一行)。
如果是(如单独显示"北京"),返回累计值 B。
如果否(如总计行或未筛选状态),返回预设的汇总值 [ABC-ALL](可能是所有值的总和或其他逻辑)。
公式:
ABC-ALL = CALCULATE( [维度] , ALL( ( '卡笛积维度表'[维度明细])))
公式逻辑解析:
它的作用是计算在所有维度明细(无任何筛选条件)情况下的[维度]总值``
公式:
ABC-累计占比 = DIVIDE( [ABC-累计] , [ABC-ALL])
公式逻辑解析:
用于计算累计值占总值的百分比
公式:
ABC分组 =
VAR Z1 = MIN ( 'ABC累计占比参数'[累计占比参数] )
VAR Z2 = MAX ( 'ABC累计占比参数'[累计占比参数] )
VAR A = SWITCH( TRUE() ,
• [ABC-累计占比] <= Z1 , "A",
• [ABC-累计占比] > Z1 && [ABC-累计占比] <= Z2 , "B",
• "C" )
VAR B = IF ( HASONEVALUE( '卡笛积维度表'[维度明细] ) , A , BLANK() )
RETURN
B
公式逻辑解析:
Z1、Z2:用户可通过切片器设置A/B类的分界点
A:若 Z1=70%, Z2=90%:
累计占比≤70% → A类(核心贡献项)
70%~90% → B类(次要贡献项)
90% → C类(长尾项)
B:确保只在显示具体维度明细(如"北京")时返回分类,避免在总计行或交叉表中显示无意义的ABC标签
公式:
ABC分组配色 =
VAR Z1 = MIN ( 'ABC累计占比参数'[累计占比参数] )
VAR Z2 = MAX ( 'ABC累计占比参数'[累计占比参数] )
VAR Z3 = SELECTEDVALUE( '卡笛积维度表'[维度明细] )
VAR A = SWITCH( TRUE() ,[ABC-累计占比] <= Z1 , "#FFFF00" ,[ABC-累计占比] > Z1 && [ABC-累计占比] <= Z2 , "#FF0000" ,"#006400" )
RETURN
A
公式逻辑解析:
它根据ABC分类结果返回对应的颜色代码,用于可视化中的条件格式设置
ABC个数 =
VAR A = VALUES( '分析维度-ABC'[分析维度ABC] )
VAR B = FILTER( ALL('卡笛积维度表'[维度明细] ) , [ABC分组]INA)
RETURN
COUNTROWS( B )
公式逻辑解析:
1、变量定义
A:获取用户在 '分析维度-ABC'[分析维度ABC] 列中选择的值(可能多选,如同时选A和B类)。
示例:若切片器选择了"A",则 A = {"A"}。
B:从所有维度明细中筛选出 [ABC分组] 属于 A 的值。
关键点:ALL('卡笛积维度表'[维度明细]) 确保计算基于全部数据,忽略现有筛选。
[ABC分组] IN A 匹配多选场景(如同时筛选A和B类)。
结果:返回满足当前ABC分类选择的维度明细数量。
示例:若数据库中有5个A类项目,用户选择"A",则返回5。
公式:
ABC维度明细个数 = FORMAT ( DISTINCTCOUNT( '卡笛积维度表'[维度明细]) , "0")
公式逻辑解析:
用于计算维度明细的总数量并以格式化文本形式返回结果
公式:
ABC指1 =
VARA = VALUES( '分析维度-ABC'[分析维度ABC] )
VARB = CALCULATE( [topn指标2] , FILTER( VALUES('卡笛积维度表'[维度明细] ) , [ABC分组]INA ) )
RETURN
B
公式逻辑解析:
变量A:获取用户选择
从表 '分析维度-ABC'[分析维度ABC] 中获取用户选择的分类(可能多选,如同时选A和B类)。
示例:若切片器选择"A",则 A = {"A"}。
变量B:动态计算指标
FILTER 逻辑:
筛选当前上下文中 [ABC分组] 属于用户选择(A)的维度明细。 VALUES('卡笛积维度表'[维度明细]) 保留当前筛选上下文(如报表中的行/列筛选)。
[ABC分组] IN A 匹配多选场景(如同时筛选A类和B类)。
CALCULATE 作用:
在筛选后的上下文中重新计算 [topn指标2](可能是某个TOP N汇总值)。
公式:
ABC指标 =
VARA = VALUES( '分析维度-ABC'[分析维度ABC] )
VARB = CALCULATE( [维度] , FILTER( ALL('卡笛积维度表'[维度明细] ) , [ABC分组]INA ) )
RETURN
B
公式逻辑解析:
(1) 变量A:获取用户选择的ABC分类
VALUES('分析维度-ABC'[分析维度ABC])
返回用户在 '分析维度-ABC' 表中选择的ABC分类值(如"A"、"B"或"C"),支持多选。
示例:若切片器选择"A"和"B",则 A = {"A", "B"}。
(2) 变量B:动态计算指标总和
ALL('卡笛积维度表'[维度明细])
忽略对 '卡笛积维度表'[维度明细] 的所有筛选,确保计算基于全部数据(而非当前报表筛选的子集)。
[ABC分组] IN A
筛选出维度明细中属于用户所选分类(A)的项。
关键点:
使用 IN 运算符支持多选(如同时筛选A类和B类)。
[ABC分组] 需是预先定义的ABC分类度量值(如基于累计占比的分类)。
CALCULATE([维度], ...)
在筛选后的上下文中重新计算[维度](如销售额、利润等)。
2.6 可视化报告制作:业绩概览制作
第一步:设置报表页格式选项,选择画布背景,上传预先设计好的背景素材
第二步:插入一个图像,AI机器人图标,点开操作功能,为此图像添加指向登录页的书签链接。
第三步:插入一个切片器,将日期表日期拖入切片器。
第四步:插入七个书签按钮,依次输入数据中心、产品维度、客户开发、业绩分析、地域分析、业绩考核、表格维度等标签,并为每个书签按钮添加相应的设计图标。
第五步:插入一个形状,用于给以上建立视觉对象添加背景。
第六步:插入六个切片器,将卡笛积维度表分析维度拖入字段中,将分析维度-指标表指标拖入字段中,将维度-年份表年份拖入字段中,将维度-产品表类别拖入字段中,将维度-销售人员表销售人员拖入字段中,将维度-省份大区表省份拖入字段中。
第七步:插入一个组合图,X轴拖入卡笛积维度表表分析维度,Y轴拖入度量值ABC指1,行Y轴拖入度量值ABC-累计占比,工具提示拖入度量值ABC-累计占比、ABC-累计、RANKX 排名ABC,设置视觉对象格式,打开列功能设置颜色,将度量值ABC分组配色应用到颜色。
第八步:添加两个卡片图,第一个卡片图拖入度量值ABC个数字段,第二个卡片图拖入指标字段。
第九步:插入两个环形图,图例拖入分析维度-ABC表分析维度ABC字段,值分别拖入度量值ABC个数和ABC指标,设置视觉对象格式,关闭图例,详细信息标签修改为所有详细信息标签。
第十步:插入一个表格图,将卡笛积维度表分析维度拖入列中,并将度量值ABC指1、ABC-累计占比、ABC分组和RANKX 排名ABC也拖入列中。
第十一步:将卡片图置于环形图中心,并覆盖于表格图上。
第十二步:首先,在视图窗口中选择功能,找到并点击隐藏表格图。接着,打开书签功能,为环形图添加一个书签并命名。然后,找到两个环形图及卡片图进行隐藏操作,再将表格图点击显示,并为其添加一个书签命名为表格图。最后,选中这几个书签,右键选择分组功能,将其命名为页内切换帕累托图表切换。
第十三步:接下来,插入两个书签按钮。分别点开样式文本,输入图表分析和表格明细作为按钮的显示内容。然后,点开操作功能,将之前建立的书签分别添加到对应的按钮上。
第十六步:如图美化界面
第十七步:打开视图窗口书签功能,为此页面添加一个书签
第十八步:数据中心页,点击文本为帕累托分析的按钮,打开操作功能,类型选择书签,将此页书签添加到按钮。
好的,今天的讲解就到这里。后期课程也会逐渐增加难度,精彩内容,敬请期待。