(Excel)常用函數公式及操作技巧之三:
排名及排序篩選(二)
——通過知識共享樹立個人品牌。
求最精簡的自動排名公式
=RANK(E2,$E$2:$E$21)
=RANK(A2,$A$2:$A$9,0)
=RANK(A2,$A$2:$A$10)+COUNTIF($A$2:$A2,$A2)-1(如果數據列中數值有相同)
=RANK(F10,$F10:$Q10)+COUNTIF($F10:F10,F10)-1
=INDEX(A:A,1/MOD(LARGE(E$2:E$21+1/ROW($2:$21),ROW(1:1)),1))
=LOOKUP(1,0/(($F$2:$F$21=A27)*(COUNTIF(D$26:D26,$A$2:$A$21)=0)),$A$2:$A$21)=INDIRECT("A"&RIGHT(LARGE(($E$2:$E$21*100+ROW($A$2:$A$21)),ROW(A1)),2))
=RANK(C2,OFFSET($C$1,MATCH(E2,$E$2:$E$768,),,COUNTIF($E$2:$E$768,E2)))
數組公式
{=INDEX(A:A,MOD(LARGE(E$2:E$21*100+ROW($2:$21),ROW(1:1)),100))}
{=OFFSET($A$1,RIGHT(LARGE($E$2:$E$21*1000+ROW($E$2:$E$21),ROW()-25),3)-1,,)}
=OFFSET($A$1,RIGHT(LARGE(($E$2:$E$21*100+ROW($A$1:$A$20)),ROW(A3)),2),)
=TEXT(SUMPRODUCT(($E$2:$E$21>=E2)/COUNTIF($E$2:$E$21,$E$2:$E$21)),"第[DBNUM1]G/通用格式名")
排序后排名
{=SUM(IF($B$2:$B$15>=B2,1/COUNTIF($B$2:$B$15,$B$2:$B$15)))}
=SUMPRODUCT((B$2:B$15>=B2)/COUNTIF(B$2:B$15,B$2:B$15))
位次排名
{=IF($B2:$O2>=0,RANK($B2:$O2,$B2:$O2,0),)}
根據雙列成績進行共同排名
=RANK(C345,($C$345:$C$356,$H$345:$H$356))
在雙列間排名
=RANK(B2,($B$2:$B$26,$E$2:$E$16))
等次排名
由大到小排名
=RANK(B3,$B$3:$B$12)
=SUMPRODUCT(($A$16:$A$25=A16)*($B$16:$B$25>B16))+1
由小到大排名
=RANK(B3,$B$3:$B$12,1)
=SUMPRODUCT(($A$16:$A$25=A16)*($B$16:$B$25<B16))+1
不等次排名(行小排先)
由大到小
=RANK(B3,$B$3:$B$12)+COUNTIF($B$3:B3,B3)-1
=SUMPRODUCT(($A$16:$A$25=A16)*($B$16:$B$25-ROW($B$16:$B$25)/10000>B16-ROW(B16)/10000))+1
由小到大
=RANK(B3,$B$3:$B$12,1)+COUNTIF($B$3:B3,B3)-1
=SUMPRODUCT(($A$16:$A$25=A16)*($B$16:$B$25+ROW($B$16:$B$25)/10000<B16+ROW(B16)/10000))+1
不等次排名(行大排先)
由大到小
=COUNT($B$3:$B$12)-RANK(B3,$B$3:$B$12,1)-COUNTIF($B$3:B3,B3)+2
=SUMPRODUCT(($A$16:$A$25=A16)*($B$16:$B$25+ROW($B$16:$B$25)/10000>B16+ROW(B16)/10000))+1
由小到大
=COUNT($B$3:$B$12)-RANK(B3,$B$3:$B$12)-COUNTIF($B$3:B3,B3)+2
=SUMPRODUCT(($A$16:$A$25=A16)*($B$16:$B$25-ROW($B$16:$B$25)/10000<B16-ROW(B16)/10000))+1
順次排名
由大到小
=SUMPRODUCT((B$3:B$12>B3)*(1/COUNTIF(B$3:B$12,B$3:B$12)))+1
=SUMPRODUCT(($A$16:$A$25=A16)*($B$16:$B$25>B16)/COUNTIF($K$16:$K$25,$K$16:$K$25))+1
由小到大
=SUMPRODUCT((B$3:B$12<B3)*(1/COUNTIF(B$3:B$12,B$3:B$12)))+1
=SUMPRODUCT(($A$16:$A$25=A16)*($B$16:$B$25<B16)/COUNTIF($K$16:$K$25,$K$16:$K$25))+1
有並列排名
=RANK(B2,$B$2:$B$20)
=SUMPRODUCT(1*($B$3:$B$21>B3))+1
=COUNTIF($B$3:$B$21,">"&B3)+1
{=SUM(IF($B$3:$B$21>B3,1,0))+1}
=19-FREQUENCY($B$3:$B$21,B3)+1
=SUMPRODUCT(($B$2:$B$20>=B2)/COUNTIF($B$2:$B$20,$B$2:$B$20))
無並列排名
=RANK(B3,$B$3:$B$21)+COUNTIF($B$3:$B3,B3)-1
=SUMPRODUCT((B3-ROW()/1000<$B$3:$B$21-ROW($B$3:$B$21)/1000)*1)+1
=19-FREQUENCY($B$3:$B$21-ROW($B$3:$B$21)/1000,B3-ROW()/1000)+1
{=SUM(IF($B$3:$B$21-ROW($B$3:$B$21)/1000>B3-ROW()/1000,1,0))+1}
有並列分段排名
=SUMPRODUCT(($A$3:$A$21=A3)*($C$3:$C$21>C3))+1
=19-FREQUENCY(($A$3:$A$21=A3)*($C$3:$C$21),C3)+1
{=MATCH(C3,LARGE(OFFSET($C$2,IF($A$3:$A$21=A3,ROW($A$3:$A$21)-2),),ROW(INDIRECT("1:"&COUNTIF($A$3:$A$21,A3)))),0)}
{=MATCH(C3,LARGE(IF($A$3:$A$21=A3,$C$3:$C$21),ROW(INDIRECT("1:"&COUNTIF($A$3:$A$21,A3)))),0)}
{=SUMPRODUCT(($A$3:$A$21=A3)*($C$3:$C$21>C3)/COUNTIF($N$3:$N$21,$N$3:$N$21))+1}(需輔助列)
無並列分段排名
{=SUMPRODUCT(($A$3:$A$21=A3)*($C$3:$C$21-ROW($C$3:$C$21)/10000>C3-ROW(C3)/10000))+1}
=19-FREQUENCY(($A$3:$A$21=A3)*($C$3:$C$21-ROW($C$3:$C$21)/1000),C3-ROW()/1000)+1
成績排名
序號 |
姓名 |
語文 |
數學 |
英語 |
1 |
楊增海 |
135 |
136 |
146 |
2 |
郭愛玲 |
138 |
137 |
141 |
3 |
華志鋒 |
134 |
138 |
141 |
4 |
袁文飛 |
134 |
143 |
135 |
能否用一個公式直接找出所用考生中語文成績中第100名的成績是多少?
=LARGE(C2:C417,100)
=PERCENTILE(C2:C417,(416-100)/416)
=PERCENTILE($C$2:$C$417,(COUNTA($C$2:$C$417)-100)/COUNTA($C$2:$C$417))
能否用一個公式直接找出所用考生中語文成績中按與考人數的35%切線中位於第35%的成績是多少?
升冪
=SMALL(C2:C417,416*0.35)
=PERCENTILE($C$2:$C$417,0.35)
降冪
=LARGE(C2:C417,416*0.35)
=PERCENTILE($C$2:$C$417,1-0.35)
如何排名
1、對英語進行排名,缺考不計算在內。
2、對英語進行排名,缺考計算在內。
英語 |
英語排名 |
42 |
9 |
62 |
3 |
72 |
1 |
48 |
5 |
48 |
5 |
72 |
1 |
54 |
4 |
42 |
9 |
缺考 |
|
缺考 |
|
45 |
8 |
46 |
7 |
缺考不計算在內
b2=IF(A2="缺考","",RANK(A2,$A$2:$A$13)) 然后按照B列排序
缺考計算在內
=IF(A2="缺考",COUNTIF($A$2:$A$13,">=0")+1,RANK(A2,$A$2:$A$13))
=IF(A2="缺考",COUNT($A$2:$A$13)+1,RANK(A2,$A$2:$A$13,0))
數據排名(隔幾行排名)
=IF(A2="","",RANK(A2,$A$2:$A$11,0))
如果隔幾行排名,如下表,第五行、第九行和第十二行不參與排名。
單位 |
數據 |
排名 |
A |
1 |
8 |
A |
5 |
7 |
A |
6 |
6 |
小計 |
12 |
|
B |
8 |
4 |
B |
9 |
3 |
B |
7 |
5 |
小計 |
24 |
|
C |
18 |
1 |
C |
11 |
2 |
小計 |
29 |
|
=IF(A2="小計","",RANK(B2,(B$2:B$4,B$6:B$8,B$10:B$11))) 下拉
根據分數進行倒排名
=RANK($E3,$E$3:$E$22,1)
=RANK(K60,$K$60:$K$83,1)
=COUNTIF($K$60:$K$83,"<"&K60)+1
倒數排名函數是什么
1為正排序,0為逆排序。
倒數排名=RANK(A2,$A$2:$A$5,0)
正數排名=RANK(A2,$A$2:$A$5,1)
如何實現每日各車間產量的排名
=RANK(C2,OFFSET($C$2:$C$5,MATCH(A2,$A$2:$A$1000,0)-1,,,))
=RANK(C2,OFFSET($C$2:$C$5,MATCH(A2,$A$2:$A$33,0)-1,,,))
分數相同時按照一科的分數進行排名
{=MATCH(K308*100+D308,LARGE($K$308:$K$331*100+$D$308:$D$331,ROW($K$308:$K$331)-307),)}
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
篩選后自動產生序列號並匯總
自動產生序列號:在A1輸入以下公式,往下拖。
=SUBTOTAL(3,$B$2:B2)*1
自動匯總,用以下公式:
=SUBTOTAL(9,$B$2:B2)
說明:匯總時,不要在“全選”狀態下進行,先“篩選”出某一單位,自動求和∑。然后再恢復到“全選”或者選擇任何單位,就能自動匯總了(在“篩選”出某一單位進行求和時,一般表格會自動產生以上匯總公式)。
其它:如同時要在其它單元格顯示人數,在“全選”狀態下,選定單元格,點“fx”(用“sum”函數)再點擊序列號最末尾數,即可。
如何篩選奇數行
公式=MOD(A1,2)=1
函數篩選姓名
如何把兩列中只要包含A和A+的人員篩選出來
=IF(ISNUMBER(FIND("A",C2))+ISNUMBER(FIND("A",B2))>0,"OK","")
名次篩選
名次=RANK(K5,K$2:K$435)
班名次=RANK(K6,OFFSET(K$2,MATCH(A6,A:A,)-2,,COUNTIF(A$1:A$500,A6)))
如何實現快速定位(篩選出不重復值)
=IF(COUNTIF($A$2:A2,A2)=1,A2,"")
=IF((COUNTIF($A$2:A2,A2)=1)=TRUE,A2,"")
=INDEX(A:A,SMALL(IF(MATCH(A$1:A$20,A$1:A$20,)=ROW($1:$20),ROW(A$1:A$20),65536),ROW()))&""(數組公式)
如何請在N列中列出A1:L9中每列都存在的數值
{=IF(ROW()>SUM(--x),"",INDEX(A:A,SMALL(IF(x,ROW($A$1:$A$9)),ROW())))}
自動為性別編號的問題
有一個編碼,5位,第1位,1為男,2為女,后面4位,代表他的編號,從0001-9999,如何達到下表:
性別 編碼
男 10001
男 10002
女 20001
男 10003
女 20002
男的也是從0001-9999
女的也是從0001-9999
如果你是已經輸入了其它信息,僅僅為快速輸入編碼的話。用篩選可以實現吧。
先以“男”為關鍵字進行排序,然后在第一個男的編碼輸入10001,下拉復制到最后一單即可。同理再以“女”排序。完成目標。
用公式:=IF(A2="",TEXT(COUNTIF(A$2:A2,A2),"10000"),TEXT(COUNTIF(A$2:A2,A2),"20000"))向下拖