视频加载中...
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星球会员,获取财务报表剖析模板
-精彩推举-
Power BI财务运用:上市公司财务报表剖析
剖析报告还不会用动态剖析?利用Power BI参数轻松实现
年终考察,送你10个炫酷的KPI可视化报表!