- 智能財務報表分析:應用技巧與案例解析
- 張金昌 張英 董娜
- 6659字
- 2022-01-21 13:53:52
2.3 智能財務分析軟件開發
2.3.1 用Excel開發智能財務分析軟件
Excel作為當前比較流行的電子數據處理軟件,功能比較強大。利用它可以定義準確計算公式和因素窮盡辦法,實現財務分析的智能化。通過Excel的函數設置功能,可以設置和引用Excel文件中的各種原始數據,定義新的計算公式,并使之自動生成計算結果。Excel還具有“智能重算”功能,當原始引用的單元格數據變動時,Excel會自動基于新數據更新計算結果。通過Excel也可以定義各種圖表。當原始數據變更時,所定義的分析圖表會自動更新。通過Excel提供的“AND”“FALSE”“IF”“NOT”“OR”“TRUE”邏輯判斷函數,可以定義各種基于計算的邏輯判斷,并生成判斷文字。通過Excel的“CONCATENATE”函數,可以將邏輯判斷生成的文字,組合成一段比較復雜的文字描述和文字分析結論。借助于Excel軟件,完全能夠實現智能財務分析,讓計算軟件生成財務分析報告。
1.用Excel定義可自動、生成、判斷的圖表和文字
在Excel文件中建立原始數據表,如資產負債表、利潤表及現金流量表,并使原始數據表中有被分析企業不同時期的數據。
建立新的“智能財務分析”Sheet頁,在其上定義要分析的圖、表、文字及報告模板,見圖2-1。

圖2-1 智能財務分析報告模板
在定義自動生成表時,原始指標和數據可以直接從原始表中引用。非原始數據需要通過在單元格中定義計算公式或計算函數,通過對原始數據的計算獲得。公式或函數定義好之后,系統會自動計算并展示計算結果。如圖2-2中的存貨比率,可以通過資產負債表中的平均存貨與平均流動資產之比獲得,在單元格中輸入“=((資產負債表!C17+資產負債表!D17)/2)/((資產負債表!C25+資產負債表!D25)/2)”之后,Excel軟件會自動計算生成計算結果。

圖2-2 自動計算并生成財務分析指標表
在定義自動生成圖時,可以引用原始表數據,也可以引用智能財務分析sheet頁定義的新指標和數據。如圖2-3,在定義自動計算生成“近三年公司利潤構成情況”圖時,直接引用“智能財務分析”頁新定義的指標。

圖2-3 自動生成的分析圖和分析文字
定義自動生成文字相對復雜,主要通過使用函數“CONCATENATE”實現。以圖2-3為例,在單元格中可以定義如下的表達式
=CONCATENATE(“從公司利潤構成來看,”,D4,“年公司實現利潤的”,ROUND(E197?100,2),“%來自于主營業務,”,ROUND(E199?100,2),“%來自于投資收益,”,ROUND(E200?100,2),“%來自于營業外收支。”,IF(E197>0.5,“主營業務在公司占非常重要的位置。”,“”),IF(E199>0.5,“對外投資在公司占非常重要的位置。”,“”))
這個函數由兩部分文字組成:一部分是直接描述構成利潤的各個部分的占比,將相關數值讀取并用文字描述出來;另外一部分是判斷在構成利潤的科目中,哪個科目占實現利潤的比例超過了50%,并根據超過50%的科目不同,輸出不同的文字。在第二部分文字中使用了“IF”邏輯判斷語句。
將需要自動生成的各種圖、表、文字定義好之后,能夠自動生成財務分析報告的Excel智能財務分析模型就完成了。在進行不同企業的財務智能分析時,只需要將前面的原始報表數據替換就行了。本例只需要替換“成本構成表”“資產負債表”“利潤表”“現金流量表”中的數據。替換之后,“智能財務分析”頁就可以看到自動生成的新的企業或新的時期的財務分析報告了。將替換之后的文件另存為一個新的企業或新的時期的智能分析模板,以后就可以重復使用。
2.Excel軟件實現智能財務分析存在的主要問題
Excel存在以下難以克服的缺陷:
(1)Excel的智能財務分析模板只能用一個文件分析一個企業一個時期的財務狀況,不能同時進行不同企業、不同時期的智能財務分析。要進行不同企業的智能財務分析,必須建立新的文件,使用新的文件。
(2)Excel建立的智能分析功能在不同Excel文件之間整合比較困難,難以將在不同文件針對不同企業所建立的分析模型整合到一個文件,供不同企業使用。要實現分析模型的整合,必須將模型建立在一個文件中,在其他企業分析使用時必須將這個文件另存為新的供其他企業使用的文件。
(3)不僅不同企業的智能分析需要建立不同的Excel文件(在同一文件中會導致查詢混亂),而且同一企業的不同時期的智能分析,也需要建立不同的Excel文件(建立在同一文件中會導致Sheet頁過多)。這導致歷史數據的積累、管理、查看比較困難。
(4)進行較為復雜的分析需要調用多張報表中的數據,使用多個分析模型。這常常導致數據引用錯誤和混亂。
(5)由于定義的模型只有在查看單元格時才可見,導致在多指標、多層次計算時,計算公式和計算結果數據的先后順序比較復雜,容易產生錯誤。
(6)歷史數據的保存、查看、維護、更新使用均比較困難。
2.3.2 用軟件編程語言開發智能分析軟件
使用軟件開發程序編寫語言開發智能財務分析軟件,可以按照用戶需求編寫出各種各樣、各種類型的軟件。從目前軟件技術發展來看,只要人類能夠想到、能夠設計出來的分析需求,計算機軟件編寫程序都能夠實現,因此它能夠完全克服由Excel軟件編寫的智能財務分析模型所帶來的各種問題和缺陷。當前比較流行的軟件編寫程序是Java和Python兩種語言。開發環境舉例見表2-1。
表2-1 軟件開發環境舉例

1.J2EE平臺
J2EE是第二代企業級Java語言開發平臺(Java 2 Enterprise Edition,簡稱J2EE)。Java語言是一門面向對象編程語言,它吸收了C++語言的各種優點,摒棄了C++里難以理解的多繼承、指針等概念,具有功能強大和簡單易用兩個特征。Java具有簡單、面向對象、分布式、健壯性、安全性、平臺獨立與可移植性、多線程、動態性等特點。使用Java語言,可以編寫桌面應用程序、互聯網云端應用程序、分布式系統和嵌入式系統應用程序。采用J2EE平臺開發,可以保證網絡發展的一致性,增強網絡的兼容性,適用不同設備、不同應用、不同操作系統,整個網絡從設計、技術和設備的選擇,支持國際標準的網絡接口和協議,以提供高度的開放性。
(1)以J2EE為核心的技術線路。
J2EE是一種利用Java 2平臺來簡化企業解決方案的開發、部署和管理相關復雜問題的體系結構。J2EE技術的基礎是核心Java平臺或Java2平臺的標準版。J2EE不僅鞏固了標準版中的許多優點,如“編寫一次、隨處運行”的特性、方便存取數據庫的JDBC API、CORBA技術以及能夠在Internet應用中保護數據的安全模式等,而且還提供了對EJB(Enterprise JavaBeans)、Java Servlet API、JSP(Java Server Pages)以及XML技術的全面支持。其最終目的就是成為一個能夠使企業開發者大幅縮短投放市場時間的體系結構。
J2EE體系結構提供中間層集成框架,用來滿足無須太多費用而又需要強可用性、高可靠性及可擴展性的應用的需求。通過提供統一的開發平臺,J2EE降低了開發多層應用的費用和復雜性,同時提供對現有應用程序集成的強有力支持,完全支持Enterprise JavaBeans,有良好的向導支持打包和部署應用,添加目錄支持,增強了安全機制,提高了性能。
(2)J2EE的優勢。
J2EE為搭建具有可伸縮性、靈活性、易維護性的商務系統提供了良好機制。
1)保留現存的IT資產。由于企業必須適應新的商業需求,所以利用已有的企業信息系統,而不是重新制訂全盤方案就變得很重要。這樣,一個以漸進的(而不是激進的、全盤否定的)、建立在已有系統之上的服務器端平臺機制是公司所需要的。J2EE架構可以充分利用用戶原有的投資,如一些公司使用的BEA Tuxedo、IBM CICS、IBM Encina、Inprise VisiBroker及Netscape Application Server。這之所以成為可能是因為J2EE擁有廣泛的業界支持和一些重要的“企業計算”領域供應商的參與。每一個供應商都對現有的客戶提供了不用廢棄已有投資,就可進入可移植的J2EE領域的升級途徑。由于基于J2EE平臺的產品幾乎能夠在任何操作系統和硬件配置上運行,現有的操作系統和硬件也能被保留使用。
2)高效的開發。J2EE允許公司把一些通用的、很煩瑣的服務端任務交給中間件供應商去完成,這樣開發人員可以把精力集中在如何創建商業邏輯上,相應地縮短了開發時間。
高級中間件供應商提供以下復雜的中間件服務:
狀態管理服務——開發人員寫更少的代碼,不用關心如何管理狀態,這樣能夠更快地完成程序開發。
持續性服務——開發人員不用對數據訪問邏輯進行編碼就能編寫應用程序,能生成更輕巧、與數據庫無關的應用程序,這種應用程序更易于開發與維護。
分布式共享數據對象CACHE服務——開發人員可編制高性能的系統,極大地提高整體部署的伸縮性。
3)支持異構環境。J2EE能夠開發部署在異構環境中的可移植程序。基于J2EE的應用程序不依賴任何特定操作系統、中間件及硬件,因此設計合理的基于J2EE的程序只需開發一次就可部署到各種平臺。這在典型的異構企業計算環境中十分關鍵。J2EE標準也允許客戶訂購與J2EE兼容的第三方現成的組件,把它們部署到異構環境中,節省了由自己制定整個方案所需的費用。
4)可伸縮性。企業必須選擇一種服務器端平臺,它能提供極佳的可伸縮性,以滿足那些在它們系統上進行商業運作的大批新客戶。基于J2EE平臺的應用程序可被部署到各種操作系統上。例如,可被部署到高端UNIX與大型機系統,這種系統單機可支持64~256個處理器(這是NT服務器所望塵莫及的)。J2EE領域的供應商提供了更為廣泛的負載平衡策略,能消除系統中的瓶頸,允許多臺服務器集成部署。這種部署可達數千個處理器,實現可高度伸縮的系統,滿足未來商業應用的需要。
5)穩定的可用性。一個服務器端平臺必須能全天候運轉以滿足公司客戶、合作伙伴的需要。因為Internet是全球化的、無處不在的,即使在夜間按計劃停機也可能造成嚴重損失。若是意外停機,那會有災難性后果。J2EE部署到可靠的操作環境中,支持長期的可用性。一些J2EE部署在Windows環境中,客戶也可選擇健壯性能更好的操作系統如Sun Solaris、IBM OS/390。最健壯的操作系統可達到99.999%的可用性或每年只需5分鐘停機時間。這是實時性很強商業系統理想的選擇。
(3)J2EE的四層模型。
J2EE使用多層的分布式應用模型,應用邏輯按功能劃分為組件,各個應用組件根據其所在的層,分布在不同的機器上。事實上,J2EE設計的初衷正是為了解決兩層模式(Client/Server)的弊端。在傳統模式中,客戶端擔當了過多的角色而顯得臃腫。在這種模式中,第一次部署的時候比較容易,但難于升級或改進,可伸展性也不理想,而且經常基于某種專有的協議是某種數據庫協議,使得重用業務邏輯和界面邏輯非常困難。現在J2EE的多層企業級應用模型將兩層化模型中的不同層面切分成許多層。一個多層化應用能夠為不同的每種服務提供一個獨立的層。圖2-4顯示了J2EE典型的四層結構:運行在客戶端機器上的客戶層組件;運行在J2EE服務器上的Web層組件;運行在J2EE服務器上的業務邏輯層組件;運行在數據庫服務器上的企業信息系統(Enterprise Information System,EIS)層軟件。

圖2-4 J2EE四層模型
2.Python語言
Python是一種解釋型腳本語言,主要應用于互聯網語言Web和Internet應用開發、科學計算和統計應用軟件開發、人工智能系統開發、前端桌面界面開發、軟件系統開發、后端服務平臺開發、網絡爬蟲功能開發。它具有以下特點:
(1)可移植性。Python是開源軟件系統,是一種跨平臺的編程語言。它已經被移植應用到不同的操作系統平臺之上,包括專業機構常用的Linux平臺、一般用戶使用的Windows平臺以及FreeBSD、Solaris等專用平臺,它還可以應用到平板、手機等移動終端平臺如PocketPC、Symbian以及Google基于Linux開發的Android上。
(2)豐富強大的庫。Python自帶包含解決各種問題的類庫。無論實現什么功能,都有現成的類庫可以使用。由于是開源軟件,在標準庫中沒有提供功能,但一般能夠在開源項目庫中可以找到。合理使用Python自帶的類庫和開源項目提供的類庫,能夠快速地實現功能,滿足業務需求。
(3)可擴展性。Python的可擴展性體現在模塊化的類庫中,這種類庫覆蓋了文件輸入輸出I/O、用戶交互界面GUI、網絡編程、數據庫訪問、文本操作等絕大部分應用場景。其他語言,如C語言或C++ 語言編寫的代碼能夠在Python程序中直接使用。
目前人工智能中機器學習功能的開發大量運用Python語言。
3.智能分析軟件的技術架構
從技術架構來看,迄今為止財務信息化軟件經歷了3個發展階段:第一階段是DOS平臺下的財務核算軟件;第二階段是Windows平臺下的核算軟件,雖然由DOS向Windows轉化,但其管理實質沒有多大改變,從字符界面過渡到圖形界面,為用戶提供了更易用、更人性化的服務;第三階段是基于Internet/Intranet平臺的管理型軟件和客戶端/服務器結構的網絡版核算軟件并存的時期。進入21世紀,主流軟件技術已經從過去的客戶端/服務器(C/S)結構轉化為瀏覽器/服務器(B/S)結構。比較流行的應用架構是各個模塊完全獨立封裝和重用,展現層(顯示層)、業務邏輯處理層(中間層)和數據庫管理層形成三層開放架構,見圖2-5。

圖2-5 智能財務分析軟件技術架構
三層開放架構的系統設計采用分布式、松耦合的體系結構,各個軟件部分之間并不像傳統軟件體系那樣是直接相關的,只要事先規定了一定的軟件規范,替換、升級及增加軟件系統中的軟件部分,對于整個系統影響很小甚至沒有影響,因而大大提高了軟件系統的可擴展性。系統面向對象進行模塊化開發,系統模塊完全獨立封裝,對某個功能的修改、增加不會影響其他功能的使用。對整個軟件架構和數據庫的設計一般均會留有接口,以方便后期增加功能。系統開發采用流行的、跨平臺的開發語言,保證軟件系統平滑地擴充到不同的應用平臺。
本書介紹的智能財務分析系統采用B/S架構,用標準的J2EE語言開發,后臺采用前端、后端分離模式開發。數據庫使用Oracle或DB2,企業財務數據通過信貸系統獲取,保證系統一致性、安全性和易維護性。
系統前后臺完全獨立,通過接口方式調用,實現前后臺的交易展示。業務層是代表了所有與分析模型業務邏輯的組件,處于數據層和用戶業務層之間。其本身不包括任何用戶界面,完全獨立封裝,可重復使用,為用戶業務層提供系統所需的相關服務,其通用性也對未來開發和實施應用程序提供了很大的幫助,保證系統的安全性和易維護性。
4.智能分析軟件的業務實現邏輯框架
從業務邏輯來看,系統主要有導入數據管理、財務分析處理、報告生成管理和系統維護管理等功能模塊。數據通過數據接口互相調用和交換。客戶端通用IE瀏覽器訪問。用戶原始數據通過數據轉換器進入分析系統,然后按照已經設計的功能模塊進行數據分析處理,需要進行邏輯判斷和大量計算的工作交由運算器完成,不需要運算的分析處理結果可直接通過功能運算輸出結果,最終均通過展示層交給用戶界面展現,見圖2-6。

圖2-6 智能財務分析軟件業務邏輯架構
由于系統中的各個組件本身有良好的封裝性與獨立性,主要在展示層體現各項功能和操作。分析模型業務層是代表了所有與分析模型業務邏輯的組件,處于數據層和用戶業務層之間。其本身不包括任何用戶界面,是完全獨立封裝、可重用的業務對象,為用戶業務層提供系統所需的相關服務,其通用性也對將來開發和實施應用程序提供了很大的幫助。數據層在功能服務、操作系統和共享服務提供的服務基礎上對數據進行管理,并向通用業務邏輯層提供標準化的開放訪問接口。三層架構設計的優點:一是保證系統的可擴張性和拓展的靈活性;二是通過展示層、業務層和數據庫的隔離,可保證和提高數據的安全性;三是可實現維護、使用靈活性和集中管理的最佳結合。
總之,智能化財務分析軟件是一個能夠幫助企業進行財務分析和經營診斷的智能化工具,是一個能夠自動分析和診斷企業經營和財務狀況的專家系統,是一個能夠對企業經營狀況做出客觀、準確分析和判斷的人機交互系統,是一個具有方法新、內容新、實現形式新、使用簡單、容易理解等特點的智能化軟件。它可以大幅降低手工計算分析可能出現的錯誤或寫作筆誤,能夠大幅提高財務分析工作的質量和效率,能夠積累他人的正確的分析思路、方法,使用他人成功的分析經驗、指標,得出更加科學的分析結論。它通過計算機軟件的復制、模型的升級和知識的傳播,進行財務分析知識和經驗的交流和傳遞,可廣泛提高分析問題和判斷問題的及時性、準確性、客觀性,能夠促使財務分析水平邁上一個新的臺階。它能夠根據實際持續地通過軟件升級對模型和分析思路進行添加和完善,提升財務分析水平。
本章小結
智能財務分析系統誕生于計算機信息技術持續發展、軟件編程技術和終端設備處理技術日益成熟的基礎之上,它一般使用J2EE或Python語言等程序編寫工具開發,能夠實現模塊化封裝和復用、跨平臺安裝部署、前后臺分離式應用,能夠靈活滿足不同硬件平臺、不同操作系統、不同診斷展示工具的需要。基于專家系統、機器學習等人工智能思想和面向對象的跨平臺程序編寫的智能化財務分析系統,可以將智能化應用部署到各個企業管理信息化系統之中,可以實現不同系統的無縫對接。
本章習題
名詞解釋
互聯網
物聯網
區塊鏈
大數據
云計算
人工智能
專家系統
人機交互界面
推理機
機器學習
深度學習
機器視覺
圖像識別
情感識別
生物特質識別
機器人
財務機器人
J2EE平臺
Excel智能分析模型
四層模型
三層架構
前后臺分離
業務層
數據層
簡答題
1.簡述當前互聯網技術的發展現狀和趨勢。
2.簡述當前人工智能技術的發展方向和主要應用領域。
3.簡述J2EE平臺的優點。
4.簡述Python語言的跨平臺屬性。
5.簡述Excel軟件開發智能分析模型的優缺點。
6.多層架構的軟件系統有什么優點?
7.智能財務分析系統業務邏輯由哪幾部分組成?
8.財務機器人與一般意義上的機器人有什么區別?