银行流水核对工具
货币资金是新入职的小伙伴必定会做的科目。而银行流水核对是除函证外非常重要的实质性程序。作为核实公司真实资金流的程序,与众多科目关联,如果公司出现财务舞弊,多数情况下在银行流水中能够反映出相关迹象。
由于银行流水核对工作相对来说比较简单,过程比较枯燥,没有什么技术含量,所以实务中一般都是交给实习生来做。核对方法一般也是挑选主要银行账户,对发生额大于某个值的流水与账面进行双向核对。
很多时候,为了应对监管机构的检查,我们都是拿到企业有银行签章的纸质银行流水进行人工核对。其实我们也可以亲自与出纳导出银行账户的网银,在保证网银流水真实性的前提下,采用VBA程序批量进行核对。
1.一一对应的核对思路
如果财务账与流水每一笔都是一一对应的关系,这种情况是最简单的。如果写VBA代码最不费脑子的算法就是:
1、 将某一银行账号的序时账存储到数组arr_cw(“财务”缩写),将对应的网银流水存储到数组arr_wy(“网银”缩写)中。
2、 将arr_cw的每行数据遍历:i=1 to ubound(arr_cw),对于第i行序时账数据通过遍历arr_wy的每行数据:j=1 to ubound(arr_wy),查找满足你设定的匹配条件的数据。
3、 匹配条件:上面第二步就是模拟了双方数据进行比对的过程,什么条件就视为匹配成功呢?
(1) 日期:考虑到存在未达账项的情况,两方数据的日期应该是相近的,比如两方数据日期相减<=3,即设定未达账项时间差最多三天。
(2) 金额:由于这里讨论的是一一对应的情形,所以双方数据金额要相等。
当满足上述两个条件的时候,才认为匹配成功,此时给匹配成功的数据添加一列标记对方数据的序号(或者把网银数据添加到对应的序时账后面,方便直接作为底稿的核对过程)。
这样,完成核对工作后,我们只需要进一步检查未标记的数据,这样可以大大缩短人工核对的时间。如果人工核对需要30分钟的话,采用VBA程序只需要几秒钟,而且可以做到全量核对,而不是只对大额的流水进行核对。
2.多借多贷的核对思路
多借多贷的情况,其实需要根据对方单位等条件综合考虑的。这里不说复杂了,在上述未匹配的情况下,再将剩下的按月合计,如果核对上就匹配成功。
下面我们看看怎么用的:
3.导入数据
这里借鉴了信永中和成都分所一直流传的小账套导入数据的代码。小账套前辈戴晋。
双击"B1"单元格,进入导入向导。
将你的序时账导入进来,然后添加“标题行”,这里标题行会自动匹配一些,如果没有匹配的,就点击下拉选项,选择合适的。
网银流水数据导入也是相同。
4.填写参数
《结果》表这里填写可跨期天数。因为有未达账项,所以填写这个时间,可以使前后相近日期相同金额的匹配成功。
这里需要注意的是这里两个表的日期的内容需要时标准的日期格式。很多时候网银导入进来的格式是这样“20180102 09:49:17”的。这样不是标准日期格式,程序会报错。
导入时,程序会正对常见的三种格式进行清洗,如果未清洗成功,手动处理成“2018/12/31”的日期格式。
5.自动核对
完成数据导入、参数填写后,双击两个表任意一个的最后一列表头。
6.结果
自动核对完成后,《结果》表会写出匹配率。
同时,《序时账》《银行流水》表最后一列会标注匹配成功的对方数据的序号(比行号小1)。
金额匹配成功的流水明细若“对方户名”在“序时账”中的摘要里出现,会自动标记成绿色。如果序时账里有对方单位名称,直接把这里填到摘要里,就能核对流水对方单位是否正确。
当然,很多情况下序时账导出来是没有对方单位的名称的,所以这里统计结果还是用的金额匹配上就算,因此,如果你想只要金额和对方单位同时匹配成功的,手动筛选下,手工统计下核查率。
工具下载链接: 微云下载链接
本文首发于公众号:逆行的狗。
更多审计工具: github链接
审计效率提升课程(免费): B站链接