■喬冰琴
BI是 Business Intelligence的縮寫,翻譯為商業(yè)智能,又稱商業(yè)智慧或商務智能,是指用現(xiàn)代數(shù)據(jù)倉庫技術(shù)、線上分析處理技術(shù)、數(shù)據(jù)挖掘和數(shù)據(jù)展現(xiàn)技術(shù)進行數(shù)據(jù)分析以實現(xiàn)商業(yè)價值。使用BI工具進行公司盈利能力分析、營運能力分析、償債能力分析和成長能力分析時,企業(yè)財務人員幾乎不需要編寫任何程序代碼,僅需聚焦于數(shù)據(jù)本身的特點、數(shù)據(jù)之間的關(guān)系、數(shù)據(jù)分析的目標,就能非常方便地進行財務數(shù)據(jù)分析和可視化。
目前常見的BI工具有很多,例如:Microsoft Power BI、IBM Cognos、Oracle OBIEE、Tableau、Fine BI、Smartbi、網(wǎng)易有數(shù)BI等,這些BI工具有一定的共性,也各有其特性。大部分BI工具均提供數(shù)據(jù)匯集、數(shù)據(jù)清洗、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)分析及數(shù)據(jù)可視化等功能。其中,Microsoft Power BI是微軟公司推出的一整套軟件和服務的集合,其基本架構(gòu)包括Power BI Desktop、Power BI Service 和 Power BI Mobile三部分。Power BI Desktop 是安裝在本地計算機上的軟件,用戶可免費使用它完成數(shù)據(jù)準備、數(shù)據(jù)建模和可視化制作。Power BI Service 功能需要用戶注冊,使用注冊賬戶登錄后,可將 Power BI Desktop 創(chuàng)建的可視化報表發(fā)布到 Power BI Service 上,實現(xiàn)在線創(chuàng)建自助式儀表板以及與他人共享報表。Power BI mobile 是運行在移動終端設備上的應用程序,利用它可隨時隨地在移動設備上查看Power BI報表。
本文以 Microsoft Power BI工具為例,基于其強大的數(shù)據(jù)獲取、數(shù)據(jù)清洗和轉(zhuǎn)換、數(shù)據(jù)分析和可視化等功能,實現(xiàn)自動從網(wǎng)易財經(jīng)個股行情網(wǎng)站下載數(shù)據(jù)、在Power BI中快速處理數(shù)據(jù)及可視化展示數(shù)據(jù)的目標。通過此案例的實施路徑探討與分析,為廣大財務與會計工作者利用BI工具進行日常財務分析提供思路與借鑒。
雖然 Microsoft Power BI包括三大組件,但如果只需獲取數(shù)據(jù)、創(chuàng)建數(shù)據(jù)模型并進行可視化分析的話,則僅需在本地計算機上安裝Power BI Desktop即可。財會人員可從微軟官網(wǎng)上免費下載 Power BI Desktop 軟件,然后按照安裝向?qū)У奶崾局苯釉诒镜赜嬎銠C上完成安裝即可。
首先根據(jù)數(shù)據(jù)分析的目標確定要獲取的數(shù)據(jù)源。本次數(shù)據(jù)分析的目標是基于 Power BI Desktop 可視化展示中國十大軟件上市公司連續(xù)多年的成長能力變化,因此需要獲取這些公司的成長能力指標對應的數(shù)據(jù)。
網(wǎng)易財經(jīng)個股行情板塊提供了上市公司的財務報表數(shù)據(jù)以及主要財務指標分析數(shù)據(jù),包括年報、季報等財務報表,以及基于財務報表的盈利能力分析、償還能力分析、成長能力分析和營運能力分析等。本文將利用Power BI Desktop 工具,從網(wǎng)易財經(jīng)個股行情采集中國十大軟件上市公司的成長能力指標數(shù)據(jù)。這十大軟件上市公司包括中國軟件、用友網(wǎng)絡、久其軟件、浪潮軟件、超圖軟件、寶信軟件、太極股份、華宇軟件、美亞柏科和浙大網(wǎng)新,所采集的上市公司成長能力指標數(shù)據(jù)包括:主營業(yè)務收入增長率(%)、凈利潤增長率(%)、凈資產(chǎn)增長率(%)和總資產(chǎn)增長率(%)。
為了使用 Power BI Desktop 工具自動批量從網(wǎng)易財經(jīng)個股行情中獲取十大軟件上市公司的成長能力指標數(shù)據(jù),首先要對數(shù)據(jù)來源及特點進行分析。
在網(wǎng)易財經(jīng)個股行情中搜索“中國軟件”(股票代碼600536),在搜索到的個股信息頁面,找到“財務分析”下的“主要財務指標”。個股主要財務指標分三種形式提供:按報告期、按年度、按單季度。這里以按年度為例,在網(wǎng)頁中找到“成長能力”的下載鏈接,將此鏈接對應的下載地址復制出來,如下示:
http://quotes.money.163.com/service/zycwzb_600536.html?type=year&part=cznl
用同樣的方法將用友網(wǎng)絡成長能力指標“下載數(shù)據(jù)”鏈接對應的下載地址復制出來,如下示:
http://quotes.money.163.com/service/zycwzb_600588.html?type=year&part=cznl
比較上面兩個下載地址可以發(fā)現(xiàn),不同個股成長能力指標的下載地址只有一個地方是不同的,那就是股票代碼,即上面地址中加粗顯示的內(nèi)容(為明顯起見,此處使用手動排版加粗了股票代碼)。
為驗證這個分析是否正確,繼續(xù)把久其軟件和浪潮軟件的成長能力指標下載地址復制出來,如下示:
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工具實現(xiàn)自動批量下載十大軟件上市公司的成長能力指標數(shù)據(jù)。
1.使 用 Power BI Desktop 采 集第一家公司的數(shù)據(jù)
利用 Power BI Desktop 軟件從網(wǎng)頁獲取數(shù)據(jù)的方式,先從http://quotes.money.163.com/service/zycwzb_600536.html?type=year&part=cznl上抓取股票代碼為600536的成長能力指標數(shù)據(jù)。為方便后續(xù)定義自動抓取函數(shù),這里將網(wǎng)址分成三部分,把網(wǎng)址中變化的股票代碼專門放在一行URL中,如圖1所示。執(zhí)行此步驟的抓取后,進入Power Query。
圖1:采集股票代碼為600536的成長能力數(shù)據(jù)
2.根據(jù)股票代碼創(chuàng)建抓取數(shù)據(jù)的函數(shù)zycwzb
在Power Query的高級編輯器中,修改上一步采集600536成長能力數(shù)據(jù)的查詢代碼,將原來地址中的600536替換為變量code,從而創(chuàng)建從網(wǎng)易財經(jīng)個股行情上批量抓取數(shù)據(jù)的函數(shù)zycwzb。如圖2所示。其中變量code是上市公司的股票代碼。
圖2:創(chuàng)建批量抓取數(shù)據(jù)的函數(shù)
3.調(diào)用抓取數(shù)據(jù)的函數(shù)zycwzb
在 Power Query中創(chuàng)建表格,將十大軟件上市公司股票代碼存放到表格中。在該表格上調(diào)用抓取數(shù)據(jù)的函數(shù) zycwzb,Power BI Desktop 瞬間從網(wǎng)易財經(jīng)上抓取回所有的數(shù)據(jù),如圖3所示。
圖3:Power BI Desktop抓回的數(shù)據(jù)
不管原始數(shù)據(jù)是何種形式,根據(jù)給定的股票代碼抓回來的數(shù)據(jù)都全部保存在同一列中,如圖4中的第二列數(shù)據(jù)所示1,因此必須對數(shù)據(jù)進行清洗。清洗前,要仔細查看和分析這些數(shù)據(jù),弄清楚數(shù)據(jù)的特點和含義才能正確地完成清洗。
圖4:未清洗的數(shù)據(jù)
每支股票的數(shù)據(jù)有5行,其中第一行是報告日期,其余各行分別是主營業(yè)務收入增長率(%)、凈利潤增長率(%)、凈資產(chǎn)增長率(%)和總資產(chǎn)增長率(%)。同一行的不同數(shù)據(jù)之間用逗號分隔。從報告日期行可以看出,每支股票自發(fā)行以來所有年份的數(shù)據(jù)都被抓了回來,但由于每支股票發(fā)行時間不同,因此對應的數(shù)據(jù)量也不同。為方便對比這十大軟件的成長能力指標,將2007年以前的數(shù)據(jù)刪除掉,這樣保留下來的是2008年以來的所有數(shù)據(jù),而這十支股票都有2008年以后的數(shù)據(jù)。
由于某些數(shù)據(jù)的異常性,數(shù)據(jù)集中可能沒有對應的數(shù)值顯示,而是直接顯示為“--”,在數(shù)據(jù)分析領(lǐng)域,這種情況稱為缺失數(shù)據(jù)。數(shù)據(jù)缺失時要進行分析,弄清楚沒有數(shù)值的原因是什么,根據(jù)原因進行相應的處理。在成長能力指標中,顯示為“--”的情況,是由于前一年相關(guān)數(shù)據(jù)是負值,當前年的相關(guān)數(shù)據(jù)為正值,從而使其增長率不具可比性。為了后續(xù)的數(shù)據(jù)分析和可視化,這里統(tǒng)一將這種異常數(shù)據(jù)替換為-0。后續(xù)計算中將用到各成長能力指標的均值,替換為-0不會影響到均值的計算;同時,在可視化時,圖示中的數(shù)值也能將0與-0標示出來,從而將正常的指標為0的數(shù)據(jù)與替換后的異常值-0區(qū)分開來。
在 Power BI Desktop 的 Power Query中對數(shù)據(jù)進行清洗,清洗后的數(shù)據(jù)共有4列,520行,如圖5所示是清洗后的數(shù)據(jù)。
圖5:清洗后的部分數(shù)據(jù)
在 Power BI Desktop 中, 對 清 洗好的數(shù)據(jù)集進行可視化展現(xiàn)。Power BI Desktop的可視化功能交互性很強,如圖6所示的堆積柱形圖中,橫軸為報告日期,縱軸為增長率,值為所有股票各指標的平均,即平均增長率,包括:平均凈利潤增長率(%)、平均凈資產(chǎn)增長率(%)、平均主營業(yè)務收入增長率(%)和平均總資產(chǎn)增長率(%)。圖的右側(cè)是基于股票代碼構(gòu)建的切片器,利用切片器可以快速實現(xiàn)行業(yè)龍頭各項平均成長能力與某企業(yè)各項成長能力的對比,圖6所示為選中切片器中所有股票代碼時顯示的行業(yè)龍頭各項成長能力指標平均值。
還可進一步利用 Power BI Desktop對數(shù)據(jù)進行對比與分析,例如圖6中的2020年平均凈利潤增長率為-31.42%,相比2019年的平均凈利潤增長率2.14%而言下降很多,而利用 Power BI Desktop 的分析功能可以自動給出這十家公司中的哪家對平均指標下降有重大影響;Power BI Desktop還可自動檢查這十家公司中,哪家的相關(guān)指標對各年平均指標影響較大??傊?,利用 Power BI Desktop 的交互式功能對這些成長能力指標進行各種分析,便可得到這十大軟件上市公司的各類分析結(jié)果。
Power BI Desktop 是一款先進的自助式BI軟件,它可以連接數(shù)百個不同的數(shù)據(jù)源,簡化數(shù)據(jù)的準備工作,并生成豐富的交互式可視化報告,同時支持發(fā)布到網(wǎng)頁或移動設備上,供企業(yè)的相關(guān)人士查看和分析數(shù)據(jù)。
本文以十大軟件上市公司的成長能力可視化為例,介紹了如何利用Power BI Desktop 實現(xiàn)自動批量獲取數(shù)據(jù)、清洗數(shù)據(jù)及可視化展示數(shù)據(jù)的方法,以此為基礎(chǔ),可進一步實現(xiàn)自動批量獲取多個上市公司、多個指標、多個報告期間的數(shù)據(jù),并自動完成數(shù)據(jù)的清洗和可視化展示。
一般專職的數(shù)據(jù)分析師或者數(shù)據(jù)科學家可能會使用Python語言、R語言,甚至是專門的數(shù)據(jù)庫軟件來完成數(shù)據(jù)分析和數(shù)據(jù)可視化的工作,但現(xiàn)實中大部分需要進行數(shù)據(jù)分析的用戶并不熟悉編程。使用一些不需要懂編程或者只需要有一點程序思維的商業(yè)智能BI工具完成日常工作中的數(shù)據(jù)分析,顯然是一種更有效、更便捷的方法。對于財務與會計人員來說,掌握一門強大的數(shù)據(jù)分析工具軟件,助力我們滿足數(shù)智時代下企業(yè)對員工信息技術(shù)水平的高標準要求,才能使我們站得更高、行得更遠。