巧用EXCEL中的VBA和函數結合整理比對多種分散數據

2021-02-11 微審計

一、方法簡介

審計人員在用計算機採集數據時常碰到一類問題,即被審計單位提供的數據(excel表格)是非常零散的數據,而且其中部分單位數據欄位名不在同一列,欄位名也不盡相同,如有的欄位名為「身份證號」,有的欄位名為「身份證號碼」,有的在第2列,有的在第3列,要是用SQL整理分析數據,必須要對這些零散的excel表格進行數據整理,工作量非常大,耗時費力,效率低下,由於審計組的審計目的只是要比對需要核實的人員信息是否在這些零散的excel表格中出現,如何用最少的時間,最小的工作量完成此項任務就擺在了審計組面前,若用excel的VBA和函數結合,就可巧妙的解決此難題。

二、方法流程

此方法綜合運用excel中的VBA和函數,巧妙解決了數據整理和不同欄位比對問題,VBA是Visual Basic for Applications的縮寫,是內嵌於office軟體中的一個開發模塊,這個模塊提供程序自主開發,語言基礎和VB(Visual Basic)相似。在Excel的「工具—宏—編輯器」可以打開,也可按Alt+F11打開,excel的VBA需要編寫代碼,此案例中主要解決多個excel表格合併,需要將多個excel表格放到同一個目錄下,然後在此目錄下新建一個excel表格文件A,合併後的所有內容全部裝在新建的excel表格文件中,再將需要比對的excel表格B與此表格進行比對,運用函數IF和COUNTIF組合找出B中是否有數據在A中出現,最後得出結果,其流程如下:

1、使用excel中的VBA合併多個excel表,結果裝入在同一目錄下新建的excel文件A中。

2、使用excel中的函數IF和COUNTIF組合將數據B與A進行數據比對,其公式為IF(COUNTIF(Sheet1!A:K,Sheet2!I2),"有","無")。

3、使用excel中的篩選工具進行篩選結果。

三、具體方法

為方便講述該方法步驟,以下從某地區提供的財政供養人員信息與貧困人口信息數據進行比對為例進行講解,財政供養人員信息為該地區編辦提供的125個單位的人員信息,有125張excel表,貧困人口信息由該地區扶貧辦提供,有1張excel表,審計任務是比對財政供養人員是否在貧困人口中出現,其步驟為:

第一步:合併編辦提供的125個單位的人員信息表。

1.把編辦提供的125張excel表都放在同一個文件夾裡面,並在這個文件夾裡面新建一個excel文件-「合併財政供養人員表」。

2.用microsoft excel打開新建的excel表,並右鍵單擊sheet1,找到「查看代碼」,單擊進去,進去之後就看到了宏計算界面。

3.把下面這些宏計算的代碼複製進去。

Sub 合併當前目錄下所有工作簿的全部工作表()

  Dim MyPath, MyName, AWbName

  Dim Wb As Workbook, WbN As String

  Dim G As Long

  Dim Num As Long

  Dim BOX As String

  Application.ScreenUpdating = False

  MyPath = ActiveWorkbook.Path

  MyName = Dir(MyPath & "¥" & "*.xls")

  AWbName = ActiveWorkbook.Name

  Num = 0

  Do While MyName <> ""

  If MyName <> AWbName Then

  Set Wb = Workbooks.Open(MyPath & "¥" & MyName)

  Num = Num + 1

  With Workbooks(1).ActiveSheet

  .Cells(.Range("A65536").End(xlUp).Row + 2, 1) = Left(MyName, Len(MyName) - 4)

  For G = 1 To Sheets.Count

  Wb.Sheets(G).UsedRange.Copy .Cells(.Range("A65536").End(xlUp).Row + 1, 1)

  Next

  WbN = WbN & Chr(13) & Wb.Name

  Wb.Close False

  End With

  End If

  MyName = Dir

  Loop

  Range("B1").Select

  Application.ScreenUpdating = True

  MsgBox "共合併了" & Num & "個工作薄下的全部工作表。如下:" & Chr(13) & WbN, vbInformation, "提示"

End Sub

4.找到工具欄上面的「運行」下的「運行子過程/用戶窗體」,點擊運行,等待10秒針左右,等運行完畢,就是合併完成之後,會有提示,點確定就可以了。查看合併後的數據,125張excel表格中的所有數據都合併到該工作表sheet1中了。

第二步:比對。

1、將excel文件-「貧困人口信息表」的數據複製粘貼到「合併財政供養人員表」文件的sheet2工作表中。

2、在sheet2的第一行數據最後一列(比如AA2)單元格中輸入公式:=IF(COUNTIF(Sheet1!A:K,Sheet2!j2),"有","無"),然後滑鼠停留在該單元格右下角,成十字星後下拉,將該公式複製到下面所有單元格中。此公式中的「Sheet1!A:K」是指sheet1表中從A列到K列所有數據,「Sheet2!j2」是指sheet2表中J2列,即需要比對的數據列(如證件號碼),如需要比對的是其他列數據,在此更換參數即可,「有」參數位置是指比對結果相同,「無」參數位置是指比對結果不同,當然此處兩參數位置上可以自己隨便寫其他字符串,主要是方便自己查看。

第三步:篩選

選中AA2列,點擊右上「排列和篩選」工具,點擊「篩選「,選擇「有」,等一會兒,得出所有結果。

--微審計 審計人員都在看---

讀後分享->右上角送給朋友或轉發朋友圈

快速關注->微信訂閱號,查找「微審計」

->掃掃下圖,發現更多驚喜

相關焦點

  • 這個Excel多表核對絕招輕鬆搞定多工作表數據比對差異
    (ID:ExcelLiRui)之前發過兩表數據比對的教程,有同學問多表數據比對應該怎麼辦呢?多表數據比對跟兩表數據比對最大的差別是需要多一個步驟將多表數據整理到一起,第二步與兩表比對相同,把整理好的數據再對目標數據比對,思路清晰了再來看具體案例和操作步驟。先來看下案例場景需求和比對要求,你來看看自己會不會解決?
  • Excel中兩列(表)數據對比的常用方法
    Excel中兩列數據的差異對比,方法非常多,比如簡單的直接用等式處理
  • EXCEL數據比對案例實戰:功夫「茬」,找不同
    不用,找到合適的思路,我們還是可以快速完成比對的。還好,我們自己留了底稿,還可以比對。插個話啊同志們,所有文件,在定稿前,一定要有不同版本的備份,切記切記。由於不知道改了哪些節點的順序,所以不能直接將2個版本的計劃粘貼到一個表格裡進行比對。
  • 【Excel書籍推薦】學Excel的VBA,什麼書還不錯?
    入門與提高》Excel疑難千尋千解叢書《Excel 2010 VBA編程與實踐》,進階提升的Excel VBA實戰技巧精粹(修訂版),進階提升的有這3本excel vba方面的書籍,入門提升就不成問題了。
  • Excel VBA 實例(22) - 一鍵篩選其他工作表或工作簿的數據
    今天說的這個vba實例還是和學校有關。
  • 【Excel分享】if函數的基本用法
    if函數的基本用法       在excel中if函數是最經常用到的判斷函數,通過它可以減少很多繁瑣複雜的工作,判斷單元格內容滿足什麼條件則對應返回相應的值。excel中的if函數是判斷函數,表達的意思是當滿足某條件時,返回一個值,否則返回另一個值語法:if(logical_test,[value_if_true],[value_if_false]) 第1參數:logical_test表示要判斷的條件 第2參數:value_if_true表示當滿足判斷的條件時返回的值 第3參數:value_if_false表示當不滿足判斷的條件時返回的值
  • 工作中最常用的Excel函數公式,幫你整理齊了!(建議收藏)
    今天要分享的資料是一份 Excel函數公式合集,非常實用,希望你們喜歡。我們都知道,在Excel中,學好Excel函數,可以讓你的工作效率翻倍,給你帶來意想不到的收穫。接下來,我羅列了咱們常見的Excel常用的10個電子表格公式和相應的案例提供給大家學習。
  • 使用Pandas讀取複雜的Excel數據
    關於Excel數據處理,很多同學可能使用過Pyhton的pandas模塊,用它可以輕鬆地讀取和轉換Excel數據。但是實際中Excel表格結構可能比較雜亂,數據會分散不同的工作表中,而且在表格中分布很亂,這種情況下啊直接使用pandas就會非常吃力。本文蟲蟲給大家介紹使用pandas和openpyxl讀取這樣的數據的方法。
  • 技巧不求人-145期——Excel巧用TEXT函數的幾種方法
    嗨,大家好,歡迎來到新一期的技巧不求人,上期我們介紹了Excel高級替換的4種技巧,今天繼續分享TEXT函數的幾種用法。
  • Excel中的數據匹配和查找
    在Excel中,提供了多個可以用來進行數據匹配和查找的函數:HLOOKUP、INDEX、LOOKUP、MATCH和VLOOKUP等。
  • 數據處理過程中常用的excel函數:IF、COUNTIF
    包括如何調用函數以及在函數使用過程當中需要注意的引用問題。今天我們就來介紹幾個常用的excel函數。今天就來介紹一下: IF函數以及countif函數關於excel函數都有固定的輸入形式,我們只需要按照固定的位置輸入想要的東西即可。1.
  • 手把手教你Excel做目錄的方法
    Excel工作簿頁面太多,查找不便,本文就介紹怎麼生成sheet頁連結目錄,並在各sheet頁中添加返回目錄連結,採用簡單並容易理解的函數結合vba腳本的方法來實現。1、使用vba腳本生成目錄將以下代碼放到代碼處:Sub createmulu()For i = 1 To Sheets.CountCells(i, 1) = Sheets(i).NameNextEnd Sub
  • excel減法函數的使用方法
    excel自帶多種函數運算,最近很多用戶表示不會使用excel的減法函數,其實excel的減法函數並不難,今天小編給大家講講excel減法函數的使用方法。  步驟如下:  1、比如我們要計算每一行的A列數據減去B列數據的值,並把該差值放在C列;
  • 文章3 如何用Excel函數替換字符串中的指定字符?
    經常遇到這樣的問題:現有字符串中,如何替換指定的部分字符,例如有大量電話號碼,現需要將這些號碼最後四位替換為****,該如何做呢?類似的問題和使用場景有很多,如果你的行記錄有幾千幾萬條,那麼,如何利用Excel函數批量處理就必須要掌握了。
  • 最常用的Excel宏表函數應用大全,幫你整理齊了
    前言:神秘的宏表函數可以實現很多強大的的功能。這也是蘭色首次全面整理宏表函數相關的應用,建議同學們一定要收藏起來備用。一、宏表函數介紹1、什麼是宏表函數宏表函數是又稱excel4.0函數,是Excel第4個版本的函數,為了考慮兼容性,現在的版本依然可以調用該函數2、宏表函數有什麼用處?
  • 會計工作中的常用函數和Excel小技巧匯總
    於是在工作之餘整理了會計工作中的一些常用函數和excel小技巧,希望能夠提供一些幫助(註:提供給EXCEL初學者)。,這就要求你必須敢於嘗試,學會舉一反三,我記得我剛開始學的時候只會求和和查找,遇到什麼都想用,用的多了慢慢就熟練了。
  • 工作中最常用的excel函數公式大全,幫你整理齊了,拿來即用
    今天蘭色再次進行整理,添加了一些新的常用公式(共8大類),希望對大有用。公式:C2=IF(AND(A2<500,B2="未到期"),"補款","")說明:兩個條件同時成立用AND,任一個成立用OR函數。
  • 四句話讓你搞清楚,Excel中函數與Excel VBA中函數不同
    Excel中我們經常會用到函數,其實ExcelVBA中也有函數。他們之間有什麼區別和聯繫,搞懂下面四句話就知道了。
  • Excel中的常用函數Match
    Excel中的常用函數Match  相等的,沒有就找比它小的,比5小的有2個,1和4,然後從小的中找最大的,4大於1,所以返回4所在的位置2,=match(5,{1;4;7;10},1)相信大家懂了,我也不再如果下去了,現在大家明白了match第2參數構建了,以前match第3參數用1是模糊匹配我現在總結一下:如果我們是在找一個區間找位置,,大家一定要想到match函數,首先找和它相等的,一模一樣的,如果找不到,就找比它小的