二維碼 購(gòu)物車
部落窩在線教育歡迎您!

提取不重復(fù)值并統(tǒng)計(jì)數(shù)量的三個(gè)方法,一秒完成!

?

作者:E圖表述來(lái)源:部落窩教育發(fā)布時(shí)間:2021-03-23 11:06:55點(diǎn)擊:5799

分享到:
0
收藏    收藏人氣:0人
版權(quán)說(shuō)明: 原創(chuàng)作品,禁止轉(zhuǎn)載。

編按:

如何提取不重復(fù)值并統(tǒng)計(jì)數(shù)量?這是EXCELER在工作中普遍會(huì)遇到的問(wèn)題。今天,小E給大家?guī)?lái)的就是從三個(gè)角度,用三種完全不同的方式去處理這類問(wèn)題的方法。不管你是EXCEL小白還是有一定經(jīng)驗(yàn)的數(shù)據(jù)民工,又或者是想成為大神的EXCEL老鳥,都能在這篇文中,找到適合你的方法。一秒搞定提取不重復(fù)值,其實(shí)很簡(jiǎn)單……

 

【前言】

今天說(shuō)的EXCEL問(wèn)題,其實(shí)在大家的日常工作中經(jīng)常會(huì)遇到,例如下面的這個(gè)圖:

 

 

這個(gè)問(wèn)題中,A列中只列出了30行的數(shù)據(jù),而實(shí)際工作中的數(shù)據(jù)情況則會(huì)有更多的變化。鑒于一切問(wèn)題的解決方法都是“萬(wàn)變不離其宗”的,所以筆者將就上圖的問(wèn)題,給大家分別講述三個(gè)不同的解決方法??赐暌院?,相信大家無(wú)論遇到再怎么復(fù)雜的同類問(wèn)題,都會(huì)有思路去解決,而不至于“手足無(wú)措”。

 

【正文】

 

最簡(jiǎn)單的處理方式

對(duì)于提取不重復(fù)值的處理方法,筆者認(rèn)為最簡(jiǎn)單的方式就是使用工具欄中的“刪除重復(fù)值”功能鍵來(lái)實(shí)現(xiàn)。

 

 

首先選中A列,選擇性粘貼為數(shù)值,粘貼到D列;然后選中D列,再點(diǎn)擊工具欄——“數(shù)據(jù)”選項(xiàng)卡——“刪除重復(fù)值”。這樣我們就完成了提取唯一值的過(guò)程,如下圖所示:

 

 

然后在E2單元格中輸入函數(shù):

=COUNTIF(A:A,D2)

下拉填充E2:E7單元格區(qū)域,及此完成操作。

 

點(diǎn)評(píng):筆者認(rèn)為,這個(gè)方式可能對(duì)于小伙伴們來(lái)說(shuō),是最容易上手而且是最直接的操作方式,簡(jiǎn)單兩步就可以完成。雖然每次統(tǒng)計(jì)的時(shí)候都需要手動(dòng)操作一遍,好在是不復(fù)雜。

 

最慌的處理方式

 

Hohoho,之所以叫它是“最慌”的處理方法,是因?yàn)樗枰褂帽?span>EXCELER們稱為“萬(wàn)金油”的公式。這個(gè)名字應(yīng)該是如雷貫耳了吧,很多小伙伴估計(jì)都聽過(guò),也都知道萬(wàn)金油是處理去重并提取唯一值的利器。雖然在《EXCEL教程》的許多教程中都有相關(guān)案例,但依然有很多小伙伴不能很好的理解并使用它。

 

即使大家一看到“去重并提取唯一值”,就想到“萬(wàn)金油”公式,但一動(dòng)手用“萬(wàn)金油”公式,還是只會(huì)“慌的一批”~~~

 

 

D2單元格輸入函數(shù):

{=IFERROR(INDEX($A$2:$A$31,SMALL(IF(MATCH($A$2:$A$31,$A$2:$A$31,0)=ROW($A$1:$A$30),ROW($A$1:$A$30),99^9),ROW(D1))),"")}

 

公式解析:

MATCH($A$2:$A$31,$A$2:$A$31,0)=ROW($A$1:$A$30)

利用MATCH函數(shù),判定A2:A31區(qū)域中的值,第一次出現(xiàn)的序號(hào),是否和行號(hào)一致。

IF(……,ROW($A$1:$A$30),99^9)

利用IF函數(shù),返回索引值。如果MATCH()中的行號(hào)一致,則返回行號(hào);如果不一致,則返回99^9(一個(gè)絕對(duì)大的值)

SMALL(……,ROW(D1))

利用SMALL函數(shù),提取前兩步中返回的值,因?yàn)槲覀兊暮瘮?shù)需要下拉,那么ROW(D1)的值,就會(huì)隨著下拉而隨動(dòng),此函數(shù)的意義就變成,第1最小的值、第2最小的值、第3最小的值……。

INDEX($A$2:$A$31,……)

A2:A31中,提取第x個(gè)位置上的值,這個(gè)x值就是剛才SMALL()中返回的值。

=IFERROR(……,"")

最后使用IFERROR函數(shù)容錯(cuò),使得錯(cuò)誤值不出現(xiàn)。

 

點(diǎn)評(píng):筆者認(rèn)為,如果大家的函數(shù)水平還算過(guò)硬,那還是推薦大家使用這個(gè)方法。因?yàn)楣娇梢噪S著數(shù)據(jù)源的變化而變化,得出當(dāng)前的結(jié)果,不需每次都要操作一遍。這個(gè)方法對(duì)于形成函數(shù)類型的模板是相當(dāng)實(shí)用。

 

最正確的處理方式

 

最后一種方法,是筆者在工作中處理此類問(wèn)題時(shí),經(jīng)常使用的方法。

 

可能對(duì)于有的小伙伴來(lái)說(shuō),它是一個(gè)“談虎色變”的方法。但是不容否定的說(shuō),這個(gè)方法——VBA字典去重,才是真正打開“EXCEL去重”正確使用方式的方法。

 

 

首先按ALT+F11,打開VBE界面。在左側(cè)的“工程窗口”中插入模塊,然后在代碼窗口中輸入代碼:

 

Sub 去重()

  Dim arr, d

  arr = Sheets("最對(duì)").Range("A2:A31")

  Set d = CreateObject("scripting.dictionary")

  For i = 1 To UBound(arr)

    d(arr(i, 1)) = d(arr(i, 1)) + 1

  Next i

  Sheets("最對(duì)").[D2].Resize(d.Count, 1) = Application.Transpose(d.keys)

  Sheets("最對(duì)").[E2].Resize(d.Count, 1) = Application.Transpose(d.items)

End Sub

 

小伙伴們運(yùn)行代碼后,就可以得到去重后的字段和相應(yīng)的次數(shù)。

 

點(diǎn)評(píng):筆者認(rèn)為,EXCEL最大的魅力在于它的辦公自動(dòng)化,VBA又是在此基礎(chǔ)上更進(jìn)一步讓大家真正實(shí)現(xiàn)辦公自動(dòng)化的操作。一段簡(jiǎn)單的代碼,可以讓你解放雙手的同時(shí),還可以提高表格統(tǒng)計(jì)的效率和計(jì)算的正確性。

 

【編后語(yǔ)】

此篇教程到這里就結(jié)束了,希望可以給大家?guī)?lái)一些思考。數(shù)組函數(shù)也好,VBA也好,都是需要大家對(duì)數(shù)據(jù)有深度地理解和邏輯思考能力。我們到底算不算一個(gè)“數(shù)據(jù)人”,在處理同一個(gè)問(wèn)題時(shí),看你選擇哪種數(shù)據(jù)處理方法就已然可以判斷了。

 

本文配套的練習(xí)課件請(qǐng)加入QQ群:902294808下載。

Excel高手,快速提升工作效率,部落窩教育《一周Excel直通車》視頻和《Excel極速貫通班》直播課全心為你!

掃下方二維碼關(guān)注公眾號(hào),可隨時(shí)隨地學(xué)習(xí)Excel

IMG_256

相關(guān)推薦:

4種刪除excel重復(fù)值的小妙招,速收藏

兩個(gè)神仙技巧,帶你看破excel統(tǒng)計(jì)不重復(fù)數(shù)的秘密

兩個(gè)神仙技巧,帶你看破excel統(tǒng)計(jì)不重復(fù)數(shù)的秘密(下篇)

Excel,原來(lái)你有真假重復(fù)!

版權(quán)申明:

本文作者E圖表述;同時(shí)部落窩教育享有專有使用權(quán)。若需轉(zhuǎn)載請(qǐng)聯(lián)系部落窩教育。