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矩阵分类表的名称简称字段拖入图例。
第十六步:视图窗口选择功能,找到矩阵图点击隐藏,打开书签功能,添加书签命名为波士顿图表,找到环形图、卡片图、丝带图点击隐藏,并将矩阵点击显示,添加书签命名为波士顿表格,选中这两个书签,右键选择分组,命名为页内切换波士顿分析。
第十七步:添加两个书签按钮,分别设置样式文本为‘波士顿图表分析’和‘波士顿表格明细’,然后在操作功能中,将之前创建的书签分配给对应的按钮。
第十六步:如图美化界面
第十七步:请先打开视图窗口的书签功能,随后为当前页面添加一个书签。
第十八步:在数据中心页,找到并点击文本为‘波士顿分析’的按钮,随后打开操作功能菜单,从中选择‘书签’类型,将当前页面的书签添加到该按钮上。
好的,今天的讲解就到这里。后期课程也会逐渐增加难度,精彩内容,敬请期待。