Excel開個(gè)掛,數(shù)據(jù)整理效率暴增!

你知道嗎?Excel 表格的數(shù)據(jù)也是需要整理的。
對(duì)于一些不規(guī)范的數(shù)據(jù),如果不加以整理,根本沒(méi)有辦法進(jìn)行計(jì)算分析。
而 Excel 中最難的一部分,應(yīng)該就是和各種雜七雜八的數(shù)據(jù)奮勇斗爭(zhēng)了。
這不,有位妹紙拋出了一個(gè)難題:
從系統(tǒng)導(dǎo)出的表格中有 ID 1 和 ID 2 兩列數(shù)據(jù),兩列數(shù)據(jù)中都包含了一個(gè)個(gè)的 ID,各個(gè) ID 之間用逗號(hào)分隔開來(lái)。
現(xiàn)在我需要從兩列 ID 中挑出重復(fù)出現(xiàn)的 ID,要怎么做呢?

為了讓你看得更清楚,這還是經(jīng)過(guò)加工的數(shù)據(jù)。
原始數(shù)據(jù)中,每個(gè) ID 都很長(zhǎng),而且有上萬(wàn)行。如果肉眼比對(duì),手工輸入,一個(gè)星期都搞不完。怎么辦?
要解決這個(gè)問(wèn)題,有 3 種不同的思路:
思路一:
先對(duì)兩列數(shù)據(jù)執(zhí)行分列,按照逗號(hào)拆分到兩個(gè)表格中,再用數(shù)組公式去解決。這會(huì)非常復(fù)雜,而且運(yùn)算量太大表格可能會(huì)很卡。
思路二:
分列到不同的表格中,再用公式添加行號(hào)作為分類標(biāo)簽。再用公式合并到一張表格中,用透視表的差異分析法。這樣中間步驟太多,很難解釋清楚。
思路三:
直接用 VBA 寫幾行代碼自定義一個(gè)函數(shù),讓妹紙復(fù)制粘貼到自己的 Excel 表中,然后用一個(gè)函數(shù)批量搞定。
是的,今天就是分享一個(gè)?VBA 自定義函數(shù)的用法。
即使你沒(méi)有編程基礎(chǔ)也別擔(dān)心,只要學(xué)會(huì)復(fù)制粘貼,用別人寫好的成熟代碼,也能解決很多問(wèn)題,達(dá)到事半功倍的目的。

把代碼粘貼到模塊
打開 Excel 表格后,同時(shí)按下【ALT+F11】鍵,可以打開代碼編輯窗口。插入一個(gè)模塊:

然后將下面灰色區(qū)域的代碼完整的復(fù)制粘貼到模塊窗口中(沒(méi)有計(jì)算機(jī)編程基礎(chǔ)可以忽略具體含義),保存:
Function 提取重復(fù)(rg1 As Range, rg2 As Range) '提取兩個(gè)長(zhǎng)串?dāng)?shù)據(jù)中重復(fù)的值
Dim arr1, arr2
? ?arr1 = Split(rg1, ",") ?'將長(zhǎng)串?dāng)?shù)據(jù) 1,按逗號(hào)拆分成一組數(shù)據(jù)
? ?arr2 = Split(rg2, ",") ?'將長(zhǎng)串?dāng)?shù)據(jù) 2,按逗號(hào)拆分成一組數(shù)據(jù)
? ?a = ""
For h = 0 To UBound(arr1) ? ? ? ? ? '逐個(gè)比對(duì)兩組數(shù)
? ?For i = 0 To UBound(arr2)
? ?If arr1(h) = arr2(i) Then
? ?a = a & arr2(i) & ","
? ?End If
? ?Next
Next
Dim arr, d As Object ? ?'剔除結(jié)果中的重復(fù)值
Set d = CreateObject("scripting.dictionary")
? ?arr = Split(Mid(a, 1, Len(a) - 1), ",")
For i = 0 To UBound(arr)
d(arr(i)) = ""
Next i
提取重復(fù) = Join(d.keys, ",")
End Function

輸入函數(shù)公式
上面的代碼實(shí)際上是設(shè)計(jì)了一個(gè)自定義函數(shù),它的語(yǔ)法結(jié)構(gòu)非常簡(jiǎn)單:
=提取重復(fù)(數(shù)據(jù) 1,數(shù)據(jù) 2)
(功能是將數(shù)據(jù) 1 和數(shù)據(jù) 2 分別按逗號(hào)拆分,并互相比對(duì),提取出重復(fù)出現(xiàn)在兩個(gè)數(shù)據(jù)中的 ID,如果多次出現(xiàn),剔除重復(fù)只保留其中一個(gè))
怎么用?超級(jí)簡(jiǎn)單,就跟你使用普通的函數(shù)公式一樣:

通過(guò)這個(gè)自定義的函數(shù),幾秒鐘的時(shí)間,就能夠把大批量的數(shù)據(jù)整理好。那效率就跟開掛了一樣。

保存數(shù)據(jù)
需要特別留意的時(shí),如果要保留這個(gè)自定義函數(shù)及計(jì)算結(jié)果,需要將工作簿另保存成特殊的文件類型:Excel 啟用宏的工作簿,擴(kuò)展名是 .xlsm。

如此一來(lái),代碼就會(huì)跟隨 Excel 文件,去到其他電腦也能繼續(xù)使用。
好啦。本文實(shí)際上只教你三板斧:
??復(fù)制粘貼代碼
??輸入自定義函數(shù)
??保存帶宏代碼的工作簿
設(shè)計(jì)自定義函數(shù),僅僅是 VBA 應(yīng)用的冰山一角而已。
如果你的工作中有大規(guī)模的重復(fù)操作,需要反復(fù)執(zhí)行,你又有一點(diǎn)點(diǎn)計(jì)算機(jī)基礎(chǔ),可以考慮學(xué)點(diǎn) VBA,享受享受點(diǎn)一點(diǎn)就完成別人半個(gè)月工作量的愜意。
但即使不會(huì) VBA,掌握常用的操作也可以大大提升工作的效率。
我們的《3 天 Excel 集訓(xùn)體驗(yàn)營(yíng)》,課程內(nèi)容完全聚焦于普通表哥表妹的日常工作痛點(diǎn),高效解決各種數(shù)據(jù)表格問(wèn)題。
還有各種讓你大呼過(guò)癮的騷氣小技巧,讓你像打怪升級(jí)一樣,學(xué) Excel 學(xué)到根本停不下來(lái)!?。?/p>
《秋葉 Excel 3 天集訓(xùn)營(yíng)》
想提升,趁現(xiàn)在!
助你不再被加班支配,不再為表格發(fā)愁!
現(xiàn)在報(bào)名
還免費(fèi)贈(zèng)送【35 個(gè)常用函數(shù)說(shuō)明】!
趕緊掃碼預(yù)約吧!??????

▲ 報(bào)名成功后,自動(dòng)彈出班主任二維碼
記得添加,不要提前退出哦~
*廣告