发布时间:2012-07-31 18:36:43作者:知识屋
随着中国资本市场的发展,越来越多的投资者将股 票市场作为一个重要的投资渠道。上市公司的数量、股 票市场的规模及中小投资者的数量也在不断地扩大。众 所周知,财务报表(资产负债表、利润表、现金流量 表)的分析是评估一个上市公司经营业绩好坏及内在价 值高低的一个非常重要的环节,能否快速而全面的分析 财报,已经成为影响投资业绩的一个重要因素。
本文将描述一个基于Access 和Excel 的上市公司财 务报表分析系统。通过这个系统,使用者把网上公布的 财务报表数据批量自动地导入后台Access 数据库,利用 Excel 作为前台分析工具,灵活地定义各类参数及财务 变量,自动化地批量生成各类财务分析图表。这给财务 工作者及投资者提供了灵活快捷的分析工具。
1 设计背景及思路 财务报表分析是通过对上市公司财务报表的有关数 据进行汇总、计算、对比,综合地分析和评价公司的财 务状况和经营成果。一般指通过对财务报表数据的处 理,构建财务指标变量,对企业的盈利能力、营运能 力、偿债能力等进行横向分析和纵向分析。
由于上市公司业务形态各异,投资者分析时关注点 也不同,财务分析的手段变化多样。良好的财务报表分 析系统必须给用户提供灵活的控制手段,用户应能够自 定义分析时间范围、财务指标、输出图表格式及顺序等。另应提供足够的扩展性,以方便用户开发或连接附 加的功能模块,如财务报表预测、资产估值等。
机构投资者多数会投入专门的资源去构建自己的财 务报表分析系统。市场上也有一些成熟的财务报表分析 系统可供使用,例如万德、宏汇等, 但对大多数的中小 投资者而言,使用这些系统往往会有以下限制:(1) 成本很高,要付出不菲的账户注册费用;(2) 功能受 限,使用不够灵活;(3) 系统封闭,通过专有软件使 用,二次开发困难;(4) 需要软件安装及实时连线; (5)数据不开放,用户只有数据的使用权,而在本地机 上没有数据的所有权。这些不足使得开发一个小型轻 便的财务报表分析系统成为一个很好的选择。
基于以上灵活性和扩展性考虑,系统设计时采用分 层结构。把数据的获取、存储及处理分离,分别利用因 特网获取财务报表,Access 数据库存储数据,Excel 处 理及输出报表,分层结构利于功能的拓展。同时在系统 内部提供给用户财务变量、报表结构、图表格式等多种 自定义手段,以达到使用上的灵活性。
2 系统模块实现 整个系统由两个Excel文件(数据导入、数据处理及 图表输出)及一个Access文件(财务报表数据库)构成, 使用时无需任何安装,只需把三个文件存放在同一文件 夹即可。整个系统的结构及数据处理流程如图1 所示。2.1 数据获取及存储 上市公司每年按季发布季报(包括半年报和年报), 在公司发布公告后,投资者可分别在上海证劵交易所和 深圳证券交易所的网站下载其财务报告和财务报表。但 其文件格式为PDF 文本形式,不能直接用于Excel 处 理,而且对1 800 余家上市公司逐个查找下载报表工作 量巨大,不适合于自动化批量处理。
为方便投资者,一些主要的财经网站和门户网站提 供了免费的财报数据,如新浪财经频道、网易财经频 道、金融界等。上市公司的财务报表数据以固定网址及 固定格式的网页形式发布,方便批量下载处理。
本系统利用新浪财经频道上发布的数据,其网 址有固定的格式,如上市公司000788 (西南合成) 2009 年的各季度的资产负债表数据,可通过以下网址 获得:http://money.finance.sina.com.cn/corp/go.vFD_ php/BalanceSheet/stockid/000788/ctrl/2009/displaytype/4. phtml。Excel 数据导入模块通过VBA 宏,循环股票代 码及报表年度,逐个构造相应网址,并利用Excel 中的 “数据/导入外部数据/ 数据WEB 查询功能”, 将网页上 的数据导入Excel 中,用ActiveX Data Objects(ADO)联接 Excel和Access,将数据输入Access 数据库[1]。
读取网页数据的VBA 宏代码如下: Function Web2Excel(STK_ID, RPT_Type, Yr) Range("A11:G89").ClearContents With Worksheets(Interface_Sheet_Name) If RPT_Type = "BS" Then st=" vFD_BalanceSheet" If RPT_Type = "PL" Then st="vFD_ProfitStatement" If RPT_Type = "CF" Then st=" vFD_CashFlow"End With Link_URL =" http://money.finance.sina.com.cn/corp/go. php/"+ st + "/ stockid/" + STK_ID +" /ctrl/" + Yr + "/displaytype/4.phtml" If RPT_Type = "BS" Then WB_TB = """BalanceSheetNewTable0""" If RPT_Type = "PL" Then WB_TB = """ProfitStatementNewTable0""" If RPT_Type = "CF" Then WB_TB = """ProfitStatementNewTable0""" Range("A10").Select With Selection.QueryTable .Connection = "URL;" &Link_URL .WebSelectionType = xlSpecifiedTables .WebFormatting = xlWebFormattingNone .WebTables = WB_TB End With Exit Function Access 财报数据库由资产负债表、利润表和现金流 量表构成,分别为RPT_BS,RPT_PL,RPT_CF表。每张 数据表中的记录以股票代码STK_ID 及报表日期 RPT_Date联合构成主键,各科目定义为数据库表的域, 具体科目可参照财政部《企业会计准则———应用指南》[2]。
Access 通过ADO 组件和Excel联系,利用SQL 语句完成 数据的插入、修改和查询。1 800 余家上市公司截止 2010 年一季度的全部数据记录共约58 000 条,数据库 文件大小122M。数据库表的结构如图2所示。2.2 数据分析及图表输出 本模块由一个Excel 文件构成,内含“用户接口”、 “财务报表模板”、“财务变量定义”、“单元图表定 义”、“系列图表定义”、“数据临时表”、“图表数据 表”、“股票基本数据”等Excel 表,内含3 000 行VBA 代码,用于完成科目定义、财务变量定义、图表定义、 数据库数据读取、数据匹配、数据计算、图表输出等功 能。以下为各表的作用: 用户接口:用于输入股票代码、分析范围、单元图 表号、分析类型(可按年、单季、逐季)等参数。此接 口数据可由用户人工输入,也可以用VBA 宏控制输入 以实现批量化的处理(见图3)。财务报表模板:定义内部使用的三张财务报表科目 模板,各科目的数据通过“股票代码”+“报告日期”+ “科目”的匹配,利用Excel 中的VLOOKUP 函数,读取 存放在数据临时表中的财务报表数据。财务报表模板:定义内部使用的三张财务报表科目 模板,各科目的数据通过“股票代码”+“报告日期”+ “科目”的匹配,利用Excel 中的VLOOKUP 函数,读取 存放在数据临时表中的财务报表数据。3 功能特点分析 利用本系统可对上市公司的财报数据作各种分析应 用[3],如:(1)财务比例历史趋势分析,发现公司经营 业绩的变化及趋势; (2) 经营指标分解,如杜邦图和 成本构成比例,通过图表可直观了解财务指标的构成及 趋势变化; (3) 企业间指标比较,将几个企业的数据 放在同一张图上比较经营绩效; (4) 公司筛选,利用 存储在Access 数据库中的数据,通过SQL 语句筛选出 符合某些财务特征的候选公司。
相对于万德、宏汇等一体化的封闭性财报分析软 件,本系统在数据上采用了公开的数据来源;在结构上采用了网页、数据库、EXCEL的三级分层结构;在使用 上提供给用户各种灵活的操控手段;在内部功能的设计 上采取了逐级分层的数据结构和处理手段。从而达到了 灵活性和拓展性的统一。用户可在本系统基础上进一步 开发更多的功能。
本系统具有以下特点: (1) 快速:输出一个包含30 个单元图表(平均每 个单元图表包含5 个财务变量,25 个季度) 的系列图 表,用时在10 秒内(CPU: Pentium T4200@2Ghz, RAM: 2G);(2)便捷:自动化,批量化的数据收集,数据分析 及图表输出;(3)灵活:提供给用户多个自定义手段,灵 活组织数据及图表;(4)方便:界面基于EXCEL,用户熟 悉,无需培训;(5)可扩展性强:搭配上财务估值模块, 可以进行自动化的估值计算;(6)成本低:基于公开的数 据及广泛使用的Office软件平台,无需额外付费。
4 结束语 利用网页,数据库,电子表格的分层,本系统达到 了财务报表数据的获取,存储,处理的分离。在分析处 理过程中,通过科目数据,财务变量,单元图表,系列 图表的逐步集成,提供给用户灵活的处理手段和良好的 拓展基础,极大方便了财务工作者和中小投资者对上市 公司财务报表数据进行收集和分析。
Excel文档提示正在准备安装怎么办 怎么解决excel一打开就提示正在准备安装
Excel表中文本DOLLAR函数如何使用 如何在EXCEL表格中使用DOLLAR函数
Excel中文本函数DOLLAR怎么使用 如何在EXCEL表格中使用DOLLAR函数
word打开时显示正在准备安装怎么办 怎么解决excel一打开就提示正在准备安装
怎么设置excel表格只能看不能改 excel表格设置无法更改的操作步骤
Excel该如何共享 共享Excel的操作步骤图文详解
excel如何把一个单元格分成两个 excel拆分单元格的操作步骤
Excel怎么设置密码提高文件安全 Excel设置密码提高文件安全的操作方法
Win7系统Excel菜单栏不见了怎么办 Win7系统Excel菜单栏不见了解决办法
Excel拆分单元格的详细办法 Excel怎么拆分单元格详解
2013-01-23
Excel表格的制作方法
Excel sumif函数的用法基础知识【实例分享】
Excel中如何冻结单元格?冻结单元格在哪里?
Excel表格中选择性粘贴的使用方法大全
利用Excel做上市公司财务报表分析系统
Excel2007表格中利用现有的控件生成条形码
Excel2003/2007如何中删除重复数据、重复行
Excel2010表格中制作工资条技巧
Excel表格的基本操作163招技巧