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

​本文为星球嘉宾"海艳"的PowerBI数据分析工作实践系列分享之一,她深入浅出的介绍了PowerBI在数据分析中的应用,从各项指标的计算,到可视化展现,利用PowerBI发现问题分析问题,欢迎学习借鉴。


PowerBI数据分析01:水平分析法

作者:海艳

首先,以财务报表分析为例,介绍通用的分析方法论,整体架构如下图所示:

(点击查看大图)

接下来我会围绕这五种不同的方法论,进一步的阐述他们在 PowerBI 中的应用,本文先谈一下水平分析法的应用。

01 | 水平分析法

水平分析法,指将反映企业当前状况的信息与前期或历史某一时期财务状况的信息进行对比,研究企业各项经营业绩或财务状况的发展变动情况的一种财务分析方法。

①绝对增减变动

同比环比

可以适用在收入、成本、利润、费用、税金缴纳、应付周转、应收周转、库存周转、资金周转等分析中

涉及的常用DAX函数

DATEADD

按指定的间隔移动给定的一组日期

DATESBETWEEN

返回两个给定日期之间的日期

DATESINPERIOD

返回给定期间中的日期

DATESMTD

返回此月份中截至当前日期的一组日期(QTD/YTD)

SAMEPERIODLASTYEAR

返回上一年度中当前选择的一组日期

示例

首先创建度量值,验证数据准确性

销售利润 =SUM('订单'[利润])上年销售利润 =CALCULATE('度量值'[销售利润],DATEADD('日期'[日期],-1,YEAR))利润差异 = [销售利润]-[上年销售利润]

并用图表展示出变化的趋势。

从上图可以看出17-18年,利润增幅14.9万,但18-19年利润增幅则只有6.2万,较18年增幅减少。

那究竟是什么原因呢?我们继续向下看。

先来看下是否是收入的影响。
创建度量值

销售收入= SUM('订单'[销售额])上年销售收入 =CALCULATE('度量值'[销售总额],SAMEPERIODLASTYEAR('日期'[日期]))收入差异 = [销售收入]-[上年销售收入]

我们可以看出,19年收入涨幅为124万,大于18年涨幅80万,那为什么19年利润涨幅下降了呢,需要进一步寻找原因?

是成本增加了,还是费用增加了,还是其他因素影响,我们也可以通过使用同样的方式对其他影响因素进行对比分析,寻找影响利润原因。

说明:上面两个差异变化图中16年因是第一年,所以变化是不准确的,这也是需要调整的地方,第一年应为零。

②增减变动率

在某些情况下,绝对增减变动不能反映分析的可比性,那就要借助增减变动率;

例如:两公司的利润情况对比,因环境、体量差异,那他的绝对值可比性就会下降,但对应的比率对比则依然具有可比性.

涉及的常用dax函数:

DIVIDE

能够处理分母为零的情况 ,也被称为Safe Divide 函数

创建度量值:

利润增长变化率 = DIVIDE([利润差异],[上年销售利润])
收入增长变化率 = DIVIDE([收入差异],[上年销售收入])

首先通过下图的利润增长变化率也可以得出我们在前面使用绝对值对比的方法得出的结论,但使用变化率的对比,则剔除掉了基期16年数据的影响,对比下,使用变化率进行分析则更有效。

其次通过收入增长变化率情况,可以更清晰的看出19年收入增长比率为29.26%,而利润增长幅度只有9.97%。

显然利润增长幅度变缓,不是收入的影响,那是什么吞噬掉了利润?需进一步对其他因素进行分析。

瀑布图展示收入和利润的变动情况

今天的内容就暂时写到这里,水平分析方法在分析中可以应用到很多地方,具有很广泛适用性,接下来我将继续分享其他几种方法的使用,希望可以把这些方法灵活的与PowerBI相结合,应用到我们的工作中。

数据可视化之PowerQuery篇(十七)Power BI数据分析应用:水平分析法的更多相关文章

  1. 数据可视化之PowerQuery篇(十四)产品关联度分析

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

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

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

  3. 数据可视化之PowerQuery篇(十八)Power BI数据分析应用:结构百分比分析法

    ​https://zhuanlan.zhihu.com/p/113113765 本文为星球嘉宾"海艳"的PowerBI数据分析工作实践系列分享之二,她深入浅出的介绍了PowerBI ...

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

    https://zhuanlan.zhihu.com/p/133484654 ​本文为星球嘉宾"海艳"的PowerBI数据分析工作实践系列分享之三,她深入浅出的介绍了PowerBI ...

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

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

  6. 数据可视化之PowerQuery篇(四)二维表转一维表,看这篇文章就够了

    https://zhuanlan.zhihu.com/p/69187094 数据分析的源数据应该是规范的,而规范的其中一个标准就是数据源应该是一维表,它会让之后的数据分析工作变得简单高效. 在之前的文 ...

  7. 数据可视化之PowerQuery篇(十)如何将Excel的PowerQuery查询导入到Power BI中?

    https://zhuanlan.zhihu.com/p/78537828 最近碰到星友的一个问题,他是在Excel的PowerQuery中已经把数据处理好了,但是处理后的数据又想用PowerBI来分 ...

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

    https://zhuanlan.zhihu.com/p/57763423 上篇文章介绍了帕累托图的用处以及如何制作一个简单的帕累托图,在 PowerBI 中可以很方便的生成,但若仅止于此,并不足以体 ...

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

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

随机推荐

  1. async/await剖析

    async/await剖析 JavaScript是单线程的,为了避免同步阻塞可能会带来的一些负面影响,引入了异步非阻塞机制,而对于异步执行的解决方案从最早的回调函数,到ES6的Promise对象以及G ...

  2. 不同类型数据库中LIKE语句使用

    不同数据库的LIKE语句使用略有差别,这里记录一下: Oracle数据库: SELECT *FROM userWHEREname LIKE CONCAT('%',#{name},'%')或SELECT ...

  3. window 开机重启运行bat文件(运行java的jar包)

    1:直接打开电脑的目录:(记得勾选查看隐藏项目) C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp,在里面新建start.bat ...

  4. 为页内的tab添加的iframe添加加载动画过渡效果

    var iframe = $("iframe[data-id=" + id + " ]"); if (iframe.length > 0) { var e ...

  5. [ C++ ] 勿在浮沙筑高台 —— 内存管理(9~16p)primitives(下)

    per-class allocator 2 tips: operator new重载 不会被派生类实际使用,因为父类大小内存的分配交给子类去调用明显是不正确的.实际上会被转交至 : : operato ...

  6. twaver html5 如何设置节点不可拖动

    解决思路: 1.创建一个不可移动的图层  :  layer 2.设置不可拖动的节点node 的图层为 layer 见代码: var box = new twaver.ElementBox(); var ...

  7. JavaWeb网上图书商城完整项目--12.项目所需jquery函数介绍之ajax

    jquery中使用ajax发送异步请求 下面的一个案例在input输入框失去焦点的时候发送一个异步的请求: 我们来看程序的案例: 这里要强调的是返回值最好选择是json,json对应的就是对象,Jav ...

  8. vue环境配置脚手架搭建,生命周期,钩子

    Vue项目环境搭建 """ node ~~ python:node是用c++编写用来运行js代码的 npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内 ...

  9. postman使用小结(一)

    postman可以用来做接口测试. 下面是使用的基本步骤: 1新建http请求: 2设置请求类型get/post/put/delete...: 3设置请求的url: 4设置请求的Header头部信息, ...

  10. 一不小心,我就上传了 279674 字的 MySQL 学习资料到 github 上了

    自从2019年11月我们出版了<千金良方--MySQL 性能优化金字塔法则>一书之后,持续不断有人来询问我MySQL 4 个系统字典库相关的问题,因为篇幅原因,书中并没有完整收录4个字典库 ...