Power BI财务报表分析:数据准备篇

PowerBI财务报表分析系列之:

数据准备篇

数据分析第一步,需要有数据,然后才能开始后续的一系列分析过程,PowerBI财务报表分析也不例外,第一篇,先来介绍报表数据的获取,以及将获取的数据整理成适合分析的样式。

在这个分析示例中,用的是公开的上市公司数据,所以数据获取,主要的工作就是利用PowerBI来批量爬取网页数据。

如果你的分析对象是本公司的财务报表,会更加简便,可以跳过网页抓取数据的过程,直接进行整理数据就好了,不过学会了利用PowerBI抓取网页数据的技能,以后总能用的上。

下面进入正文。


这个PowerBI财务报表分析报告,用的数据是2010年至2019年,5个上市公司的资产负债表、利润表和现金流量表数据。

数据来源于新浪财经,先选取一个公司,比如万科A,点击财务报表>资产负债表>2019,出现在眼前的网页是这样的:

2019年四个季度的资产负债表就同时展现出来了,并且数据结构非常好,可以为后期的整理省去很多工作。

然后查看这个网址结构:

https://money.finance.sina.com.cn/corp/go.php/vFD_BalanceSheet/stockid/000002/ctrl/2019/displaytype/4.phtml

猜测其中的BalanceSheet、000002、2019就是分别表示资产负债表、万科的股票代码和年度,可以换个公司和年度来验证,比如五粮液的2018年利润表,网址为:

http://money.finance.sina.com.cn/corp/go.php/vFD_ProfitStatement/stockid/000858/ctrl/2018/displaytype/4.phtml

和猜测的完全一致,那么就可以利用PowerBI,来批量来抓取。

抓取多公司、多年度、多个报表的整体思路:

1、先抓取一个公司一年的一个报表;
2、利用第1步的查询创建自定义函数;
3、构建参数列表;
4,调用自定义函数,批量抓取数据。

下面进入具体操作步骤。

1,利用PowerBI抓取一个公司、一年的报表

以上面第一个网址:2019年万科的资产负债表为例,点击获取数据>从web,将网址输入进去,在弹出的导航器中,会看到PowerBI识别出来很多表格,因为这一页本来就是有很多组数据,分别点击查看,会看到表17的结构最为规范,

选中这个表,然后加载数据,进入Power Query编辑器。

首先观察这个表的数据,空值都显示为"--",首先将它替换为0,然后将第一行用作标题:

如果对PowerQuery的基础操作还不熟悉,建议先看看这篇文章:

数据清洗中最常使用的十三招

这是一个二维结构表,为便于之后的分析,将其转换为一维表:选中第一列,点击逆透视>逆透视其他列,就变成了一维表:

不了解一维表的可以参考:关于一维表,你想知道的都在这里了

万科2019年的资产负债表提取并整理完毕。

其实这一步到这里就可以结束了。不过在这个模型中,为了简化,我将现金流量表的间接法附加数据删除,只保留了直接法的现金流量表项目,因此,多做了现金流量表的查询。

所以提取现金流量表的时候,在上面资产负债表操作的基础上,增加了删除底部行的步骤,其他步骤都相同(如果你需要使用现金补充资料,可以不单独处理,只需要获取一个资产负债表就行)。

2,建立自定义函数

在PowerBI中,操作的每一个步骤都会自动记录下来,数据源更新后,刷新就可以自动完成所有的操作步骤。

更进一步的,还可以将这个查询函数化,进而应用于相似的其他查询,这就用到了PowerQuery的自定义函数(如果你还不清楚什么是自定义函数,可以先看看:认识Power Query的自定义函数)。

自定义函数并不是都需要自己从零开始一点点写M代码,还有更加简便的方法。

第1步完成以后,右键该查询的名称,点击"创建函数"。

输入函数名,这里我按报表的类型,定义该函数为balancesheet。

然后选中这个自定义函数,点击进入高级编辑器,将前面几行代码调整为下图所显示的内容:

就是修改一下获取数据网址,将网址中的:报表类型、公司代码、年度分别用:type、code、year表示,并将这三个变量作为自定义函数的三个参数。

然后这个自定义函数就建好了,

在这个窗口,任意输入三个有效参数,就能提取某个上市公司某年度的一个报表。

不过我们建立自定义函数的目的是为了批量获取数据,所以在这个窗口中不需要操作。

同样的方式,为现金流量表也生成一个自定义函数,命名为cashflow。

3,构建参数列表

针对三个参数,我们需要构建这三个参数的笛卡尔积,来得到每个公司的2010年-2019年的三大报表数据。

为了便于后期的修改和维护,我们先建立三个单独的参数表。

在PowerQuery编辑器中,直接点击输入数据,将需要分析的公司名称和股票代码录进去:

就生成了一个公司名称表,同样的方式,生成年度表和报表类型表。

接下来要做的是,生成这三个表的笛卡尔积,也就是公司代码、年度、报表类型的任意组合。

在PowerQuery中,生成笛卡尔积很简单,先为这三个表都添加一列,比如1,然后合并查询。

先合并查询报表类型和年度:

得到的结果如下:

这就是报表类型和年度的任何组合,然后继续将这个表与公司名称表合并查询,就得到了公司代码、年度、报表类型的任意组合表。

4、调用自定义函数

在第3步生成的表的基础上,添加自定义列,

这个M代码的意思是,如果报表类型是CashFlow(现金流量表),就调用自定义函数:cashflow,否者调用balancesheet,他们的参数相同(如果只有一个自定义函数,就不需要用IF做判断,直接调用就行)。

然后就抓取到了这5家公司10年的三大报表数据:

并且,批量抓取的报表数据,已经是我们需要的一维表数据,因为第一步的操作,就含有二维转一维的步骤,后面在调用自定义函数的时候,都自动做了相同的操作。

当然你也可以用这种方法,一次性抓取上百家公司的数据,但速度会非常慢,所以建议只抓取需要的公司、最近年份的数据就可以了。

至此,三大表的数据抓取完成,主要就是利用PowerQuery的界面操作,以及简单的几个代码修改,即使没有任何基础,照着上面的步骤,也可以快速完成。

在这个财务分析示例中,其中有一页是公司概况,也是通过网页抓取的公司信息:

数据来源于下面三个网页:

公司公告https://vip.stock.finance.sina.com.cn/corp/go.php/vCB_AllBulletin/stockid/000002.phtml
公司简介
http://vip.stock.finance.sina.com.cn/corp/go.php/vCI_CorpInfo/stockid/000002.phtml
历史行情
http://q.stock.sohu.com/cn/000002/lshq.shtml

这些数据的抓取和上面财报数据抓取步骤完全一样,不过更加简单,因为只有一个参数:公司代码,大家可以自己动手练习。


通过以上的介绍,你应该可以轻松从网页中抓取财报数据,需要相关的其他数据时,你都可以从网上搜索资源,然后批量抓取。

正如开头所说,如果你要做的是自己公司的内部财报分析,你可以忽略掉本文抓取数据的步骤,而直接导入现成的财务报表就行了,不过为了后续分析的需要,建议你仍应该将报表数据整理成一维表的结构。

数据整理好并上载,就可以进行下一步的数据建模。

成为PowerBI星球会员,获取财务报表分析模板
(0)

相关推荐

  • PQ-综合实战:格式化表单转数据明细之3:可配置的映射关系,你的数据你做主

    [本文内容需要前期基础知识准备较为充分,但是,当你充分理解并完成了本文的内容,这将变成一个通用的可配置的格式化表单数据转换工具,以后只需要根据实际表单的格式情况,做好映射表的配置,即可实现相应表单数据 ...

  • 用PowerBI制作上市公司财务报表分析模型

    我花了两周时间对采悟老师的上市公司财务报表分析模型进行了像素级的复刻,这个过程中学到了非常多的PowerBI建模及可视化设计的技巧,受益良多. PowerBI星球财务分析模型: 我将分几篇文章,在这里 ...

  • Power BI财务报表分析:预告篇

    平时后台以及知识星球中咨询我的问题中,有不少是PowerBI在财务上的应用问题,并且PowerBI可视化大赛的参赛和获奖作品,也有很多是财务方面的应用,通过这些可以看出,在PowerBI的用户群体中, ...

  • Power BI财务报表分析:可视化篇

    PowerBI财务报表分析系列之: 可视化篇 通过可视化,让枯燥的报表数字变得更直观.更易于理解.更快速的传递关键信息. 通过上面的视频以及前面几篇文章的介绍你应该也看到了,这个财务分析报告中,用的基 ...

  • Power BI财务报表分析:数据建模篇

    PowerBI财务报表分析系列之: 数据建模篇 我们面对的源数据,往往并不是只有一张表,而这些不同的表,需要协同配合才能更有效的使用,多表的协同配合依靠表与表之间的逻辑关系. 根据分析的需求,在多个表 ...

  • Power BI财务报表分析:报表构造篇

    PowerBI财务报表分析系列之: 报表构造篇 PowerBI财务报表分析,一个主要的模块是在PowerBI报告中展示三大报表:资产负债表.利润表和现金流量表,目前并没有一个专门的财务报表可视化对象, ...

  • Power BI财务报表分析:指标计算篇

    PowerBI财务报表分析系列之: 指标计算篇 财务报表分析,涉及到众多的财务指标计算,在PowerBI中利用度量值,计算出的不仅仅是一个个静态的指标数据,并且还可以和切片器配合,快速的完成不同公司. ...

  • Power BI财务报表分析:报告设计篇

    PowerBI财务报表分析系列之: 报告设计篇 单个的可视化对象的制作很简单,不过一页报表不止一个可视化对象所组成,很多报告也不止一页报表,如何将多个可视化对象.多个页面组合到一起,形成一个整体.统一 ...

  • Power BI里的数据透视表怎么长这样?肿么办?

    小勤:Power BI里这个数据透视表怎么设置啊?我放了三个维度到行里,可是怎么只能显示一个维度? 大海:因为Power BI默认可以按维度进行逐层钻取的啊.比如你想看下一层"货主城市&qu ...

  • 藏!Power BI 基础文章汇总20+篇

    为后续Power BI文章/视频的发布做准备,先梳理汇总前期关于Power BI的系列文章及链接如下,供大家参考:标题分类1个案例体会Power BI的数据分析过程入门准备Power BI是什么?入门 ...

  • Power BI业务分析:TOP N%客户贡献

    在业务分析中,经常需要对客户进行排名细分,比如分析排名前20%的客户的贡献是多少?这其实也是一种帕累托分析,利用PowerBI可以轻松计算出结果. 以PowerBI星球案例数据为例,计算销售排名前20 ...