智能财务报表分析:应用技巧与案例解析
上QQ阅读APP看书,第一时间看更新

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.财务机器人与一般意义上的机器人有什么区别?