EXCEL2010环境下SQL语句的审计应用,本文主要内容关键词为:语句论文,环境论文,SQL论文,此文献不代表本站观点,内容供学术参考,文章仅供参考阅读下载。
大型国有企业信息化迅速发展,经营管理方面使用的信息系统很多,如会计信息系统、固定资产管理系统、ERP系统、合同管理系统、物资管理系统、销售业务管理系统、勘探开发单井系统、工程企业项目管理系统。从审计角度来说,这些数据较分散,共享程度不是很高,不能反映审计事项全貌,由此需要按审计思路、方法进行相关数据匹配、对接或关联,使之直观、完整地反映审计事项,并在此基础上深入进行数据挖掘和分析,对全面把握重点、快速锁定疑点进而发现问题有着重要的实践意义。这就需要熟悉通用的审计分析工具。
一、EXCEL2010使用SQL语句功能介绍
EXCEL2010具有强大的数据分析功能,搭建了在此环境下的SQL语句运行环境。笔者在学习国家审计署计算机审计经验的基础上,研究SQL语句在EXCEL2010中的应用。这些方法在审计实施中进行了积极的尝试,取得了较好的应用效果。
EXCEL2010将SQL语句运行环境嵌入EXCEL2010数据分析模块中。在进行数据分析时,用户通过OLE DB接口获取外部数据源的方式在获取外部数据源的同时在数据连接属性定义选项中的文本命令处,输入SQL语句并运行,对同一EXCEL文件中的不同表(Sheet)进行关联、检索和对比分析,EXCEL2010可按SQL语句指令自动生成新的运行结果表(Sheet)。
二、审计应用案例
例1:快速发现A石化公司存在积压物资××万元的问题。2012年初,审计组开展A石化公司管理效益审计。审计查阅了A公司2007~2010年会计报表,公司有关存货积压物资各年数据均为0。审计经验判断,石化企业生产部门为方便装置检维修、应对非计划停车及保障安全生产等需要,申报的备件、配件等物资采购计划盲目性大,通常采购追求多而全,致使实际需求与计划严重脱节,一般都会形成大量的积压物资。
为全面查清A公司积压物资究竟有多少,笔者将A公司物资管理ERP系统中的2008年末、2011年末库存数据分别转至两个EXCEL文件后,通过SQL语句进行自动比对,即2008年末库存明细表中的某物资名称在2010年末库存表中也同样存在,即两个表物资名称、规格型号、数量、金额4个条件完全匹配一致时,即可判定为积压物资。编辑的SQL语句如下:
SELECT A.物料描述,A.库存地点,A.期初数量,A.期初金额,B.期末数量,B.期末金额
FROM[2009$]A,[2011$]B
WHERE A.物料描述=B.物料描述AND A.期初数量=B.期末数量AND A.期初金额=B.期末金额
通过在EXCEL2010中运行SQL语句后,自动生成了2009年期初和2011年末库存数据对比表(见表1)。
A公司ERP存货库存数据每年存有2.5万~3万条记录,依靠传统的计算机手段在短时间内很难准确查清积压物资确切数量。笔者通过该方法用了不到20分钟的时间即查清了公司存在积压物资××万元的问题。
例2:测试销售业务是否执行了相应的价格,据此发现油品降价销售影响企业效益××万元问题。在审计过程中,我们经常对销售价格进行测试,审查判断企业执行的销售价格是否偏离上级规定的销售价格。传统的审计方法是通过EXCEL逐项筛选产品规格型号、筛选销售日期,并在此条件下手工对应输入相应的应执行价格,之后计算应执行价格与销售价格差异。该操作方法费时费力、容易出错,且准确度不高。笔者在EXCEL2010中应用了SQL语句快速实现了价格测试。表2为A公司销售系统转出的销售数据,表3为A公司的价格调整文件的整理表。笔者以销售表中的开票期为时点,当两表品种代码一致且销售表开票日期归属于价格表中的价格执行日与价格终止日之间时,计算机自动生成表4,并添加一列“执行价格”,实现了销售表与价格表的匹配和对接,这样可快速查出实际销售价格低于价格文件规定价格的销售业务。
编辑的SQL语句如下:
SELECT A.品种代码,A.开票日期,A.单价,B.执行价格
FROM[销售$]A,[价格区间$]B
WHERE FORMAT(A.开票日期,“yyyy/m/d”)BETWEEN B.价格执行日AND B.价格终止日
对于海量的销售业务数据,可通过上述方法快速、准确、完整地发现A公司未执行规定价格的销售业务。特别是发现了因上级部门销售计划与生产计划不衔接,公司产品不适销对路,2009~2011年生产的××吨柴油降价销售,直接影响效益××万元。
例3:快速发现已完工工程项目账外债权××万元问题。在审计工作中,有时需对几张格式相同或相近的数据表加总,才能反映整个事项全貌。工程建设企业承建的项目建设期往往涵盖多年,建设期各年的“工程结算”、“工程施工”、“主营业务收入”、“主营业务成本”等科目借方、贷方数据均需加总才能反映项目实际的经济含义,如“工程结算”科目反映本单位与业主确认的结算金额,当该项目已完工时,需加总各年“工程结算”科目贷方数据才能得出该项目从开工到完工累计已结算的工程款。加总累计结算的工程款与业务管理部门提供的合同数据进行对比,差额即为未结算的工程款。对已经完工多年的项目,因未结算而财务部门未确认的债权,即为游离于账外的应收工程款。
表5为C公司会计信息系统转出的各年工程结算贷方数据,拟加总。
因各年核算名称(项目)数量不一致,通过传统的EXCEL单元格链接并联加的方式对多表数据加总难以实现(易错位、易出错)。笔者通过在EXCEL2010中应用SQL语句的方式进行汇总,快速形成表6。
审计按照工程项目名称将表6和表7数据进行数据连接,发现多个工程项目累计结算收入小于合同金额,而且这些项目完工时间距审计日间隔的期限较长。抽查原始凭证发现,C公司承揽的10个建设项目,因业主破产或恶意逃废债务,对完工的工程项目不与建设单位办理结算事宜,造成C公司巨额应收工程款挂账,遭受较大损失。
编辑的SQL语句如下:
SELECT核算名称,SUM(贷方金额)AS累计结算收入FROM(SELECT[*]FROM[2009年工程结算$]
UNION ALL
SELECT[*]FKOM[2010年工程结算$]
UNION ALL
SELECT[*]FROM[2011年工程结算$])
GROUP BY核算名称
三、结束语
使用EXCEL2010运行SQL语句有助于提高审计效率及提升数据挖掘能力。EXCEL2010具有强大的数据分析能力,而SQL是一种数据库操作语言,两者有机结合便成为“审计利器”。该工具具有以下优势:一是EXCEL2010直接嵌入了SQL语句,审计人员可在SQL操作结果的基础上,应用EXCEL已有功能,使数据分析工作更便捷、灵活;二是对于EXCEL,审计人员非常熟悉,在EXCEL2010平台运行SQL语句可避免单独使用EXCEL操作繁琐、速度慢、易出错等问题;三是SQL语句较简易,简单英文,规则易懂,可以说,在EXCEL2010操作平台上使用SQL命令,比在SQL-Server环境下使用SQL语句更简单、更易学。