
Power BI财销一体分析——波士顿分析实践
欢迎来到Powerbi小课堂,前几期课程我们深入学习了各种财务、销售实用案例。本期我将带领大家整合分散知识点,逐步构建一个全面的分析模型,涵盖封面、登录页、导航页、CEO驾驶舱等模块,以及趋势、产品、畅销品等多维度分析,同时融入度量值嵌套、计算组、动态指标、TOPN分析等高阶技巧。今天我将为大家带来波士顿分析应用实践,波士顿分析(Boston Analysis)通常指的是由波士顿咨询集团(BCG)
简介:
欢迎来到Powerbi小课堂,前几期课程我们深入学习了各种财务、销售实用案例。
本期我将带领大家整合分散知识点,逐步构建一个全面的分析模型,涵盖封面、登录页、导航页、CEO驾驶舱等模块,以及趋势、产品、畅销品等多维度分析,同时融入度量值嵌套、计算组、动态指标、TOPN分析等高阶技巧。
今天我将为大家带来波士顿分析应用实践,波士顿分析(Boston Analysis)通常指的是由波士顿咨询集团(BCG)开发的 波士顿矩阵(BCG Matrix),也称为 增长-份额矩阵(Growth-Share Matrix)。这一工具广泛应用于企业战略规划,帮助公司评估业务组合并优化资源分配。
接下来,让我们直接进入今天的实用技巧分享环节。如果您在实践过程中遇到任何问题,欢迎留言交流。有任何PowerBI问题,请查看简介,联系瓶子。
想要一份这样的可视化看板吗?想学吗?我教你呀!
一、案例背景:
我司作为专业运动自行车跨国销售企业,业务范围涵盖自行车、组件、配件及运动服装。当前,我们正致力于开发财销一体化分析系统,旨在通过技术手段实现财务与销售的紧密结合,促进数据共享与流程优化,进而提升决策效率与运营效率,优化资源配置,强化风险控制,为企业的可持续发展注入动力。
二、设计思路:
通过成本、销量、利润及销售维度精准掌控财务状况,从产品、客户及地域三个层面深入分析企业运营趋势,
(1)准备基础数据
(2)数据清洗
(3)建立关系视图
(4)个性美化设计
(5)数据建模(度量值)
(6)制作可视化报告
首先我们要理解波士顿分析是什么,矩阵根据 市场增长率(纵轴)和 相对市场份额(横轴)将业务分为四类。以下为关键参数的简要介绍:
波士顿矩阵的构成
明星(Stars)
高增长市场 + 高份额。
需持续投资以维持竞争力,未来可能成为现金牛。
例:新兴科技业务、热门产品线。
现金牛(Cash Cows)
低增长市场 + 高份额。
产生稳定现金流,用于支持其他业务。
例:成熟市场的垄断产品(如可口可乐的经典款)。
问题(Question )
高增长市场 + 低份额。
需谨慎投资,可能转为明星或淘汰。
例:初创业务或小众创新产品。
瘦狗(Dogs)
低增长市场 + 低份额。
考虑剥离或退出。
例:衰退市场的过时产品
典型应用场景
资源分配:优先投资明星和潜力问题业务,缩减瘦狗。
并购决策:通过收购补充矩阵中的短板(如现金牛)。
产品组合优化:平衡短期盈利与长期增长。
在建模之前,我们要先了解下此分析方法的难点,首先是动态四象限的区分,动态指标的建立,市场占有率的计算维度是要选择全局还是相对产品分类,市场占有率如何分类,以及如何让模型具有预测价值,例如接下来的一年,公司想要提升10%的增长率和5%的市场占有率,哪些产品需要侧重开发,哪些产品需要及时剔除等等。
3.1★关键分类的建立
主页窗口选择输入数据功能,输入如图数据,列工具窗口,选择按列排序功能,选择排序列,固定名称的顺序
3.2★建立阈值(此步骤很关键,关系到后续运算是否可以实现预测功能)
首先建模窗口选择新建参数功能,建立两个阈值,分别是市场占有率阈值和增长率阈值,最小值为0,最大值为100,增量为1,接下来我们要统一数据格式,目前的阈值格式为整数格式,而波士顿矩阵的计算多为百分比,所以我们要借助公式来完成格式统一,也可以在建立阈值时直接就将参数做成百分比格式,具体操作方法为,最小值为0,最大值为1,增量为0.01,并将列格式修改为百分比即可。
公式:
市场占有率阈值 = DIVIDE(SELECTEDVALUE('市场占有率阈值'[市场占有率阈值]),100)
增长率阈值 = DIVIDE(SELECTEDVALUE('增长率阈值'[增长率阈值]),100)
公式逻辑解析:
逻辑也很简单,就是用当前阈值除以100,完成百分比的运算格式统一
再次建立一个阈值,用作动态四象限分区的坐标轴使用,最小值为0,最大值为1000,增量为1,这个阈值的建立会相对随意一点,没有固定规则。
最后在建立字段阈值,目的在于在一个可视化图形中动态切换多个指标进行分析,减少模型计算负担,以及建立模型的人的负担,新建参数选择字段,勾选需要分析的度量值,这里我选择的指标是总销售额、销量、利润、利润率。以上阈值都要在建立时,就将切片器添加到此页备用。
5★数据建模:波士顿分析(又称增长份额矩阵)
公式:
波士顿动态指标 = SWITCH(TRUE(),
SELECTEDVALUE('波士顿分析维度'[波士顿分析维度 个订单])=0,[总销售额],
SELECTEDVALUE('波士顿分析维度'[波士顿分析维度 个订单])=1,[销量],
SELECTEDVALUE('波士顿分析维度'[波士顿分析维度 个订单])=2,[利润],
SELECTEDVALUE('波士顿分析维度'[波士顿分析维度 个订单])=3,[实际利润率],
[总销售额])
公式逻辑解析:
将动态指标切片器与对应度量值连接,这样我们引用一个度量值,就能完成4个运算。
公式:
四象限分区 =
VAR Number = CALCULATE( COUNTROWS( '矩阵坐标轴' ) , ALL( '矩阵坐标轴' ) )
RETURN SWITCH( TRUE() ,
AND(SELECTEDVALUE( '矩阵坐标轴'[矩阵坐标轴] ) / Number >= [增长率阈值] , SELECTEDVALUE( '分类'[名称] ) = "明星") ,
1 - [市场占有率阈值] ,
AND( SELECTEDVALUE( '矩阵坐标轴'[矩阵坐标轴]) / Number >= [增长率阈值] ,SELECTEDVALUE( '分类'[名称]) = "问题") ,
[市场占有率阈值] ,
AND(SELECTEDVALUE( '矩阵坐标轴'[矩阵坐标轴] ) / Number < [增长率阈值] , SELECTEDVALUE( '分类'[名称]) = "现金牛") ,
1 -[市场占有率阈值] ,
AND(SELECTEDVALUE( '矩阵坐标轴'[矩阵坐标轴] ) / Number < [增长率阈值] , SELECTEDVALUE( '分类'[名称] ) = "瘦狗") ,
[市场占有率阈值] ,
BLANK()
)
公式逻辑解析:以bayA类产品的客户数为例
变量1:Number
计算表 '矩阵坐标轴' 的总行数(用于标准化坐标轴比例)。
ALL( '矩阵坐标轴' ) 忽略所有筛选上下文,确保总数固定。
返回结果:
SELECTEDVALUE( '矩阵坐标轴'[矩阵坐标轴] )
获取当前上下文中 '矩阵坐标轴' 列的值(如增长率或市场份额的当前值)。
SELECTEDVALUE( '分类'[名称] )
获取当前业务分类名称("明星"、"现金牛"、"问题"、"瘦狗")。
[增长率阈值] 和 [市场占有率阈值]
定义的阈值,用于划分高/低增长率和市场份额。
SWITCH逻辑
通过嵌套的 AND 条件判断业务属于哪个象限,并返回对应的坐标边界值:
明星(Stars)
条件:增长率 ≥ 阈值 且 分类为“明星”。
返回值:1 - [市场占有率阈值]
高增长市场,纵轴(增长率)位于顶部(1 - 阈值),横轴(市场份额)通常右侧(高份额)。
问题(Question )
条件:增长率 ≥ 阈值 且 分类为“问题”。
返回值:[市场占有率阈值]
高增长但低份额,纵轴顶部,横轴左侧(低于阈值)。
现金牛(Cash Cows)
条件:增长率 < 阈值 且 分类为“现金牛”。
返回值:1 - [市场占有率阈值]
低增长但高份额,纵轴底部,横轴右侧。
瘦狗(Dogs)
条件:增长率 < 阈值 且 分类为“瘦狗”。
返回值:[市场占有率阈值]
低增长且低份额,纵轴底部,横轴左侧。
其他情况
返回 BLANK()(无匹配条件时)。
公式:
本期 = TOTALYTD('度量值存放'[波士顿动态指标],'日期表'[日期])
上期 = CALCULATE([本期], SAMEPERIODLASTYEAR('日期表'[日期]))
增长率 = DIVIDE([本期]-[上期],[上期])
公式逻辑解析:
TOTALYTD 会从 当前年度的第一天 开始,累计到 当前筛选上下文中的最后日期。
例如:若当前日期为2023年6月15日,则计算2023年1月1日至2023年6月15日的累计值。
SAMEPERIODLASTYEAR**:计算 上年同期** 的年初至今(YTD)值,用于与本期值对比
CALCULATE 会覆盖当前的日期筛选器,替换为去年同期的日期范围。
例如,如果当前计算的是2023年1月至6月的数据,那么上年同期则会自动计算为2022年1月至6月的数据。
公式:
市场占有率 =
DIVIDE(
[波士顿动态指标],
CALCULATE(
[波士顿动态指标],
ALL('产品表'[产品]),
VALUES('产品表'[子类别])
)
)
公式逻辑解析:
分子 [波士顿动态指标]
当前筛选上下文下,某个具体产品的指标值(例如:产品A的销售额)。
分母 CALCULATE([波士顿动态指标], ...)
计算同一子类别下 所有产品 的指标总和,通过以下调整实现:
*ALL('产品表'[产品])*移除对 '产品表'[产品] 列的筛选,忽略当前产品,计算子类别内所有产品的总和。
*VALUES('产品表'[子类别])*保留当前子类别的筛选上下文(例如:仅计算“智能手机”子类别的总和)。
DIVIDE 函数
安全除法,避免分母为0时出错(默认返回 BLANK() 或可指定替代值)。
随着用户选择不同的子类别,系统将自动更新并重新计算当前当前产品对应子类别的市场占有率。
如果有竞争公式的销售数据,我们也可以将级别提升到行业维度
公式:
波士顿分类 =
SWITCH( TRUE() ,
AND([市场占有率] >= [市场占有率阈值], [增长率] >= [增长率阈值] ), "明星" ,
AND([市场占有率] >= [市场占有率阈值] ,[增长率] < [增长率阈值] ), "现金牛" ,
AND([市场占有率] < [市场占有率阈值] , [增长率] >= [增长率阈值] ), "问题" ,
AND([市场占有率] <[市场占有率阈值] , [增长率] < [增长率阈值]), "瘦狗" ,
BLANK()
)
公式逻辑解析:
用于 波士顿矩阵(BCG矩阵) 的动态分类,根据 市场占有率 和 增长率 两个关键指标,将业务或产品划分为 明星、现金牛、问题、瘦狗 四个象限
返回结果假设
公式:
市场占有率分类 = IF ( [波士顿分类] IN VALUES('分类'[名称]) , [市场占有率] )
公式逻辑解析:
仅当 [波士顿分类] 的值存在于 '分类'[名称] 列中时,才返回对应的 [市场占有率],否则返回空值
6★制作可视化报告
第一步:设置报表页格式选项,选择画布背景,上传我们设计好的素材
第二步:插入一个矩形,填充颜色,打开阴影、发光功能
第三步:添加主页图标图像,启用交互功能,设置类型为书签,并指定书签为主页,点击该图标即可快速跳转至主页。
第四步:插入图像导航图标。
第五步:插入三个切片器,第一个切片器拖入日期表年度季度字段,第二个切片器拖入产品表分类字段,第三个切片器拖入销售区域表国家字段。
第六步:插入一个堆积面积图,将阈值矩阵坐标轴拖入X轴,度量值四象限分区拖入Y轴,分类表的分类名称设为图例,并设置视觉对象格式,确保Y轴的最小值为0,最大值为1,点开行功能,选择不同分类名称,设置颜色,点开阴影区域,颜色匹配折线图颜色,并设置合适透明度。
第七步:插入一个散点图,将产品表的产品字段拖入值区域,度量值增长率拖入X轴,度量值市场占有率分类拖入Y轴,分类表的分类名称设为图例,度量值波士顿动态指标拖入大小,日期表的年度季度字段拖入播放轴。,设置视觉对象格式,将X轴和Y轴的坐标范围统一为最小值0,最大值1,这么做的目的,是为了排除新上市产品对分析结果的误导,比如一个产品在2025年上市,2024年未销售或业绩很低,这样增长率就不具备参考价值,并且会导致产品散点落在错误的区间内,最后将散点图蒙在堆积面积图上。
第八步:插入一个矩阵图,行拖入产品表子类别、产品字段,值拖入波士顿分析维度、产品成本、增长率、市场占有率分类、折扣、订单数量,给产品成本添加图标条件格式,增长率和市场占有率分类添加数据条条件格式。
第九步:视图窗口点击选择功能,选中矩阵图、堆积面积图和散点图,右键选择分组,重命名为波士顿四象限。
第十步:根据图示美化页面布局,随后将矩阵图精准地叠加在散点图之上。
第十一步:在视图窗口中启用书签功能,首先隐藏矩阵图并创建书签,命名为‘可视化’。随后,右键点击以更新状态,隐藏堆积面积图和散点图,再创建书签并命名为‘表格’。再次右键点击更新,选中这两个书签后,进行分组并命名为‘切换可视化’。接着,在插入窗口中添加一个书签导航器,设置其格式。最后,通过书签功能,将‘切换可视化’分组添加至导航器,从而实现在控件点击时切换可视化的效果。
好的,今天的讲解就到这里。后期课程也会逐渐增加难度,如果在学习过程中需要帮助,欢迎随时联系作者,精彩内容,敬请期待。
更多推荐
所有评论(0)