当前位置: 首页 > news >正文

PowerBI企业运营分析——全动态帕累托分析

PowerBI企业运营分析——全动态帕累托分析

欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。

借助多源数据的整合与关键指标的实时监控,该平台能够深入剖析业务表现,迅速捕捉问题与机遇。其可视化看板和智能预警功能,帮助管理者直观掌握运营动态,优化资源分配;而深度分析模块则能挖掘潜在趋势,支撑战略决策。无论是成本控制与效率提升、风险管理与控制,还是市场拓展与业务增长,该平台都能提供强有力的数据支撑,推动企业实现精细化运营和可持续发展。

本期课程我们依然将重点放到整合前期分散知识点,帮助您建立清晰的模板搭建思路,本节课程将全面覆盖全动态帕累托分析、topn与帕累托分析的融合应用,并重点讲解ABC分类与topn的结合使用技巧,通过动态呈现排名前N的指标,使内容更具挑战性,请大家紧跟节奏,切勿掉队。

img

想要一份这样的可视化看板吗?想学吗?我教你呀!

img

一、案例背景:

我司作为国内一家大型服装电商企业,业务范围涵盖男装、女装、童装和配饰。目前,我们正全力开发企业运营分析系统,该系统旨在借助技术手段达成业绩提升、指标监控、绩效考核、客户维护与开发以及企业发展预测等目标,推动数据共享与流程优化,从而增强决策与运营效率,优化资源配置,并加强风险控制,为企业的长远发展提供强劲动力。

二、设计思路:

通过财务、产品、客户、盈亏预测精准掌控企业发展方向,建立科学的考核机制,并通过控制变动成本,优化企业盈利。

(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也拖入列中。

第十一步:将卡片图置于环形图中心,并覆盖于表格图上。

第十二步:首先,在视图窗口中选择功能,找到并点击隐藏表格图。接着,打开书签功能,为环形图添加一个书签并命名。然后,找到两个环形图及卡片图进行隐藏操作,再将表格图点击显示,并为其添加一个书签命名为表格图。最后,选中这几个书签,右键选择分组功能,将其命名为页内切换帕累托图表切换。

第十三步:接下来,插入两个书签按钮。分别点开样式文本,输入图表分析和表格明细作为按钮的显示内容。然后,点开操作功能,将之前建立的书签分别添加到对应的按钮上。

第十六步:如图美化界面

第十七步:打开视图窗口书签功能,为此页面添加一个书签

第十八步:数据中心页,点击文本为帕累托分析的按钮,打开操作功能,类型选择书签,将此页书签添加到按钮。

img

好的,今天的讲解就到这里。后期课程也会逐渐增加难度,精彩内容,敬请期待。

相关文章:

  • JavaScript 的“世界模型”:深入理解对象 (Objects)
  • uniappx 打包配置32位64位x86安装包
  • UML 活动图深度解析:以在线购物系统为例
  • 游戏开发核心技术全景解析——从引擎架构到网络安全防护体系
  • LeetCode每日一题4.24
  • 微高压氧舱VS高压氧舱:氧气疗法的“双生花”如何重塑健康?
  • 数据逆序隐写
  • 考研英一学习笔记
  • 倚光科技:详解非球面光学元件的加工与检测方法
  • Python并行计算:1.Python多线程编程详解:核心概念、切换流程、GIL锁机制与生产者-消费者模型
  • 探索 CameraCtrl模型:视频生成中的精确摄像机控制技术
  • XS5032芯片,开启视觉新体验
  • 什么是机器视觉3D碰撞检测?机器视觉3D碰撞检测是机器视觉3D智能系统中安全运行的核心技术之一
  • 题目:这不是字符串题
  • UML 活动图详解:以机票预订系统用户注册为例
  • 3dmax模型怎么处理3dtiles,制作制作B3DM格式文件
  • Linux操作系统--基础I/O(上)
  • 如何获取静态IP地址?完整教程
  • 第15章:MCP服务端项目开发实战:性能优化
  • 蓝桥杯 1. 四平方和
  • 牛市早报|商务部:目前中美之间未进行任何经贸谈判
  • 拖车10公里收1900元?货车司机质疑收费过高,潮州饶平县市监局已介入
  • “茉上茶田”傍大牌诱导加盟续:违规从事特许经营被罚没670余万元
  • 习近平在气候和公正转型领导人峰会上的致辞(全文)
  • 山西省朔州市政府党组成员、副市长李润军接受审查调查
  • 融入长三角一体化发展,苏南名城镇江的优势和机遇何在