Excel 整理重復(fù)數(shù)據(jù)記錄的方法
【摘要】 文章討論的問題是對具有龐大數(shù)據(jù)量的Excel 電子表中出現(xiàn)的重復(fù)記錄,提出了有效的標(biāo)記和刪除辦法。
【關(guān)鍵詞】 Excel 重復(fù)數(shù)據(jù)記錄 標(biāo)記 刪除
引言
在對數(shù)據(jù)量比較龐大的Excel 電子表維護(hù)過程中,我們以管理學(xué)校學(xué)籍?dāng)?shù)據(jù)信息為例,經(jīng)常會遇到這樣一個問題, 就是需要查找出同一個工作簿內(nèi)多個不同工作表中,學(xué)號、姓名或者其它字段相同的重復(fù)記錄。要求先把它們顯示出來,然后再用人工或自動方法進(jìn)行刪除。由于數(shù)據(jù)量很大,人工查找刪除又費時費力,而簡單合并成一個工作表又有可能造成數(shù)據(jù)混亂,所以,這里我們將給出Excel 整理重復(fù)數(shù)據(jù)記錄的方法。
一、Excel 數(shù)據(jù)源備份
為防止數(shù)據(jù)丟失,可以先插入若干工作表,復(fù)制數(shù)據(jù)源所有數(shù)據(jù)在這些表中,使數(shù)據(jù)源得到備份。
二、查找、標(biāo)記重復(fù)記錄
打開工作表數(shù)據(jù),我們可以根據(jù)電子表中每個字段名,逐列排查重復(fù)記錄。這里以檢測A 列為例,首先在A 列右側(cè)先插入一列,得到B 列作為標(biāo)記列,然后在B1 單元格中輸入公式:=IF(ROW()=MATCH(A1,A:A,0),1,”重復(fù)”),函數(shù)MATCH 的作用是對整個A 列(A:A)進(jìn)行查找,如果第一次查找到A1 值,則使對應(yīng)B1 單元內(nèi)容等于1,如果是第二次或第N 次查找到A1 值,則在右側(cè)B 列標(biāo)記列對應(yīng)單元中寫入“重復(fù)”字樣。
然后按照記錄個數(shù)需要,向下拖動B1 單元右下角的復(fù)制句柄,使B2、B3…Bn 得到相應(yīng)的值,Bn 單元格中公式內(nèi)容為:=IF(ROW()=MATCH(An,A:A,0),1,” 重復(fù)”), 其中An 依次代表A1 到An 單元的值。
而公式中A:A 表示檢測整個A 列,這里應(yīng)該注意A 列數(shù)據(jù)應(yīng)盡量不為空。如果是A 列某一段區(qū)域, 用戶還可以根據(jù)需要自行修改,比如寫成A2:A10,表示只檢查A2 到A10 單元的數(shù)據(jù)有沒有重復(fù)。
這時再仔細(xì)觀察新的標(biāo)記列B 列所有數(shù)據(jù),它們的值分別為1 或者“重復(fù)”字樣,具有“重復(fù)”字樣的記錄,就是我們標(biāo)記的多余重復(fù)記錄,稍后需要用戶刪除。
當(dāng)然,我們還可以使用COUNTIF()函數(shù),在B1 單元格中輸入公式:=IF(COUNTIF(A$2:A6,A6)>1,”重復(fù)”,1),再依據(jù)A 列記錄個數(shù)的需要向下拖動B1 單元格右下角的復(fù)制句柄,同樣可以達(dá)到查找、標(biāo)記重復(fù)記錄的目的,這兩種標(biāo)記方法既簡單又非常有效。
三、刪除帶有重復(fù)標(biāo)記的所有記錄
經(jīng)過上述處理之后,所有多余的重復(fù)記錄就都被我們標(biāo)記出來了,接下來的任務(wù)是把所有帶“重復(fù)”標(biāo)記的記錄刪除。由于手工刪除工作量可能太大,又容易出錯,所以這里我們啟動vba,運行如下程序,讓計算機(jī)對默認(rèn)工作表sheet1 自動完成刪除多余記錄的任務(wù)。
Sheet1 刪除重復(fù)記錄程序代碼如下:
Subrt()
DimiAsInteger
Fori=10To1Step-1’i 初值可以取其它值
IfApplication.WorksheetFunction.CountIf(
Cells(i,2),”重復(fù)”)ThenRows(i).Delete
‘查找同行B 列中等于‘重復(fù)’值,找到則刪除該行記錄
Nexti
End
另外,稍加修改上述程序,我們就可以對同一個工作簿中其它張工作表(以sheet3 為例)中的重復(fù)記錄,進(jìn)行相同的刪除操作。該程序中還考慮到個別復(fù)雜情況下,用戶有可能對工作表中若干列都進(jìn)行過重復(fù)記錄標(biāo)記工作,其中某幾列同時做過標(biāo)記才能刪除,這里用戶只需要修改if 語句中邏輯表達(dá)式即可完全任務(wù)。至此,工作表中所有多余記錄都被刪除,最后刪除標(biāo)記列B 列。
程序代碼如下:
Subrt()
DimiAsInteger
Fori=10To1Step-1’循環(huán)
IfSheet3.Cells(i,4)=” 重復(fù)”AndSheet3.Cells(i,5)=” 重復(fù)”ThenSheet3.Rows(i).Delete
‘查找sheet3 中同行第4 列和第5 列同時等于“重復(fù)” 字樣,找到則刪除該行記錄
Nexti
EndSub
四、綜述
利用上述方法,我們把Excel 所有重復(fù)數(shù)據(jù)記錄找出并刪除了,問題得到解決,該方法省時省力,安全高效,對于大型工作表數(shù)據(jù)維護(hù)的意義非常重大。
參 考 文 獻(xiàn)
[1] 譚浩強(qiáng)等編著.VisualBasic 語言教程[M]. 北京:電子工業(yè)出版社,2000.10 [2] 周維武等編著. 計算機(jī)基礎(chǔ)教程(第3 版)[M]. 北京:電子工業(yè)出版社,2008. [3] 李飛,廖琪梅,何鑫主編. 計算機(jī)應(yīng)用新教程[M]. 西安:西安電子科技大學(xué)出版社,2004.
[2] 周維武等編著. 計算機(jī)基礎(chǔ)教程(第3 版)[M]. 北京:電子工業(yè)出版社,2008.
[3] 李飛,廖琪梅,何鑫主編. 計算機(jī)應(yīng)用新教程[M]. 西安:西安電子科技大學(xué)出版社,2004.
本站論文資源均為來自網(wǎng)絡(luò)轉(zhuǎn)載,免費提供給廣大作者參考,不進(jìn)行任何贏利,如有版權(quán)問題,請聯(lián)系管理員刪除! 快速論文發(fā)表網(wǎng)(www.6scc.cn)本中心和國內(nèi)數(shù)百家期刊雜志社有良好的合作關(guān)系,可以幫客戶代發(fā)論文投稿.
投稿郵箱:ksfbw@126.com
客服Q Q:
82702382
聯(lián)系電話:15295038833
本站論文資源均為來自網(wǎng)絡(luò)轉(zhuǎn)載,免費提供給廣大作者參考,不進(jìn)行任何贏利,如有版權(quán)問題,請聯(lián)系管理員刪除!