■乔冰琴
BI是 Business Intelligence的缩写,翻译为商业智能,又称商业智慧或商务智能,是指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。使用BI工具进行公司盈利能力分析、营运能力分析、偿债能力分析和成长能力分析时,企业财务人员几乎不需要编写任何程序代码,仅需聚焦于数据本身的特点、数据之间的关系、数据分析的目标,就能非常方便地进行财务数据分析和可视化。
目前常见的BI工具有很多,例如:Microsoft Power BI、IBM Cognos、Oracle OBIEE、Tableau、Fine BI、Smartbi、网易有数BI等,这些BI工具有一定的共性,也各有其特性。大部分BI工具均提供数据汇集、数据清洗、数据转换、数据分析及数据可视化等功能。其中,Microsoft Power BI是微软公司推出的一整套软件和服务的集合,其基本架构包括Power BI Desktop、Power BI Service 和 Power BI Mobile三部分。Power BI Desktop 是安装在本地计算机上的软件,用户可免费使用它完成数据准备、数据建模和可视化制作。Power BI Service 功能需要用户注册,使用注册账户登录后,可将 Power BI Desktop 创建的可视化报表发布到 Power BI Service 上,实现在线创建自助式仪表板以及与他人共享报表。Power BI mobile 是运行在移动终端设备上的应用程序,利用它可随时随地在移动设备上查看Power BI报表。
本文以 Microsoft Power BI工具为例,基于其强大的数据获取、数据清洗和转换、数据分析和可视化等功能,实现自动从网易财经个股行情网站下载数据、在Power BI中快速处理数据及可视化展示数据的目标。通过此案例的实施路径探讨与分析,为广大财务与会计工作者利用BI工具进行日常财务分析提供思路与借鉴。
虽然 Microsoft Power BI包括三大组件,但如果只需获取数据、创建数据模型并进行可视化分析的话,则仅需在本地计算机上安装Power BI Desktop即可。财会人员可从微软官网上免费下载 Power BI Desktop 软件,然后按照安装向导的提示直接在本地计算机上完成安装即可。
首先根据数据分析的目标确定要获取的数据源。本次数据分析的目标是基于 Power BI Desktop 可视化展示中国十大软件上市公司连续多年的成长能力变化,因此需要获取这些公司的成长能力指标对应的数据。
网易财经个股行情板块提供了上市公司的财务报表数据以及主要财务指标分析数据,包括年报、季报等财务报表,以及基于财务报表的盈利能力分析、偿还能力分析、成长能力分析和营运能力分析等。本文将利用Power BI Desktop 工具,从网易财经个股行情采集中国十大软件上市公司的成长能力指标数据。这十大软件上市公司包括中国软件、用友网络、久其软件、浪潮软件、超图软件、宝信软件、太极股份、华宇软件、美亚柏科和浙大网新,所采集的上市公司成长能力指标数据包括:主营业务收入增长率(%)、净利润增长率(%)、净资产增长率(%)和总资产增长率(%)。
为了使用 Power BI Desktop 工具自动批量从网易财经个股行情中获取十大软件上市公司的成长能力指标数据,首先要对数据来源及特点进行分析。
在网易财经个股行情中搜索“中国软件”(股票代码600536),在搜索到的个股信息页面,找到“财务分析”下的“主要财务指标”。个股主要财务指标分三种形式提供:按报告期、按年度、按单季度。这里以按年度为例,在网页中找到“成长能力”的下载链接,将此链接对应的下载地址复制出来,如下示:
http://quotes.money.163.com/service/zycwzb_600536.html?type=year&part=cznl
用同样的方法将用友网络成长能力指标“下载数据”链接对应的下载地址复制出来,如下示:
http://quotes.money.163.com/service/zycwzb_600588.html?type=year&part=cznl
比较上面两个下载地址可以发现,不同个股成长能力指标的下载地址只有一个地方是不同的,那就是股票代码,即上面地址中加粗显示的内容(为明显起见,此处使用手动排版加粗了股票代码)。
为验证这个分析是否正确,继续把久其软件和浪潮软件的成长能力指标下载地址复制出来,如下示:
http://quotes.money.163.com/service/zycwzb_002279.html?type=year&part=cznl
http://quotes.money.163.com/service/zycwzb_600756.html?type=year&part=cznl
至此可明确各股票的成长能力指标下载地址仅是股票代码的不同,掌握了这个原理,就可利用Power BI Desktop工具实现自动批量下载十大软件上市公司的成长能力指标数据。
1.使 用 Power BI Desktop 采 集第一家公司的数据
利用 Power BI Desktop 软件从网页获取数据的方式,先从http://quotes.money.163.com/service/zycwzb_600536.html?type=year&part=cznl上抓取股票代码为600536的成长能力指标数据。为方便后续定义自动抓取函数,这里将网址分成三部分,把网址中变化的股票代码专门放在一行URL中,如图1所示。执行此步骤的抓取后,进入Power Query。
图1:采集股票代码为600536的成长能力数据
2.根据股票代码创建抓取数据的函数zycwzb
在Power Query的高级编辑器中,修改上一步采集600536成长能力数据的查询代码,将原来地址中的600536替换为变量code,从而创建从网易财经个股行情上批量抓取数据的函数zycwzb。如图2所示。其中变量code是上市公司的股票代码。
图2:创建批量抓取数据的函数
3.调用抓取数据的函数zycwzb
在 Power Query中创建表格,将十大软件上市公司股票代码存放到表格中。在该表格上调用抓取数据的函数 zycwzb,Power BI Desktop 瞬间从网易财经上抓取回所有的数据,如图3所示。
图3:Power BI Desktop抓回的数据
不管原始数据是何种形式,根据给定的股票代码抓回来的数据都全部保存在同一列中,如图4中的第二列数据所示1,因此必须对数据进行清洗。清洗前,要仔细查看和分析这些数据,弄清楚数据的特点和含义才能正确地完成清洗。
图4:未清洗的数据
每支股票的数据有5行,其中第一行是报告日期,其余各行分别是主营业务收入增长率(%)、净利润增长率(%)、净资产增长率(%)和总资产增长率(%)。同一行的不同数据之间用逗号分隔。从报告日期行可以看出,每支股票自发行以来所有年份的数据都被抓了回来,但由于每支股票发行时间不同,因此对应的数据量也不同。为方便对比这十大软件的成长能力指标,将2007年以前的数据删除掉,这样保留下来的是2008年以来的所有数据,而这十支股票都有2008年以后的数据。
由于某些数据的异常性,数据集中可能没有对应的数值显示,而是直接显示为“--”,在数据分析领域,这种情况称为缺失数据。数据缺失时要进行分析,弄清楚没有数值的原因是什么,根据原因进行相应的处理。在成长能力指标中,显示为“--”的情况,是由于前一年相关数据是负值,当前年的相关数据为正值,从而使其增长率不具可比性。为了后续的数据分析和可视化,这里统一将这种异常数据替换为-0。后续计算中将用到各成长能力指标的均值,替换为-0不会影响到均值的计算;同时,在可视化时,图示中的数值也能将0与-0标示出来,从而将正常的指标为0的数据与替换后的异常值-0区分开来。
在 Power BI Desktop 的 Power Query中对数据进行清洗,清洗后的数据共有4列,520行,如图5所示是清洗后的数据。
图5:清洗后的部分数据
在 Power BI Desktop 中, 对 清 洗好的数据集进行可视化展现。Power BI Desktop的可视化功能交互性很强,如图6所示的堆积柱形图中,横轴为报告日期,纵轴为增长率,值为所有股票各指标的平均,即平均增长率,包括:平均净利润增长率(%)、平均净资产增长率(%)、平均主营业务收入增长率(%)和平均总资产增长率(%)。图的右侧是基于股票代码构建的切片器,利用切片器可以快速实现行业龙头各项平均成长能力与某企业各项成长能力的对比,图6所示为选中切片器中所有股票代码时显示的行业龙头各项成长能力指标平均值。
还可进一步利用 Power BI Desktop对数据进行对比与分析,例如图6中的2020年平均净利润增长率为-31.42%,相比2019年的平均净利润增长率2.14%而言下降很多,而利用 Power BI Desktop 的分析功能可以自动给出这十家公司中的哪家对平均指标下降有重大影响;Power BI Desktop还可自动检查这十家公司中,哪家的相关指标对各年平均指标影响较大。总之,利用 Power BI Desktop 的交互式功能对这些成长能力指标进行各种分析,便可得到这十大软件上市公司的各类分析结果。
Power BI Desktop 是一款先进的自助式BI软件,它可以连接数百个不同的数据源,简化数据的准备工作,并生成丰富的交互式可视化报告,同时支持发布到网页或移动设备上,供企业的相关人士查看和分析数据。
本文以十大软件上市公司的成长能力可视化为例,介绍了如何利用Power BI Desktop 实现自动批量获取数据、清洗数据及可视化展示数据的方法,以此为基础,可进一步实现自动批量获取多个上市公司、多个指标、多个报告期间的数据,并自动完成数据的清洗和可视化展示。
一般专职的数据分析师或者数据科学家可能会使用Python语言、R语言,甚至是专门的数据库软件来完成数据分析和数据可视化的工作,但现实中大部分需要进行数据分析的用户并不熟悉编程。使用一些不需要懂编程或者只需要有一点程序思维的商业智能BI工具完成日常工作中的数据分析,显然是一种更有效、更便捷的方法。对于财务与会计人员来说,掌握一门强大的数据分析工具软件,助力我们满足数智时代下企业对员工信息技术水平的高标准要求,才能使我们站得更高、行得更远。