在【城市合伙人社群】創(chuàng)作101第一季活動(dòng)中,通過(guò) 幫簡(jiǎn)小哥在聊天記錄中自動(dòng)統(tǒng)計(jì)日更與點(diǎn)評(píng)數(shù)據(jù) 得到了每天日更和點(diǎn)評(píng)統(tǒng)計(jì)信息,簡(jiǎn)小哥每周將本周五天的數(shù)據(jù)(「最終成果」工作表)的簡(jiǎn)書(shū)昵稱和簡(jiǎn)書(shū)主頁(yè)兩列內(nèi)容匯總到一起,然后再統(tǒng)計(jì)本周每個(gè)作者的日更次數(shù),最后根據(jù)日更次數(shù)從高到低進(jìn)行排序。
這個(gè)工作可以通過(guò)手工來(lái)處理,處理步驟如下:
1、將匯總的數(shù)據(jù)復(fù)制一份在新的工作表,然后選中所有數(shù)據(jù),選擇 數(shù)據(jù)→刪除重復(fù)項(xiàng),這樣得到一個(gè)沒(méi)有重復(fù)的作者清單。
2、用COUNTIF鏈接到原表,統(tǒng)計(jì)每個(gè)簡(jiǎn)書(shū)昵稱的日更次數(shù);
3、根據(jù)日更次數(shù),用 數(shù)據(jù)→排序 對(duì)日更次數(shù)列進(jìn)行降序排列,完成工作。
考慮到該工作每周都要做,于是研究自動(dòng)化實(shí)現(xiàn)的可能。
一、刪除重復(fù)項(xiàng)
原始數(shù)據(jù)簡(jiǎn)書(shū)昵稱和簡(jiǎn)書(shū)主頁(yè)在A、B列,在D列先將不重復(fù)的簡(jiǎn)書(shū)昵稱用萬(wàn)金油公式構(gòu)造數(shù)組過(guò)濾出來(lái)。公式如下:
{=INDEX(A:A, SMALL(IF(MATCH($A$2:$A$128, $A$2:$A$128,0) = ROW($A$2:$A$128) -1, ROW($A$2:$A$128), 4^8), ROW(A1)))&""}
萬(wàn)金油公式之前介紹過(guò),這里不再重復(fù)。這里介紹一下MATCH函數(shù),該函數(shù)形式如下:
MATCH(lookup_value, lookup_array, match_type)
該函數(shù)返回符合特定值特定順序的項(xiàng)在數(shù)組中的相對(duì)位置。換句話說(shuō),用match_type方式,在lookup_array中查找lookup_value值,返回lookup_value在lookup_array中的位置。match_type的參數(shù)值如下:
1或省略。查找小于等于lookup_value的最大值。lookup_array必須升序排列。
0。查找等于lookup_value的第一個(gè)值。lookup_array可無(wú)序。
-1。查找大于等于lookup_value的最小值。lookup_array必須降序排列。
注意:
1、上述公式里面MATCH($A$2:$A$128, $A$2:$A$128,0) = ROW($A$2:$A$128) -1,數(shù)據(jù)是從第二行開(kāi)始,減去去1行,如數(shù)據(jù)從第7行開(kāi)始,這里應(yīng)該減去6。
2、MATCH函數(shù)里不能有空行,也就是數(shù)據(jù)到多少行就填多少行,這里是數(shù)據(jù)從第2行到第128行,如果數(shù)據(jù)改成了第3行開(kāi)始,第86行結(jié)束,那公式應(yīng)改為:MATCH($A$3:$A$86, $A$3:$A$86,0) = ROW($A$3:$A$86) -2。
二、建立自動(dòng)排序輔助列
排序的目標(biāo)是將日更次數(shù)從大往小排列,同樣日更次數(shù)的簡(jiǎn)書(shū)昵稱隨意排列,Excel函數(shù)RANK只能得到日更次數(shù)的排名,無(wú)法自動(dòng)將數(shù)據(jù)根據(jù)日更次數(shù)進(jìn)行重新排列。那么需要借助其他方法來(lái)進(jìn)行數(shù)據(jù)的自動(dòng)排序。
經(jīng)過(guò)研究,用COUNTIF函數(shù)在E2列得到每個(gè)簡(jiǎn)書(shū)昵稱的日更次數(shù),公式如下:
=COUNTIF($A$2:$A$500,D2)
對(duì)于同樣日更次數(shù)的簡(jiǎn)書(shū)昵稱沒(méi)法進(jìn)行區(qū)分,必須加以區(qū)分才能處理。這里用了一個(gè)小技巧:因處理的數(shù)據(jù)不會(huì)超過(guò)1000行,那么日更次數(shù)×1000+它的序號(hào)(行號(hào)-1),就能將所有的數(shù)據(jù)加以區(qū)分。即公式如下:
=COUNTIF($A$2:$\A$500,D2)1000+ROW(D2)-1*
這里特別說(shuō)明一下,如學(xué)校招生考試成績(jī)統(tǒng)計(jì),在總分相同的情況下,語(yǔ)數(shù)外的總分高的排名在前,那么此時(shí)可以將行號(hào)替換為語(yǔ)數(shù)外總分的排名;如果語(yǔ)數(shù)外成績(jī)還相同的情況下,體育成績(jī)高的排名在前,類似地,可以將第一排名×第一排名系數(shù)+第二排名×第二排名系數(shù)+第三排名,第一、第二排名系數(shù)可根據(jù)實(shí)際情況調(diào)整,以第二排名最大值×第二排名系數(shù)<第一排名最小值×第一排名系數(shù)為好。
三、通過(guò)輔助列進(jìn)行自動(dòng)排序
作為最后的結(jié)果,在G列增加序號(hào)便于查看,H列作為最終排序的簡(jiǎn)書(shū)昵稱,用函數(shù)INDEX、MATCH、LARGE(與之前介紹過(guò)SMALL的完全一樣,只是返回最大值)和ROW函數(shù)構(gòu)造數(shù)組通過(guò)輔助列E列進(jìn)行自動(dòng)排序。公式如下:
{=INDEX(D:D, MATCH(LARGE($E:$E, ROW(1:1)), $E:$E, 0))}
這樣得到了根據(jù)日更次數(shù)排序后的簡(jiǎn)書(shū)昵稱。
得到了簡(jiǎn)書(shū)昵稱之后,在 I 列利用VOOKUP從原始數(shù)據(jù)A、B列查找對(duì)應(yīng)的作者主頁(yè),在 J 列利用COUNTIF從原始數(shù)據(jù)重新得到日更次數(shù)。這樣整個(gè)自動(dòng)排序就完成了。

四、總結(jié)
1、每次只需將每周五天的統(tǒng)計(jì)數(shù)據(jù)結(jié)果匯總到A、B列,然后將D2的公式根據(jù)數(shù)據(jù)的實(shí)際行數(shù)進(jìn)行調(diào)整,之后按CTRL+SHIFT+ENTER三個(gè)鍵,即可得到根據(jù)日更次數(shù)自動(dòng)化排序的結(jié)果。
2、D列的拖拉只能剛好拉到?jīng)]有數(shù)據(jù)為止,當(dāng)然可以先多拉一些行,發(fā)現(xiàn)為空,直接刪除,后面的自動(dòng)會(huì)變?yōu)檎_的結(jié)果。
3、其實(shí)將五天的數(shù)據(jù)匯總也可以用VBA代碼或數(shù)據(jù)透視表等多種方式實(shí)現(xiàn)數(shù)據(jù)自動(dòng)化匯總。只是考慮到這個(gè)數(shù)據(jù)量不大,匯總?cè)昼娮笥铱梢酝瓿?,就沒(méi)有采取這樣的方案。如果數(shù)據(jù)量比較大,工作簿匯總個(gè)數(shù)比較多,可以進(jìn)一步進(jìn)行自動(dòng)處理。這樣,從數(shù)據(jù)源“聊天記錄”到最終結(jié)果“日更次數(shù)排名”都可以實(shí)現(xiàn)自動(dòng)化鏈接,最大限度的降低手工工作量。