數(shù)據(jù)去重復(fù)是工作表函數(shù)長(zhǎng)久以來的痛點(diǎn)之一,為了實(shí)現(xiàn)這個(gè)功能,前輩們煞費(fèi)苦心,鉆研各種套路,但最終成型的公式要么復(fù)雜要么效率低下,所以一旦有人詢問大量數(shù)據(jù)動(dòng)態(tài)去重復(fù)的問題,會(huì)函數(shù)的那人往往臉一拉,手一抬——你用透視表吧。下圖所示是一張成績(jī)表,A-E列分別是班級(jí)、組、姓名、科目、成績(jī)等信息,部分字段存在重復(fù)值,現(xiàn)在需要在G列獲取不重復(fù)的姓名名單。G2=INDEX(C:C,MATCH(0,COUNTIF(G$1:G1,C$2:C$37),)+1) G2=INDEX(C:C,SMALL(IF(MATCH(C$2:C$37&'',C$2:C$37&'',0)=ROW($1:$36),ROW($2:$37)),ROW(A1))) 解法1用到了COUNTIF函數(shù),公式看起來比較簡(jiǎn)潔,但數(shù)據(jù)量稍大運(yùn)算效率就斷崖式下滑。解法2呢?你也看出來,公式很煩瑣,編寫調(diào)試都不容易,最終運(yùn)算效率也不高。這還只是單列數(shù)據(jù)去重復(fù),如果需要班級(jí)、小組、姓名三列同時(shí)去重復(fù)呢?打個(gè)響指,事已至此——前戲就鋪的差不多了。 這事如果使用365新函數(shù)UNIQUE簡(jiǎn)直不要太簡(jiǎn)單。該函數(shù)可以返回?cái)?shù)據(jù)源唯一值列表,按照動(dòng)態(tài)數(shù)組的規(guī)則,會(huì)自動(dòng)將6個(gè)結(jié)果依次顯示在G2:G7單元格區(qū)域中。而如果需要班級(jí)、小組、姓名三列同時(shí)去重復(fù)呢?…… 作為一個(gè)有經(jīng)歷的函數(shù)老人,事情解決的如此簡(jiǎn)單,我一時(shí)間也不知道該說什么好。=UNIQUE(數(shù)據(jù)源,[去重方向],[是否返回只出現(xiàn)1次的項(xiàng)])它有三個(gè)參數(shù),第2、3參數(shù)都是可選的。第2參數(shù)指定了去重的方向,是按行還是按列去重,F(xiàn)ALSE代表行,TRUE代表列,默認(rèn)是行。第3參數(shù)也是一個(gè)邏輯值,如果是FALSE,則返回唯一值列表;如果是TRUE,則返回只出現(xiàn)1次的數(shù)據(jù)。關(guān)于2、3參數(shù),我分別舉一個(gè)例子,你看一下也就明白了。如下圖所示數(shù)據(jù)為例,需要在G列統(tǒng)計(jì)不重復(fù)的人名,并按逗號(hào)作為分隔符合并。=TEXTJOIN(',',1,UNIQUE(B2:F2,1)) UNIQUE(B2:F2,1)獲取B2:F2單元格區(qū)域的唯一值,這是一個(gè)單行區(qū)域,需要按不同列去重,因此第2參數(shù)設(shè)置為1,也就是TRUE。最后再使用TEXTJOIN函數(shù)將唯一值合并為一個(gè)字符串即可。獲取只出現(xiàn)一次的數(shù)據(jù)如下圖所示數(shù)據(jù)為例,需要在C列統(tǒng)計(jì)A列只出現(xiàn)1次的人員名單。注意這兒指的是只出現(xiàn)1次,而不是唯一值。比如'二肥'這個(gè)人名出現(xiàn)了很多次,太油膩,就不符合計(jì)算規(guī)則,不應(yīng)出現(xiàn)在C列的結(jié)果表里。第3參數(shù)為1,等同邏輯值TRUE,表示統(tǒng)計(jì)只出現(xiàn)1次的數(shù)據(jù)。很多時(shí)候去重不只是結(jié)果,還有可能是過程。如下圖所示的數(shù)據(jù)為例,需要在C列計(jì)算中式排名。所謂中式排名也就是不重復(fù)計(jì)數(shù),統(tǒng)計(jì)大于指定值的不重復(fù)的個(gè)數(shù)。解法1:數(shù)組+倒數(shù)運(yùn)算: ▼=SUMPRODUCT((B$2:B$12>=B2)/COUNTIF(B$2:B$12,B$2:B$12)) 而如果使用UNIQUE函數(shù)就很簡(jiǎn)單明了了=SUM((UNIQUE(B$2:B$12)>B2)*1)+1 UNIQUE(B$2:B$12)返回B2:B12區(qū)域唯一值列表,然后和B2作比較,如果大于B2則返回TRUE,否則返回FALSE,乘1后邏輯值轉(zhuǎn)換為數(shù)值,再用SUM求和,最后加1即為結(jié)果。解法3:動(dòng)態(tài)數(shù)組▼=MATCH(B2,SORT(UNIQUE(B2:B12),1,-1),0) 使用SORT函數(shù)對(duì)UNIQUE返回的唯一值列表降序排列,再用MATCH函數(shù)查詢B列成績(jī)?cè)谠摻Y(jié)果中首次出現(xiàn)的序列號(hào),也就是中式排名的結(jié)果。這里我們用了一個(gè)陌生的函數(shù):SORT。它的主要作用是排序,這是我們下一章要聊的主題函數(shù)。https://pan.baidu.com/s/1NqmPfFo8vkdG3HvFvwQGdg
|