扶贫资金审计 | EXCEL数据快速汇总方法
近期,笔者在扶贫资金审计中进行大数据分析时,遇到需将我市各地区扶贫办建档立卡贫困人口数据汇总后再导入数据库中进行关联比对分析的情况。由于数据量较大、涉及的表格数量较多,常规的复制粘贴方法汇总起来需耗费大量的时间。如何进行快汇总呢?遇到此类问题,EXCEL高手们可能会使用VBA实现快速汇总,笔者给大家分享一个更加简单的方法:巧用CMD命令实现EXCEL多表数据快速汇总,可提高大家的工作效率,计算机水平不高的同志也能轻易掌握。具体步骤如下:
第一步:将需汇总的EXCEL表格存放在一个文件夹下,并将所有EXCEL表格转换为.csv格式。
(1)如汇总的表格数量较少则直接打开EXCEL表格另存为.csv即可,如下图:
(2)如汇总的表格较多则可使用VBA代码实现批量自动转换,方法如下:
1.新建“扶贫数据”文件夹用来保存需转换的EXCEL文件,新建“CSV保存目录”文件夹用来保存转换后的CSV文件。
2.新建一个EXCEL表格,打开后,点击菜单栏上的“开发工具”;功能区下点击插入-表单控件-按钮,添加按钮并命名为“excel文件批量转换成csv文件”,如下图:
3.打开Visual Basic,在左侧工程资源管理器中双击Sheet1 (Sheet1)打开代码窗口输入下列代码后保存;然后选中“excel文件批量转换成csv文件”按钮-右键-指定宏,选择刚建立的宏名称后,单击运行按钮即可实现EXCEL文件批量自动转换为CSV文件。如下图:
具体代码如下:
Sub SaveToCSVs()
Dim fDir As String
Dim wB As Workbook
Dim wS As Worksheet
Dim fPath As String
Dim sPath As String
fPath = 'C:\Users\LJJ\Desktop\扶贫数据\' '需要转换成CSV的Excel源文件目录
sPath = 'C:\Users\LJJ\Desktop\csv保存目录\' '转换后的CSV文件保存目录
fDir = Dir(fPath)
Do While (fDir <> '')
If Right(fDir, 4) = '.xls' Or Right(fDir, 5) = '.xlsx' Then
On Error Resume Next
Set wB = Workbooks.Open(fPath & fDir)
'MsgBox (wB.Name)
For Each wS In wB.Sheets
wS.SaveAs sPath & wB.Name & '.csv', xlCSV
Next wS
wB.Close False
Set wB = Nothing
End If
fDir = Dir
On Error GoTo 0
Loop
End Sub
需要注意的是代码中的fPath = 'C:\Users\LJJ\Desktop\扶贫数据\'为需要转换成CSV的Excel源文件目录,sPath = 'C:\Users\LJJ\Desktop\csv保存目录\'为转换后的CSV文件保存目录,这两个目录需要根据实际进行修改。运行完成后打开“csv保存目录”文件夹即可看到转换好的csv文件,如下图:
第二步:编写CMD命令实现EXCEL多表数据快速汇总。
(1)编写CMD命令。打开“csv保存目录”文件夹,按SHIFT+右键,点击“在此处打开命令窗口”,在命令窗口中运行命令copy *.csv 汇总.csv,即把该路径下所有的csv文件汇总到“汇总.csv”文件中。如下图:
(2)汇总完成后数据处理。打开汇总.csv文件,通过EXCEL筛选功能删除多余列名保存后导入数据库中。
注意汇总csv文件后如遇到身份证号、银行账号等数据比较长的列显示为科学计数法,可新建EXCEL后打开,点击菜单“数据”,点击“获取数据”,然后选择相应的csv文件打开则显示正常。(作者单位:湖北省荆门市审计局)