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

Power BI企业运营分析——BCG分析

Power BI企业运营分析——BCG分析

欢迎来到Powerbi小课堂,在竞争激烈的市场环境中,企业运营分析平台成为提升竞争力的核心工具。通过整合多源数据、实时监控关键指标,该平台能够精准分析业务表现,快速识别问题与机会。

其可视化看板和智能预警功能,帮助管理者直观掌握运营动态,优化资源分配;而深度分析模块则能挖掘潜在趋势,支撑战略决策。无论是降本增效、风险管控,还是市场拓展,平台均能提供数据支持,助力企业实现精细化运营与可持续增长。

本期课程我们依然将重点放到整合前期分散知识点,帮助您建立清晰的模板搭建思路,本节课程涵盖BCG分析、动态四象限,本节课程重点动态四象限以及动态切换分析方法,难度已经增加,跟紧脚步不要掉队哦。

图片

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

一、案例背景:

我司作为国内一家大型服装电商企业,业务范围涵盖男装、女装、童装和配饰。当前,我们正致力于开发企业运营分析系统,旨在通过技术手段实现业绩提升、指标监控、绩效考核、客户维护开发和企业发展预测,促进数据共享与流程优化,进而提升决策效率与运营效率,优化资源配置,强化风险控制,为企业的可持续发展注入动力。

二、设计思路:

借助财务、产品、客户分析及盈亏预测,精确把握企业发展脉络,构建科学合理的考核机制,同时控制变动成本,进而提升企业盈利能力。

(1)准备基础数据

(2)数据清洗

(3)建立关系视图

(4)个性美化设计

(5)数据建模(度量值)

(6)制作可视化报告

2.1准备基础数据

主页输入数据,并将下图数据输入,命名为BCG矩阵分类,并加载到模型

图片

2.5数据建模
2.5.1 分析方法表建立
BCG分析维度 = 
DATATABLE("分析方法", STRING , "序号" , INTEGER , { { "按设定参数划分BCG产品类型" , 1 } ,{ "按AVG值划分BCG产品类型" , 2 } }
)

公式逻辑解析:

DATATABLE函数

用于手动创建一个内存中的静态表,无需连接外部数据源。

语法:DATATABLE(列名1, 数据类型1, 列名2, 数据类型2, ..., { {行1数据}, {行2数据}, ... })

定义了两列:

分析方法:文本类型(STRING),描述BCG分析的具体方法。

序号:整数类型(INTEGER),标识方法的顺序。

按设定参数划分

自定义阈值(如手动设定市场增长率/份额的临界值)划分产品类型(明星、现金牛、问题、瘦狗)。

按AVG值划分

以数据的平均值(AVG)作为自动划分的临界值。

2.5.2、阈值建立

建模窗口,打开新建参数功能,选择数值范围,建立三个阈值 

BCG参数-增长率 = GENERATESERIES(0, 1, 0.01)
BCG参数-占有率 = GENERATESERIES(0, 0.25, 0.01)
BCG坐标 = GENERATESERIES(1, 500, 1)

公式逻辑解析:我们采用小数形式设定占有率和增长率的阈值,随后将其转换为百分比形式,以便减少后续格式转换的工作量

3、度量值建立

BCG波士顿指标 = [指标]

公式逻辑解析:直接引用基础度量值中的指标,看似多余,但目的是为了更好识别引用数据

指标占有率 = DIVIDE( [BCG波士顿指标] , CALCULATE( [BCG波士顿指标] , 
ALL( '维度-产品'[子类别] )))

公式逻辑解析:

这个 DAX 公式 用于计算 产品子类别的相对市场占有率,使用**ALL('维度-产品'[子类别]),确保分母计算 不受当前报表筛选器影响**(例如用户选择了某几个产品类别,但占有率仍基于全局计算)

目标:计算某个产品子类别的市场占有率 相对于所有子类别总和的百分比

本质:这是一个 标准化(归一化)过程,将绝对指标转换为相对比例。

指标上年 = CALCULATE(  [BCG波士顿指标] , 
SAMEPERIODLASTYEAR('日期表'[日期]))

公式逻辑解析:使用SAMEPERIODLASTYEAR动态计算上年同期指标值,为增长率的计算提供基本参数

指标增长率 = DIVIDE( [BCG波士顿指标] - [指标上年] , [指标上年] )

公式逻辑解析:增长率固定公式:(本年-上年)/上年

指标增长率AVG = AVERAGEX( ALL('维度-产品'[子类别]) , [指标增长率])
指标占有率AVG = AVERAGEX( ALL('维度-产品'[子类别]) , [指标占有率])

公式逻辑解析:计算 所有产品子类别的市场占有率和市场增长率的平均值(全局均值),基于每个子类别的 单独计算,再求平均

参数增长率 = IF (MIN( 'BCG分析维度'[序号]) = 1 , 'BCG参数-增长率'[Z-BCG参数-Y增长率 值], [指标增长率AVG] )
参数占有率 = IF (MIN( 'BCG分析维度'[序号]) = 1 , 'BCG参数-占有率'[Z-BCG参数-X占有率 值] , [指标占有率AVG] )

公式逻辑解析:

动态二选一

如果用户选择 BCG分析维度 中的 方法1(序号=1),则使用 人工预设的参数

如果选择 方法2(序号=2),则使用 自动计算的全局平均

BCG波士顿分类 = 
VAR X = [参数增长率] 
VAR Y = [参数占有率] 
VAR X1= [指标增长率]
VAR Y1= [指标占有率]
VAR A = SWITCH( TRUE() ,X1 >= X && Y1 >= Y , "明星产品" ,X1 < X && Y1 >= Y , "金牛产品" ,X1 >= X && Y1 <  Y , "问题产品" ,X1 < X && Y1 <  Y , "瘦狗产品" ,BLANK() )
RETURN A

公式逻辑解析:

输入参数

X 和 Y:用户定义的 增长率 和 占有率临界值(通常来自参数表或全局平均值)。

X1 和 Y1:当前产品的实际 增长率 和 占有率

分类规则

明星产品:高增长(≥阈值) + 高份额(≥阈值) → 重点投资

金牛产品:低增长(<阈值) + 高份额(≥阈值) → 现金收割

问题产品:高增长(≥阈值) + 低份额(<阈值) → 选择性投资

瘦狗产品:低增长(<阈值) + 低份额(<阈值) → 收缩或剥离

SWITCH(TRUE(), ...):DAX中特有的多条件判断写法,按顺序检查条件,返回第一个匹配的结果。

BLANK():兜底逻辑,防止未覆盖的情况(理论上不会触发,因所有组合已被穷举)。

指标增长率BCG = IF ( [BCG波士顿分类] IN VALUES( 'BCG矩阵分类'[名称]) , [指标增长率] )
指标占有率BCG = IF ( [BCG波士顿分类] IN VALUES('BCG矩阵分类'[名称]) , [指标占有率] ) 

公式逻辑解析:以指标占有率BCG为例

条件判断:检查当前产品的 [BCG波士顿分类](如"明星产品")是否存在于表 'BCG矩阵分类'[名称] 的有效值列表中。

如果匹配:返回该产品的 [指标占有率]。

如果不匹配:返回 BLANK()(隐式默认值)。

VALUES('BCG矩阵分类'[名称])返回当前上下文中 'BCG矩阵分类' 表的 [名称] 列的所有 唯一值(通常是预定义的BCG四类名称)。

例如:{"明星产品", "金牛产品", "问题产品", "瘦狗产品"}。

IN操作符DAX中的简写语法,等价于 CONTAINSROW(VALUES(...), [BCG波士顿分类])。

产品子类个数 = CALCULATE( DISTINCTCOUNT( '维度-产品'[子类别]) , FILTER( ALL( '维度-产品'[子类别]) , [指标占有率BCG] <> BLANK() ))

公式逻辑解析:以指标占有率BCG为例

目标:统计满足条件的唯一产品子类别数量。

关键条件:仅计算 [指标占有率BCG] 不为空的子类别(即属于用户当前筛选的BCG分类的产品)。

DISTINCTCOUNT('维度-产品'[子类别])

计算 '维度-产品'[子类别] 列的唯一值数量(去重计数)。

FILTER(ALL(...), [指标占有率BCG] <> BLANK())

ALL('维度-产品'[子类别]):忽略对子类别的任何外部筛选,考虑所有子类别。

[指标占有率BCG] <> BLANK():筛选出 [指标占有率BCG] 有值的子类别(即属于用户选择的BCG分类)。

CALCULATE的上下文转换

将 FILTER 生成的表作为新的筛选上下文,控制 DISTINCTCOUNT 的计算范围。

产品子类个数BCG = CALCULATE( [产品子类个数] , FILTER( ALL( '维度-产品'[子类别])  , [BCG波士顿分类] = VALUES('BCG矩阵分类'[名称])  ))

公式逻辑解析:

个DAX公式 产品子类个数BCG 是在原有 产品子类个数 的基础上,进一步根据 BCG波士顿分类 进行筛选计算

FILTER(ALL('维度-产品'[子类别]), [BCG波士顿分类] = VALUES('BCG矩阵分类'[名称]))

ALL('维度-产品'[子类别])解除对子类别列的所有外部筛选,确保计算基于完整数据集。

[BCG波士顿分类] = VALUES('BCG矩阵分类'[名称])动态匹配当前筛选上下文中选定的BCG分类:

VALUES('BCG矩阵分类'[名称]) 返回用户选择的BCG分类名称(如"明星产品")

仅保留分类名称匹配的子类别

CALCULATE的上下文转换

将 FILTER 生成的表作为新的筛选上下文,控制 [产品子类个数] 的计算范围。

颜色指标 = 
VAR A = [BCG波士顿分类]
VAR B = SWITCH( TRUE() ,A = "明星产品" , "#6B0078" ,A = "金牛产品" , "#E66C37" ,A = "瘦狗产品" , "#118DFF" ,A = "问题产品" , "#12239E" ,BLANK() )
RETURN B

公式逻辑解析:用于 根据BCG分类动态分配颜色代码,是数据可视化(如BCG矩阵、条形图等)中实现 条件格式着色 的核心逻辑

增长率AVG = "增长率:" & FORMAT( [指标增长率AVG] , "0.0%" )
占有率AVG = "占有率:" & FORMAT( [指标占有率AVG] , "0.0%" )

公式逻辑解析:用于 将平均占有率指标格式化为带说明文本的百分比字符串

X上限-占有率 = CALCULATE( MAXX( ALL( '维度-产品'[子类别]) , [指标占有率] ) , ALL ( '维度-产品'[子类别] ) ) + 0.1

公式逻辑解析:

用于 动态计算市场占有率的可视化上限值,是制作专业BCG矩阵或散点图的关键组件,

内部计算层:**MAXX(ALL(...), [指标占有率])**

*ALL('维度-产品'[子类别])*临时移除对产品子类别的所有筛选,确保计算基于完整数据集(即使报表中有切片器筛选)

*MAXX()*遍历所有子类别,找出最大的 [指标占有率] 值示例:若最大占有率为 0.75(75%),则返回 0.75

上下文控制层:**CALCULATE(..., ALL(...))**

外层的 ALL('维度-产品'[子类别]) 二次确保:

忽略所有可能存在的子类别筛选上下文

防止其他关联筛选器(如时间、地区)影响最大值计算

技术本质:创建完全无筛选的计算环境

可视化优化:+ 0.1

业务逻辑:在最大占有率基础上增加 10% 的缓冲空间示例:最大值为 0.75 → 返回 0.85(85%)

设计目的

避免数据点紧贴坐标轴右边缘

为潜在的数据波动预留空间

提升图表可读性和美观度

Y上限-增长率 = 
VAR A = CALCULATE( MAXX( ALL( '维度-产品'[子类别]) , [指标增长率] ) , ALL ( '维度-产品'[子类别] ) )
VAR B = IF ( A > 0 , A + 0.1 , A - 0.1 )
RETURN B
Y下限-增长率 = 
VAR A = CALCULATE( MINX( ALL( '维度-产品'[子类别]) , [指标增长率] ) , ALL ( '维度-产品'[子类别] ) ) 
VAR B = IF ( A >=0 , 0 ,  A - 0.1 )  
RETURN B

公式逻辑解析:以Y上限-增长率为例

最大值计算层(变量A)

*ALL('维度-产品'[子类别])*双重清除子类别的筛选上下文,确保计算全局最大值:

内层ALL:使MAXX遍历所有子类别

外层ALL:防止其他关联筛选器干扰

*MAXX(..., [指标增长率])*返回所有产品子类别的最大增长率值示例:若最大增长率为25%,则A = 0.25

缓冲值调整层(变量B)

*正增长逻辑* (A > 0)当最大增长率为正时,增加10%缓冲空间示例:**A=0.25 → B=0.35** (25% → 35%)

*负增长逻辑* (A ≤ 0)当最大增长率为零/负时,减少10%缓冲空间示例:**A=-0.05 → B=-0.15** (-5% → -15%)

2.5.3动态输出

最终返回值根据数据特征自适应调整

X = ROUND ( DIVIDE( [参数占有率] , [X上限-占有率]) * 500 , 0 )

公式逻辑解析:

用于 将业务数据(市场占有率)转换为可视化坐标系统中的X轴位置

*标准化比例计算*DIVIDE([参数占有率], [X上限-占有率])→ 将实际占有率转换为 *0~1区间*的相对值示例:0.25/0.85 ≈ 0.294

*坐标空间映射** 500→ 将比例映射到 *0~500像素*的坐标空间(假设画布宽度为500px)示例:0.294 * 500 ≈ 147

*像素级对齐*ROUND(..., 0)→ 四舍五入到整数,避免亚像素渲染问题最终结果:147

解决量纲问题:不同行业/企业的占有率绝对值差异大(如快消品80% vs 奢侈品5%)

统一可视化基准:所有产品都映射到相同的坐标范围(0~500px)

Y = 
VAR A1 = [Y上限-增长率]
VAR A2 = [Y下限-增长率]
VAR B = IF ( A2 > 0 , A1 - A2 , A1 + ABS( A2 ) ) 
VAR C = IF ( A2 > 0 , [参数增长率] , [参数增长率] + ABS( A2 ) )
VAR D = ROUND ( DIVIDE( C , B )  , 3 )
RETURN D

公式逻辑解析:

用于 动态计算增长率指标在可视化Y轴上的标准化位置,是构建专业级BCG矩阵或增长分析图表的核心算法

动态轴跨度计算(变量B)

*当A2>0时*:B = A1 - A2示例:0.40 - 0.10 = 0.30(10%~40%跨度)

*当A2≤0时*:B = A1 + |A2|示例:0.40 + 0.15 = 0.55(-15%~40%跨度)

增长率调整(变量C)

*正下限处理*:直接使用原始增长率示例:[参数增长率]=0.25 → C=0.25

*负下限处理*:将负区间平移至0起点示例:[参数增长率]=-0.05 → C=-0.05+0.15=0.10

标准化输出(变量D)

Y=轴跨度调整后增长率=BC

输出范围

最小值:A2=-0.15 → 0/(-15%~40%)=0

最大值:A1=0.40 → 0.55/0.55=1

中间值:增长20% → (0.20+0.15)/0.55≈0.636

Y2 = 1 - [Y] 

公式逻辑解析:用于 反转Y轴坐标的标准化值,

金牛 = IF ( [坐标参数 值] > [X] , [Y] , BLANK()  )

明星 = IF ([坐标参数 值] > [X] , [Y2] , BLANK()  )

瘦狗 = IF ( [坐标参数 值] <= [X] , [Y2] , BLANK()  )

问题 = IF ( [坐标参数 值] <= [X] , [Y] , BLANK()  )

公式逻辑解析:

象限分割逻辑

*X轴临界值**[X]*通常取市场占有率的行业平均值(如 [X] = 0.5),将矩阵分为左右两半:

右侧:高占有率(金牛/明星)

左侧:低占有率(瘦狗/问题)

Y轴处理差异

[Y]:原始标准化值(高数值在坐标系下方)

[Y2]:反转值(高数值在坐标系上方)

设计意图:通过Y值变换实现 增长方向统一(所有象限的"高增长"都指向坐标系上方)

2.6可视化报告制作
2.6.1、业绩概览制作

第一步:设置报表页格式选项,选择画布背景,上传我们设计好的素材

第二步:插入一个图像,AI机器人图标,点开操作功能,给此图像添加登录页书签。

第三步:插入一个切片器,将度量值合集字段分析维度-指标拖入切片器。

第四步:插入七个书签按钮,输入数据中心、产品维度、客户开发、业绩分析、地域分析、业绩考核、表格维度,并给书签按钮添加我们设计好的图标。

第五步:插入一个形状,用于给以上建立视觉对象添加背景。

第六步:调整阈值切片器的标题为'Y轴增长率'和'X轴占有率'。

第七步:插入一个切片器,将BCG分析维度表分析方法拖入字段中,再插入三个切片器,分别将年份维度表年份字段、维度-省份大区表地区字段、维度-客户表行业字段拖入字段中。

第八步:创建两个卡片图,分别配置度量值增长率AVG和占有率AVG作为字段内容。

第九步:插入一个堆积柱形图,X轴拖入BCG坐标字段坐标参数,Y轴拖入度量值问题、瘦狗、金牛、明星,设置视觉对象格式,X轴最大值设置为500,Y轴最大值设为1。

第十步:在堆积柱形图上叠加一个白色形状,设置其透明度为70%,以达到覆盖效果。

第十一步:插入一个散点图,值拖入维度-产品表子类别字段,X轴拖入度量值指标占有率BCG,Y轴拖入度量值指标增长率BCG,图例拖入BCG矩阵分类表名称字段,大小拖入度量值BCG波士顿指标,设置视觉对象格式,X轴最小值设置为0,最大值条件格式设置为度量值X上限-增长率,Y轴最大值条件格式设置为度量值Y上限-增长率,最小值条件格式设置为度量值Y下限-增长率,像视觉对象添加进一步分析,添加一条X轴恒线,将度量值参数占有率添加给X轴恒线,添加一条Y轴恒线,将度量值参数增长率添加给Y轴恒线,将散点图覆盖于形状之上。

第十二步:插入一个表格图,列中拖入维度-产品表子类别字段,度量值合集字段分析维度-指标、指标-占有率、指标增长率和BCG波士顿分类,给BCG波士顿分类添加条件格式字体颜色,格式样式选择字段值,将度量值颜色指标添加给此字段。

第十三步:插入一个环形图,图例拖入BCG矩阵分类表名称简称字段,值拖入度量值产品子类个数BCG,设置视觉对象格式,关闭图例,详细类别标签设置为所有详细信息标签。

第十四步:插入一个卡片图,字段拖入度量值产品子类个数,置于环形图中央。

第十五步:创建一张丝带图,设置X轴为年份维度表中的年份字段,Y轴为度量值产品子类个数BCG,并将BCG矩阵分类表的名称简称字段拖入图例。

第十六步:视图窗口选择功能,找到矩阵图点击隐藏,打开书签功能,添加书签命名为波士顿图表,找到环形图、卡片图、丝带图点击隐藏,并将矩阵点击显示,添加书签命名为波士顿表格,选中这两个书签,右键选择分组,命名为页内切换波士顿分析。

第十七步:添加两个书签按钮,分别设置样式文本为‘波士顿图表分析’和‘波士顿表格明细’,然后在操作功能中,将之前创建的书签分配给对应的按钮。

第十六步:如图美化界面

第十七步:请先打开视图窗口的书签功能,随后为当前页面添加一个书签。

第十八步:在数据中心页,找到并点击文本为‘波士顿分析’的按钮,随后打开操作功能菜单,从中选择‘书签’类型,将当前页面的书签添加到该按钮上。

图片

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

相关文章:

  • 1软考系统架构设计师:第一章系统架构概述 - 超简记忆要点、知识体系全解、考点深度解析、真题训练附答案及解析
  • 【教程】Docker运行gitlab容器
  • w307MES生产制造执行系统设计与实现
  • Unity AssetBundle (AB) 打包详解
  • 【新技术】微软 Azure Test Impact Analyzer (TIA) 全面解析
  • 29-算法打卡-字符串-KMP算法理论2-第二十九天
  • Adobe Photoshop(PS)2022 版安装与下载教程
  • 一篇入门之-评分卡变量分箱(卡方分箱、决策树分箱、KS分箱等)实操例子
  • CSS预处理器
  • 如何快速轻松地恢复未保存的 Word 文档:简短指南
  • 【2025 最新前沿 MCP 教程 04】通信渠道:理解 MCP 传输机制
  • AEB法规升级后的市场预测与分析:技术迭代、政策驱动与产业变革
  • MySQL 常用语句教程
  • RAG技术解析:以Text2SQL为例看检索增强生成的全流程应用
  • C++学习笔记(四十)——STL之归约算法
  • Python Pandas实现ABC_manage_channel逻辑
  • JAVAEE初阶01
  • 【C语言】柔性数组
  • SEO新手快速上手核心步骤
  • 解释型语言和编译型语言
  • 央媒谈多地景区试水“免费开放”:盲目跟风会顾此失彼
  • 伊朗港口爆炸最新情况:14死700多伤,大火延烧,调查困难
  • A股三大股指涨跌互现,电力股走强,地产股冲高回落
  • 习近平在气候和公正转型领导人峰会上的致辞(全文)
  • 夜读丨一条鱼的使命
  • 主动权益基金一季度重仓股出炉:腾讯跃升至第一,阿里、比亚迪、中芯国际新进前十