基于Excel VBA的审计自动抽样系统设计与应用研究
2015-09-14桂嘉伟
桂嘉伟
(齐齐哈尔大学经济与管理学院,黑龙江 齐齐哈尔 161006)
基于Excel VBA的审计自动抽样系统设计与应用研究
桂嘉伟
(齐齐哈尔大学经济与管理学院,黑龙江 齐齐哈尔 161006)
审计实务中存在样本数量不足以及代表性差的现象,通过编程可以实现审计工作底稿的局部自动化。基于Excel VBA,采用统计抽样、变量抽样的方法,设计迎合操作流程的实施方案,并在此基础上结合实务经验开发出一套审计自动抽样系统,在会计师事务所测试运行中得到较好的试用反馈。该系统对审计人员完成记账凭证测试起到了较好的促进作用,从而减少重复劳动、提高审计效率,对于节约事务所成本、实现高效审计目标有着积极的作用。
审计抽样;审计工作底稿;系统实施;Excel函数;VBA编程
1 问题提出
2014年1月至11月期间,全国被审计单位有近10万家(沈漠,2014)[1],实际审计工作中存在样本数量不足以及代表性差的现象,因此,以风险为导向的抽样审计伴随着巨大风险。长此以往,审计人员以及会计师事务所将会承担越来越大的审计风险(刘畅,2015)[2]。
笔者在国内两家大型会计师事务所实践期间发现记账凭证测试往往伴随着机械、单调的审计抽样工作,然而通过编程可以实现抽样工作自动化,从而提高审计工作效率,进而局部解放审计人员的工作压力,使其将更多的时间和精力用于考虑关键性问题、扩大审计范围,有助于注册会计师给予被审单位更全面、细致、准确的审定,降低会计师事务所的审计风险。
2 文献综述
会计电算化的研究阶段正由开发转为完善。姜海清(2014)基于C/S架构、VB语言设计并开发了一套中小企业会计电算化系统,包含系统设置、凭证管理、记账结账、打印输出和数据维护等五个模块,实现了除凭证复核之外的基本功能[3]。陈旭生(2015)总结了基于Excel VBA开发会计信息系统的五个模块及各模块必须实现的功能;林鑫(2015)指出中小企业会计电算化系统存在数据安全性差、忽视管理功能、认识不足等亟待解决的问题。
相较于趋于饱和的会计电算化研究,审计电算化则是一个大有可为的新兴领域。2014年10月,国务院在关于加强审计工作的意见中提倡创新电子审计技术,提高审计工作能力、质量和效率;两月后,国家电网公司响应并搭建了内部审计信息系统框架。国内大型会计师事务所与国际“四大”会计师事务所除了主要审计软件之外,都大量应用Excel辅助开展各项审计工作。其中,安永全球审计工具GAMx还提供了抽样工具(EY-Random)但该软件非常复杂(王海洪,2015)[4]。我国基层审计机关的一线审计人员中能够独立采集与分析处理审计数据的占比不到10%(韩强,2015)[5],综合考虑,Excel VBA更为人性化、也更容易操作。
Excel VBA确实是实现审计电算化的得力工具。在制作周期性报告时,注册会计师们通过借助Excel表格、SUMIFS函数可以节省时间、减少错误(Lenning Jeff,2014)[6]。常广炎和杨彬(2014)基于Excel VBA设计并开发了一套单位各部门财务预算处理系统;Edward J.Lusk与Michael Halperin(2014)基于Excel VBA设计并开发了一套审计决策支持系统,该系统多处引用Excel中的Pearson()函数,从而能够自动完成两组数据频数分布拟合优度的X2检验,进而为审计人员确定两组数据之间的关联程度提供数据支持,可应用于假设检验中的账面数与审定数[7],较好地应用了魏鹏超(2014)所提出的正态分布审计抽样法。
审计电算化的研究现状是“不缺想法缺开发”。复合型审计电算化人才是我国审计人才发展的薄弱环节,我国缺乏具备财经、计算机双重学科背景的复合型人才(方祺,2015)[8]。
近年来,国内外关于会计电算化的文献已趋于饱和,但审计电算化方面仍较为匮乏而且审计实务工作还有许多方面值得尝试开发。有效的审计工具是提升审计工作效率的关键,由此,笔者基于Excel VBA所开发出的审计自动抽样系统为一线审计工作者提供便利和参考。
3 理论分析
3.1审计抽样原理
审计抽样可分为统计抽样和非统计抽样:统计抽样较为客观科学;非系统抽样基于个人经验,虽简易但较为主观。出于严谨考虑,笔者采用统计抽样的方法。
审计抽样还可分为属性抽样和变量抽样:属性抽样常用于检验内控有效性;变量抽样常用于判断报表错报项;实务中还存在结合两者的双重目的抽样方式,用于同时进行控制测试和实质性测试。记账凭证测试属于实质性测试,笔者采用变量抽样的方法。
3.2功能分析
笔者在会计师事务所实践期间共完成了百余次记账凭证测试的审计底稿编制,其流程可归纳为6个步骤:在Excel中输入数据、对明细进行筛选、排序后进行抽样、对复核差异进行分析、根据结果撰写说明、提交至领导审核,其中4个步骤可通过编程实现替代原现流程对比见表1。
表1 记账凭证测试流程对比表
除了提高效率,通过程序控制、系统实施还能够减少人工失误、迎合底稿格式。
3.3同类分析
现行的审计抽样工具的确已出色完成抽样功能,但仍存在一些值得完善的方面。
(1)使用人群受限。现行的审计抽样工具主要由各大会计师事务所自行研发,而且不对外提供,使用者必须安装对应的审计软件,甚至需要经过注册验证才能正常使用。
(2)不够轻巧。抽样工具直接整合在审计软件,使用者必须完整安装对应软件才能实现抽样功能,繁冗的安装过程在临时使用、异地使用时显得颇为不便。
(3)抽样模式单一。以天易审计软件为例,其筛选模式仅限于抽查条数和抽查金额范围两种,其应用范围仅限于银行存款等少数会计科目,无法直接控制抽样比例。
(4)抽样能力有限。以天易审计软件为例,其应用范围仅限于银行存款等少数会计科目,无法对其他科目进行抽样,事实上,费用类科目也经常需要审计抽样、进行记账凭证测试。
(5)与审计底稿衔接性差。大多数审计抽样工具程序本身不作控制,无法为审计人员提供风险评估建议,需要执业人员自行评估和判断。实际上,通过程序控制、生成建议能够更高效、可靠地辅助审计人员进行职业判断;兼容底稿编制格式后能大幅推动底稿编制进程。
3.4技术分析
笔者选择Excel VBA作为审计自动抽样系统的编译语言。
Excel VBA是集成在Excel电子表格中的一种面向对象的开发平台,功能强大、操作简单、易于开发;事实上,作者仅用了3天时间便完成了该系统的功能实现与初步调试。
审计抽样的功能全部整合在一个Excel文件中,无需安装或注册,没有使用限制;审计人员只要运行这个Excel文件即可正常使用,使用、存储、分享均足够轻便;通过选择实现了抽样模式的多样化、抽样对象的多元化;通过设计底稿模板,提高了审计底稿的兼容性。此外,选择Excel VBA开发的另一个好处便是后期修改、调试十分便捷。
4 审计自动抽样系统的开发
4.1功能设计
笔者所开发的审计自动抽样系统主要目标系实现两大功能:记账凭证测试的自动抽样、专项审计底稿的辅助生成。除了输入数据、查验原始凭证工作必须由审计人员亲自完成,系统代替审计人员完成了筛选有效数据、按金额对数据进行排序、根据抽样要求抽取数据、根据审定金额核算差异、按天健会计师事务所(特殊普通合伙)的底稿编制格式结合复核结果编制专项审计底稿等多项工作。
4.2模块设计
笔者将该系统分为初始化、输入数据、自动抽样、完成复核、生成报告五个模块。
(1)初始化。初始化模块系初始化所有参数及工作表,以便系统能够重复使用。
(2)输入数据。输入数据模块系从用户输入的数据中筛选得到凭证号非空的有效数据、按金额对有效数据进行排序,从而为自动抽样模块提供数据支持。
(3)自动抽样。自动抽样模块系根据抽样要求在已按金额大小排序的数据中抽取适量数据,使之同时满足用户输入的重要性水平以及期望比例。
(4)完成复核。完成复核模块系补全无差异项的单元格并根据审定金额核算差异。
(5)生成报告。生成报告模块系按天健会计师事务所(特殊普通合伙)的底稿编制格式结合复核结果、用户输入的科目、等信息编制专项审计底稿。
4.3流程设计
审计自动抽样系统五个模块各步骤中的数据传输流程共分为十个步骤:第一步,根据发生金额对原始数据进行排序,传输用户输入的原始数据;第二步,将各笔业务的位置储存在数据库,传输经过排序处理的数据;第三步,显示累计发生、合计金额等信息,传输原始数据的统计结果;第四步,将用户的抽样要求储存在数据库,传输期望比例、重要性水平;第五步,根据抽样要求自动对业务进行抽样,传输抽样要求、各业务位置;第六步,将抽样结果显示在对应工作表,传输抽样结果、统计数据;第七步,对比分析审定数据并形成复核结果,传输用户输入的审定数据;第八步,将复核的结果显示在对应工作表,传输经过计算的复核结果;第九步,将客户、科目等信息储存在数据库,传输用户输入的客户等信息;最后,将汇总的报告显示在对应工作表,传输与报告有关的汇总信息。
其中,各步骤数据传输流程示意图如图1所示。
其中,自动抽样(Command3)的流程示意图如图2所示。
4.4数据库表
笔者在数据库中共定义了3类共计26个参数。其中,整数类型“Integer”主要用于循环体、定位单元格;单精度浮点类型“Single”主要用于金额等数据的存储与计算;字符类型“String”主要用于文本信息存储与拼接。
将抽样前的排序过程整合在一张“排序”工作表中完成,其中,A列记录该业务在“数据”工作表中对应的行数,B列记录该业务的金额。“排序”工作表的A列和B列分别对应a()和f()两个数组,排序过程在“排序”工作表中自动完成,较好地节约了空间。
图1 数据传输流程
图2 自动抽样流程
4.5操作界面
程序自动处理完复核数据并自动补全后的“抽样”工作表如图3所示。
图3 抽样工作表示意图
系统完成全部抽样过程后的最终底稿界面 (已作横向拼接处理)如图4所示。
图4 系统操作界面示意图
4.6功能代码
笔者以最关键的将所抽取的每笔业务的金额输出在“抽样”表中的9行功能语句为例:
01|zyx=Sheets(″说明″).Cells(13,5)
02|min=Val(Sheets(″说明″).Cells(11,5))*Val(Sheets(″说明″).Cells(13,3))
03|For i=1 To Val(Sheets(″说明″).Cells(11,3))
04|If(Val(Sheets(″排序″).Cells(i,2))>=zyx)Or(all〈min)Then
05|num=num+1
06|all=all+Val(Sheets(″排序″).Cells(i,2))
07|Sheets(″抽样″).Cells(i+1,6)=Val(Sheets(″排序″). Cells(i,2))
08|End If
09|Next i
代码01将“说明”工作表(13,5)单元格的值,即重要性水平赋给参数zyx;代码02将“说明”工作表(11,5)单元格和“说明”工作表(13,5)单元格的值的乘积,即期望比例对应的期望金额赋给参数zyx;代码03和代码09构成一个循环体,参数i从1遍历到“说明”工作表(11,3)单元格的值为止,即对于每笔发生业务,重复执行代码04至08的语句;代码04和代码08构成一个判断体如果“排序”工作表(i,2)单元格的值不小于参数zyx或者参数all小于参数min,即未达到重要性水平或未超过期望金额,那么执行代码05至07的语句,否则不执行;代码05将参数num的值加上1的和赋给参数num,即被抽样个数加1;代码06将参数all的值加上“排序”工作表(i,2)单元格的值的和赋给参数all,即累计被抽样金额;代码07将“排序”工作表(i,2)单元格的值赋给“抽样”工作表(i+1,6)单元格,即输出被抽取业务。
运行后上述9行功能语句后,参数num将记录抽样个数而参数all将记录抽样总金额,被抽业务的金额将按时间先后顺序不断输出到“抽样”工作表相应位置直到抽样比例超过期望比例并且满足重要性水平要求,从而实现对应的功能。
5 案例分析
5.1模拟测试介绍
陈经理和助理正在某被审计单位进行三年一期的财务审计工作,助理获取了一份该被审计单位2012年度的财务账套数据,陈经理要求其尽快完成该被审计单位2012年度库存现金、银行存款、应收账款、其他应收款、应付账款、其他应付款、管理费用、财务费用等8个会计科目的记账凭证测试工作并汇报结果。其中,重要性水平为100 000.00元,各科目抽样金额要求占比50%以上。
助理借助基于Excel VBA开发的审计自动抽样系统,输入该被审计单位2012年度的财务数据和抽样要求,按照抽样结果对相关业务进行记账凭证测试,将复核数据输入系统,自动生成审计工作底稿,最终完成陈经理所交代的8个科目记账凭证测试工作。
5.2模拟测试过程
(1)初始化。按下“初始化”按钮,系统一切就绪。
(2)输入数据。第一步,将某被审计单位2012年度“银行存款”科目账套明细复制到已清空的“数据”工作表中;第二步,按下“输入数据”按钮,程序自动算得该被审计单位2012年度“银行存款”科目累计发生901笔业务,合计金额为3 102 395.85元。
(3)自动抽样。第一步,在“说明”工作表中输入重要性水平以及期望比例;第二步,按下“自动抽样”按钮,程序自动完成抽样步骤,共抽样其中的19笔业务(个数占比约为2.11%),合计金额为1 556 402.11元(金额占比约为50.17%,已超过期望比例),程序完成抽样步骤后,抽样结果将显示在“抽样”工作表中。
(4)完成复核。第一步,审计人员将所抽样本的记账凭证测试结果登记在“抽样”工作表中的“审定金额”、“原始凭证”、“会计分录”、“所属期间”、“账记对手”、“对账单”等列所对应的位置,但若无异常亦可不填写;第二步,按下“完成复核”按钮,程序处理完复核数据后将自动补全“抽样”工作表。
(5)生成报告。审计人员在“说明”工作表相应位置填写“客户名称”、“审计人员”、“审计日期”、“会计科目”、“会计期间”后按下 “生成报告”按钮后即可自动生成抽样情况和复核差异报告。至此,系统已完成本次抽样过程的全部电子底稿,根据作者程序设定,审计人员恰好可以将“说明”工作表打印在一页A4纸上,随后可以在顶部填写索引号,在底部“结论”处勾选审计结论、签字。
5.3模拟测试数据
笔者对数据组都设置了实验组和对照组 (除区分使用审计自动抽样系统外,其他条件均相同),从客户资料中随机抽取了10组数据参加对比测试,同时对5个模块分别计时。
测试结果表明:相比于以传统的审计底稿编制方式完成记账凭证测试工作的对照组(6 083s),作者使用审计自动抽样系统的实验组(1 442s)能更高效地完成10组数据的记账凭证测试底稿编制工作,能够实现记账凭证测试的自动抽样、专项审计底稿的辅助生成等两大功能,整个测试过程共节约用时4 641s,节约比约为76.29%。
此外,通过审计自动抽样系统节约了使用者在重复性劳动中的时间从而使其感到愉悦,进而能够进一步调动了审计人员的工作热情,提高整体工作效率。
5.4应用反馈
经实践,参加应用的来自国内两家大型会计师事务所的37名审计人员均认为该系统实现了功能,提高了效率;在本次为期1个多月(从2015年5月5日至2015年6月14日)的应用过程中,未见异常反馈。但这很可能与应用期间不充分有关,因此,虽然该系统的实际应用价值得到了认可但是当审计人员进一步应用后可能会有异常情况发生。
笔者认为该系统运行最大障碍是各单位账套格式不统一。目前该系统已基本适应天健会计师事务所(特殊普通合伙)正在使用的天易审计软件所导出的账套格式;若遇到其他格式,可能需要审计人员做相应调整才能顺畅使用。
6 结论
笔者基于Excel VBA成功设计并研发了审计自动抽样系统,验证了基于Excel VBA实现审计凭证抽样功能的可行性;经过两家会计师事务所部分审计人员积极实践使用,笔者实习单位认可该系统并称其对审计人员完成记账凭证测试起到了较好的促进作用。
笔者所开发的审计自动抽样系统在提高审计效率、减少人工失误、迎合底稿格式等方面具有先进性;但也存在需Excel环境支持、数据处理存在上限,尚未兼容所有格式、抽样模式值得商榷等局限性,有待进一步完善。
主要参考文献
[1]沈漠.明年全国审计工作将有六大任务[N].财会信报,2014-12-29 (1).
[2]刘畅.会计师事务所审计风险的现状与对策研究[J].经营管理者,2015(10):37.
[3]姜海清.中小企业会计电算化系统的设计与实现[D].长春:吉林大学,2014.
[4]王海洪.大型会计师事务所审计信息化调查研究[J].商业会计,2015 (6):48-50.
[5]韩强,许超.基层审计机关提高计算机应用水平的途径[J].理财,2015 (5):80-81.
[6]Lenning J.Excel:The Power of Mapping[EB/OL].http://www.journalof account ancy.com/issues/2014/apr/excel-mapping-20138815.html,2014-04-01.
[7]Lusk EJ,Halperin M.Detecting Newcomb-Benford Digital Frequency Anomalies in The Audit Context:Suggested X2 Test Possibilities[J].Accounting and Finance Research,2014,3(2):191-205.
[8]方祺.关于我国计算机审计人才培养的思考[J].河北企业,2015(4):83.
10.3969/j.issn.1673-0194.2015.19.026
F239.0
A
1673-0194(2015)19-0053-04
2015-09-01
桂嘉伟(1993-),男,浙江杭州人,齐齐哈尔大学济经与管理学院,硕士研究生在读,主要研究方向:会计信息化、审计信息化。