2015年
财会月刊(18期)
财会电算化
医院如何运用Excel进行银行对账

作  者
丁永志,赵瑞静

作者单位
(承德医学院附属医院计财处,河北承德 067000)

摘  要

【摘要】 医院应当设置银行存款日记账,并至少每月与银行对账单核对,编制存款余额调节表。由于银行往来账项太多,手工对账费时费力。利用Excel加工对账单后,导入财务软件进行自动对账大大提高了效率。
【关键词】 对账单;调节表;Excel;自动对账

根据新《医院会计制度》规定,医院应当按开户银行等设置“银行存款日记账”,并定期与“银行对账单”核对,至少每月核对一次。月度终了,医院银行存款账面余额与银行对账单余额之间如有差额,必须逐笔查明原因并进行处理,按月编制“银行存款余额调节表”,调节相符。由于银行往来账项太多,一般三甲医院每月都有数千笔甚至上万笔交易。如此大的规模,如果利用纸质的银行存款日记账和银行对账单手工方式逐笔核对,则需要很长时间,而且准确率低,一旦出现错误,往往需要反复核查。现有的财务软件一般均提供了银行自动对账的功能,利用Excel对银行对账单加工后导入软件,即可进行自动对账。我院对账的具体步骤如下:
1. 录入银行对账期初。在第一次使用银行对账功能时,必须先将银行存款日记账余额、银行对账单余额及双方未达账项录入到系统中。
2. 录入当月的对账单。录入对账单是自动对账工作的关键。银行提供的电子版对账单格式各异,数据内容繁杂,需要将其中有用的数据提取出来,并改成软件要求的格式,才能导入财务软件。利用Excel的VBA功能加工数据,可以既省时又省力。以某银行的POS机刷卡结算业务的对账单为例,银行将每天的刷卡业务记录生成一个txt文档,其格式大致如下图所示。第1至5行是账户信息,第6至7行是真正的交易数据。
第一,需要将每月所有的对账单txt文档放入同一个文件夹中(E:\银行对账\2015-01),并在此文件夹中新建一个Excel文件(hz.xls)。在hz.xls中打开VBA编辑器运行下段程序,将所有txt文档内容逐一复制汇总到hz.xls中:
Sub 读取数据()
Dim InputData
Dim myfile As String
Dim i As Integer
myfile=Dir("E:\银行对账\2015-01\" & "∗.txt")
i=1
Do Whilemyfile<> ""
Open "E:\银行对账\2015-01\" &myfile For Input As #1
   Do While Not EOF(1)
   Line Input #1,InputData
Sheet1.Cells(i,1).Value=InputData
   i=i+1
Debug.PrintInputData
   Loop
 Close #1
myfile=Dir
Loop
End Sub
第二,运行下段程序,在第一列之前插入一列用于填写营业日期。营业日期位于每个txt文档的第二行,取出后填入当天的真正的交易数据行的第一列,并将第一列的格式改成日期格式。
Sub 填日期()
Dim i,j As Integer
j=Sheet1.UsedRange.Rows.Count
Columns("A:A").Select
Selection.Insert Shift:=xlToRight,CopyOrigin:=xlFormatFromLeftOrAbove
For i=1 To j
If Sheet1.Cells(i,2) Like "∗营业日期∗" Then
  If Not Sheet1.Cells(i + 1,2) Like "∗营业日期∗" Then
Sheet1.Cells(i + 1,1)=Mid(Sheet1.Cells(i,2),109,10)
  End If
Else
Sheet1.Cells(i + 1,1)=Sheet1.Cells(i,1)
Columns("A:A").Select
Selection.NumberFormatLocal="yyyy-m-d"
End If
Next
End Sub
第三,由于银行最初提供的数据复制到Excel中后全部存在于一列中,所以运行下段程序,将其中的终端号、交易日期、交易金额和参考号等有用的数据分离出来单独放入一列,并将交易日期列改成日期格式,对账时作为对账单的票据日期与医院银行存款日记账中的票据日期相比对(将参考号列改成文本格式)。
Sub 分列()
Columns("B:B").Select
Selection.TextToColumns Destination:=Range("B1"),DataType:=xlFixedWidth,_
FieldInfo:=Array(Array(0,1),Array(2,2),Array(10,1),Array(17,1),Array(39,5),_
Array(47,1),Array(57,1),Array(79,1),Array(82,1),Array(97,1),Array(105,1),Array( _
     110,1),Array(115,1),Array(120,2)),TrailingMinusNumbers:=True
End Sub
第四,由于每个txt文档中包含了很多账户信息,对账只需要交易信息,所以需要将账户信息行删除。运行下段程序,根据终端号列的信息将账户信息行删除。
Sub删除无用行()
Dim k As Integer
k=Sheet1.UsedRange.Rows.Count
For i=k To 1 Step -1
  If Sheet1.Cells(i,3) <> 13080276 And Sheet1.Cells(i,3) <> 13080279 And Sheet1.Cells(i,3) <> 13080280 And Sheet1.Cells(i,3) <> "13080281" _
  And Sheet1.Cells(i,3) <> 13080614 And Sheet1.Cells(i,3) <> 13080766 And Sheet1.Cells(i,3) <> 13081739 And Sheet1.Cells(i,3) <> 13080842 Then
Rows(i).Delete
  End If
   Next i
End Sub
第五,财务软件中,对账单信息只需要交易日期、票据日期、借方金额、贷方金额、票据号和摘要六项数据。所以需要将其他列数据都删除。医院收款时,医院银行存款科目记借方,银行对账单则记在贷方。由于POS机刷卡都是医院收款,所以对账单的借方金额全部为空,都放在贷方。录入凭证时,票据号录入的是参考号列的后5位数字,所以将此列的后5位取出来作为对账单的票据号列,用以与银行存款日记账中录入的票据号对比。由于业务单一,所以摘要列不作为对账参考,不予导入。
Sub删除列()
Dim j As Integer
j=Sheet1.UsedRange.Rows.Count
For i=1 To j
Sheet1.Cells(i,16)=""" & Right(Sheet1.Cells(i,15),5)
Next i
Columns("k:o").Delete
Columns("g:h").Delete
Columns("b:e").Delete
End Sub
对原始的对账单进行以上整理之后,就可以导入到财务软件中了。
3. 对账。自动对账前先选择对账方式。为了准确,我们选择的是金额相等、票据号相等、票据日期相差5天以内。这样,不是同一笔业务而作为同一笔业务勾对核销的概率几乎为零。自动对账后,绝大部分的记录都会成功地勾对核销。由于录入凭证时,票据号、票据日期等信息可能存在错误,导致自动对账时没能成功勾对,这时可以根据具体情况,人工核实后手工勾对即可。
4. 核实未达账项。如果存在未达账项,需要逐步核对原因。由于POS机刷卡很多时候涉及跨行情况,跨行交易后需要两三天银行才能入账。如果患者当月最后一天刷卡后,医院收到票据当日入账了,而银行可能下月初才能实际入账,会导致月末出现多笔未达账项。这种情况是合理的,下月对账时会勾对成功,无须太多关注。如果是其他原因,需要认真核对原始凭证,找出原因。
5. 生成余额调节表。以上工作完成后,即可在软件中生成银行存款余额调节表。生成调节表时,需要选择调节表的日期,即出具哪一天的调节表,一般选择当月最后一天。还需要选择截止对账日期,一般情况当月最后一天进行对账,截止对账日期选择当月最后一天即可。如果是在下月初勾对,则截止对账日期需选择最后完成对账的日期。调节表中的未达账项需要逐笔弄清形成的原因,避免形成长期未达账项。如果是录入凭证时出错,则需要更正凭证,如果是银行对账单错误,则需要及时联系银行调整。⚪