https://zhuanlan.zhihu.com/p/113113765

PowerBI数据分析02:结构百分比分析法

作者:海艳

结构百分比分析法,又称纵向分析,是指同一期间财务报表中不同项目间的比较与分析,将财务报表中的某一重要项目(如资产负债表中的资产总额或权益总额)的数据作为100%,然后将报表中其余项目额都以这一项目的百分比的形式作纵向排列,从而揭示出各项目的数据在公司财务中的意义的一种财务分析方法。

涉及的常用DAX函数

SUM对某个列中的所有数值求和

SUMX

返回为表中的每一行计算的表达式的和

CALCULATE

在筛选器修改的上下文中对表表达式进行求值

CALCULATETABLE

在筛选器修改的上下文中对表达式进行求值

FILTER

返回已筛选的表

FILTERS

返回直接应用于指定列的筛选器值的表

All

返回表中的所有行或列中的所有值,同时忽略可能已应用的任何筛选器

ALLSELECTED

返回表中的所有行或列中的所有值,同时忽略可能已应用在查询内的任何筛选器,但保留来自外部的筛选器

ALLCROSSFILTERED

清除应用于指定表的所有筛选器KEEPFILTERS 更改筛选语义的 CALCULATE 和 CALCULATETABLE 函数

在上次水平分析法分享后,和我一起在星球中学习的伙伴找到我说,你这个内容怎么给人的感觉就像没分析完,到底是什么吞噬掉了利润?

不知道这个结果真是如鲠在喉,寝食难安!不知道你是否也和他一样,想一探究竟,那让我们今天继续往下说。

由上一篇数据我们得知,19年收入增长比率为29.26%,而利润增长幅度只有9.97%,显然利润增长幅度变缓,不是收入的影响。
接下来,让我们结合结构百分比分析法来看下费用情况:

费用总金额 = SUM('费用表'[金额])各费用金额 = CALCULATE([费用总金额])各费用占总费用比例 = DIVIDE([费用总金额],CALCULATE([费用总金额],ALL('费用表'[一级科目])))

在费用中我们将费用总金额作为100%,对应管理费用、销售费用、资产减值损失、营业外支出、财务费用作为各分项,计算其占费用总金额的比例。

我们都知道日常企业最常发生的三大项费用就是管理费用、销售费用、财务费用,那我们将科目中的资产减值损失、营业外支出先勾掉筛选,只看三大项费用的情况:

对应情况如下:

各费用占总费用比例 绝对 = DIVIDE([费用总金额],CALCULATE([费用总金额],ALL('费用表'[一级科目])))各费用占总费用比例 相对 = DIVIDE([费用总金额],CALCULATE([费用总金额],ALLSELECTED('费用表'[一级科目])))

对应我们将三项费用总金额作为100%,对应管理费用、销售费用、财务费用作为各分项,计算其占费用总金额的比例。

从中我们可以看出16-19年,四年间管理费用占总费用比例最高,三项费用中占比最大,销售费用次之,而财务费用仅占0.01%,那我们是否能够得出管理费用是影响利润的重要因素?

答案是:不能.

因为我们并没有把时间因素考虑进来,也没有把各项费用究竟占收入比重多大考虑进来,所以只由其占比并不能得出最终结论。那管理费用究竟为什么在费用中占比这么大,值得我们考虑?

我们添加上时间,加入筛选器:

Note:不知大家有没有注意到,我们年份名称是乱序的,我们需要将它更正下顺序:

(使用右下角 …,选择排序方式,按年份名称升序排列)

管理费用情况

销售费用情况

财务费用情况

Y2016年情况

Y2017年情况

Y2018年情况

Y2019年情况

汇总情况

有没有发现单独看费用,管理费用占比在逐年递增,而销售费用在逐年下降,那究竟是什么原因,这时就要结合你所分析的企业的背景、成长周期及其他相关情况来看:

为什么管理费用一直上升,是不是因其研发费用投入在逐年递增,来帮助企业研发新产品;为什么销售费用在逐年下降,是否是企业进入成熟期,需要多做投资来守住他的现金,而品牌知名度已经打响,所以减少销售费用的投入,来增加利润;等等……….其实还有另外一种可能,就是各项费用都在下调,而管理费用占比增加而已!

接下来让我们看下费用率、费用同期对比情况,来看下费用情况,以及是否是费用增加吞噬掉了利润:

费用率 = DIVIDE([费用总金额],[销售收入])

上年费用 =
CALCULATE('费用度量值'[费用总金额],DATEADD('日期'[日期],-1,YEAR))
费用差异 = [费用总金额]-[上年费用]
费用增长率 = divide([费用差异],[上年费用])

由上,我们可以发现在19年,费用下降了43.1%,可见企业在严格控制费用支出,来帮助企业盈利,而费用情况恰好是我们说的第三种可能,费用集体下调,而管理费用占比增加而已.

所以对于损益相关项进行分析时,单独分析的同时,也要结合整体分析,不能直接由点及面。

那我们分析了影响利润的两个大的方面,都不是影响企业利润的因素,那究竟是什么吞噬掉了利润?

答案奉上:是因受上游独家供货垄断,成本大幅提高,所以导致利润被吞噬。

当然影响利润的因素还有其他不同的方面,例如:资产减值损失、坏账损失、公允价值变动损益,折旧&摊销计提方式的改变等等,需要我们针对不同的分项进行细节分析。

那今天的分享就这么多啦,下一节将和大家分享趋势分析法!期待和你的再次相遇^_^

数据可视化之分析篇(八)Power BI数据分析应用:结构百分比分析法的更多相关文章

  1. 数据可视化之分析篇(三)Power BI总计行错误,这个技巧一定要掌握

    https://zhuanlan.zhihu.com/p/102567707 ​前一段介绍过一个客户购买频次统计的案例: Power BI 数据分析应用:客户购买频次分布. 我并没有在文章中显示总计行 ...

  2. 数据可视化之分析篇(六)使用Power BI进行流失客户分析

    https://zhuanlan.zhihu.com/p/73358029 为了提升销量,在不断吸引新客户的同时,还要防止老客户离你而去,但每一个顾客不可能永远是你的客户,不可避免的都会经历新客户.活 ...

  3. 数据可视化之分析篇(一)使用Power BI进行动态帕累托分析

    https://zhuanlan.zhihu.com/p/57763423 通过简单的点击交互,就能进行动态分析发现见解,才是我们需要的,恰好这也是 PowerBI 所擅长的. 就帕累托分析来说,能从 ...

  4. 数据可视化之分析篇(七)Power BI数据分析应用:水平分析法

    https://zhuanlan.zhihu.com/p/103264851 首先,以财务报表分析为例,介绍通用的分析方法论,整体架构如下图所示: (点击查看大图) 接下来我会围绕这五种不同的方法论, ...

  5. 数据可视化之分析篇(五)如何使用Power BI计算新客户数量?

    https://zhuanlan.zhihu.com/p/65119988 每个企业的经营活动都是围绕着客户而开展的,在服务好老客户的同时,不断开拓新客户是每个企业的经营目标之一. 开拓新客户必然要付 ...

  6. 数据可视化之分析篇(二)Power BI 数据分析:客户购买频次分布

    https://zhuanlan.zhihu.com/p/100070260 商业数据分析通常都可以简化为对数据进行筛选.分组.汇总的过程,本文通过一个实例来看看PowerBI是如何快速完成整个过程的 ...

  7. 数据可视化之分析篇(十)Power BI应用:如何计算在职员工数量?

    ​https://zhuanlan.zhihu.com/p/128652582 经常碰到的一类问题是,如何根据起止日期来计算某个时间点的数量,比如: 已知合同的生效日期和到期日期,特定日期的有效合同有 ...

  8. 数据可视化之分析篇(九)PowerBI数据分析实践第三弹 | 趋势分析法

    https://zhuanlan.zhihu.com/p/133484654 以财务报表分析为例,介绍通用的分析方法论,整体架构如下图所示: (点击查看大图) 我会围绕这五种不同的方法论,逐步阐述他们 ...

  9. 数据可视化之分析篇(四)PowerBI分析模型:产品关联度分析

    https://zhuanlan.zhihu.com/p/64510355 逛超市的时候,面对货架上琳琅满目的商品,你会觉得这些商品的摆放,或者不同品类的货架分布是随机排列的吗,当然不是. 应该都听说 ...

随机推荐

  1. 怒肝俩月,新鲜出炉史上最有趣的Java小白手册,第一版,每个 Java 初学者都应该收藏

    这么说吧,在我眼里,Java 就是最流行的编程语言,没有之一(PHP 往一边站).不仅岗位多,容易找到工作,关键是薪资水平也到位,不学 Java 亏得慌,对吧? 那可能零基础学编程的小伙伴就会头疼了, ...

  2. @codeforces - 594E@ Cutting the Line

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 给定一个字符串 s 与正整数 k.现在你需要进行恰好一次操作: ...

  3. (一)JavaMail发送简单邮件

    1,导入依赖 <dependency> <groupId>com.sun.mail</groupId> <artifactId>jakarta.mail ...

  4. Java 源码刨析 - HashMap 底层实现原理是什么?JDK8 做了哪些优化?

    [基本结构] 在 JDK 1.7 中 HashMap 是以数组加链表的形式组成的: JDK 1.8 之后新增了红黑树的组成结构,当链表大于 8 并且容量大于 64 时,链表结构会转换成红黑树结构,它的 ...

  5. yii2.0AR两表联查

    首先,建两个关联表. 表一 -- Table structure for article -- ---------------------------- DROP TABLE IF EXISTS `a ...

  6. 为什么启动线程是start方法?

    为什么启动线程是start方法 十年可见春去秋来,百年可证生老病死,千年可叹王朝更替,万年可见斗转星移.   凡人如果用一天的视野,去窥探百万年的天地,是否就如同井底之蛙? 背景:启动线程是start ...

  7. http 的8中请求方式:

    http 的8中请求方式: 1.OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法,也可以利用向web服务器发送‘*’的请求来测试服务器的功能性 2.HEAD 向服务器索与GET请求相一致 ...

  8. JavaWeb网上图书商城完整项目--过滤器解决中文乱码

    我们知道,如果是POST请求,我们需要调用request.setCharacterEncoding(“utf-8”)方法来设计编码:如果是GET请求,我们需要自己手动来处理编码问题.如果我们使用了En ...

  9. 一起玩转微服务(13)——AOP

    一.什么是AOP编程 AOP: Aspect Oriented Programming 面向切面编程. 面向切面编程(也叫面向方面):Aspect Oriented Programming(AOP), ...

  10. vue+iview多条联动,for循环data是函数

    问题:多条for循环出的数据二级联动for循环出多条数据,每条数据都有一个二级联动,每次下拉一级联动,二级的选项都是变化的. 思考刚开始一直想不出如何实现二级联动下拉的数据动态变化,因为之前一直都是v ...