PowerBI大师财务报假

用PowerBI分析上市公司财务数据(一)

2019-10-20  本文已影响0人  gladdata

本文章演示如何使用 Power BI 搭建简单的财务分析模型,主要涉及数据获取、数据清洗、数据建模,数据可视化等四个步骤。

爱学习的你快来围观吧~

一、数据获取

数据获取方式:网站数据接口主流财经网站获取。

1)网站数据接口:使用网站数据接口的好处就是数据规范,不需要额外的清洗、加工,可以拿来就用,不过大部分数据接口可能需要付费才能使用,极少有免费。

大家有兴趣的话可以自行百度TuShare,此处不详细阐述。

2)主流财经网站:本文主要讲述如何在主流财经网站上使用Power BI获取上市公司财务数据的具体流程。

下面以网易财经为例:

分析目标网站,打开https://money.163.com/stock/,在页面找到投资工具,可以看到有个财报查询入口。如下图所示

进入“财报查询”页面后,出现财报简要信息,如下:

点击详细,则可看到标准报表格式的财务数据,通过多次切换页面元素,不难发现数据呈现与网址呈如下规律:

网址的参数有三个:一是报表类型,决定显示是资产负责表还是利润表;二是股票代码,决定显示哪家公司的数据;三是报告类别,决定呈现年报,还是季报。

2、用 Power BI 对单个页面数据进行清洗加工

打开 Power BI Desktop,点击获取数据=>选择Web=>输入网址:http://quotes.money.163.com/f10/zcfzb_603489.html

点击确定,Power BI会自动对页面进行分析,通过预览,发现table1和table2 即为我们所需要的数据。

勾选Table1和Table2,点击转换数据,然后将Table1和Table2合并,这是一般思路,不过细心的朋友可以发现,实际上有更好的方式。如下图所示:

将鼠标移到“下载数据”超链接上面,浏览器左下角显示出了访问地址

可以发现该地址与原来的地址基本相同,只需将http://quotes.money.163.com/f10/zcfzb_603489.html中的f10换成service即可。

我们并不用真正下载下来,只用将http://quotes.money.163.com/service/zcfzb_603489.html 复制到web数据源,如下:

在左上角,选择打开为CSV文档,可能有人问为什么是CSV文档,这个可以直接用下载工具下来查看,便知是什么文档。

选择CSV打开后,PQ直接对数据进行了分列,如下:

二、数据清洗

通过第一步网站的导入,完成了数据的初步获取,但为了后续分析,还需要对数据进行清洗加工。

PQ有时会自动会做一些步骤,如步骤一,选择CSV文档打开后,实际进行了两个步骤,一是打开,二是数据类型自动转换,但这个数据类型自动转换并不是我们想要的,具体为什么后面再做说明,现在我们需要后退一步:很简单,只用用鼠标单击步骤“更改的类型”前面的“X”即可删除:

移去空行:

由于中文有时会有多余空格,选择第一列,选择格式=>修整

然后选择转换=>转置

变成如下样式

我们观察一下,应该将第一行用作表头,然后第8行为多余的空行,需要删除,还有一些项目为0,用的字符—填充,也不符合数据规范。

接下来,做如下清选操作,点击将第一行用作标题

再次移去空行:

Ctrl+A 全选所有列,然后点击替换值 将—替换为0:

最后数据变成以下样式,到此,数据清洗工作已经完成。

三、构建自定义函数

通过1、2两个步骤完成了数据清洗,虽然下次可以通过刷新自动更新,但是,这仅仅是完成了对单个页面、单个表的处理,理想的状态就是输入报表类型不同的参数就自动取得各个报表,如利润表、现金流量表等;通过输入公司代码参数自动获取不同上市公司的报表。

因此,首先需要建立两个参数,一个是报表类型:SatementType,另一个是公司代码ComCode ,点击管理参数=>新建参数

如下:

再次回到查询,点击源“设置”

将URL改成高级,并按如下方式更改:

在第一个查询列表上,右击创建函数:

输入函数名getSatement

这样函数创建完成。

我们测试一下,将SatementType的值改为lrb,发现报错了:

通过检查,报错的原因是由于最后一个步骤引用了资产负债表项目,改为利润表时这个项目并不存在了,这个是用PQ数据清洗时常常出现数据兼容问题。为了规避这个问题,就需要注意在数据清洗尽量不要引用特定列的名称

于是,将最后一步改为:= Table.ReplaceValue(筛选的行1,"--","0",Replacer.ReplaceText,Table.ColumnNames(筛选的行1))

即 用 Table.ColumnNames函数自动获取当前表的列名

四、利用该自定义函数进行批量获取数据

打开证券交易交所网站, http://www.szse.cn/market/companys/company/index.html

我们得到前20家公司列表(其实我们也可以用PQ自动获得上市公司列表,方法同上),为了演示,我们直接复制,然后把数据贴过去。

点击 输入数据=>粘贴

我们删除其他列,只保留公司代码,

然后调用自定义函数如下:

确定后,弹出隐私问题提示,选择继续“忽略”,这个数秒内就完成了20家公司资产负债表数据获取。

我们选择扩展

然后全选列,点击检测数据类型

数据批量获取完成。

下面新建一个度量值 :

来简单看下powerbi在可视化方面的快捷便利。

通过简单设置即可以生成如下图表:

上图展示了04-19年这20家上市公司资产负债率的变化,通过切换公司代码,可以快速查看某家公司的情况。如查看000007公司情况。

至此,可以发现Power BI模型一旦建成,后续工作将十分便利,这种数据、图表交互式体验比直接到网站查询或是查看EXCEL表格更能发现数据背后的问题;同时也可完全根据自己对数据的理解构成自己专属的财务分析模型。(后续将详细讲解如何构建财务分析模型)

关注公众号 PowerBI大师,获得更多学习资源

上一篇下一篇

猜你喜欢

热点阅读