excel 排序問題2

2008-08-24 5:49 pm
我之前已經問過一次有關排序的問題, 而家有少少modify,

有一個database, 入面有4行

column A--Average mark [用average計]
column B--name [用index由第二個database抽出黎]
column C--English mark [用index由第二個database抽出黎]
column D--Chinese mark [用index由第二個database抽出黎]

(Ave)___(Name)____(Eng)____(Chin)
1________apple_____49________81
0________orange____55________93
0________red ______66________27
1________blue______91________65
0________green_____44________89
1________pink______66________47
0________purple____66________98
1________black_____87________65
1________white_____82________81
0________brown____97________57
1________grey______66________73

我想做到第5-8 column出一個新list
將人名排序***

1. 首先要base on average mark
只要shown average mark=1的名
=0 可以唔使理

2. 再base on english mark來將剩下的人名排序
由大至小

3. 如果english mark同分的話, 就用chinese mark再排


之後就出左
column E--corresponing Average mark
column F--排序後的name [***]
column G--corresponng English mark
column H--corresponing Chinese mark

最後會出現這樣的column E,F,G,H
1________blue______91________65
1________black_____87________65
1________white_____82________81
1________grey______66________73
1________pink______66________47
1________apple_____49________81

我要全自動, 不可以用人手SORT

可以做到嗎??

請教教我吧~!!

100萬個感激!!!!

回答 (1)

2008-08-25 8:00 am
✔ 最佳答案
閣下此題提問得相當清楚及嚴謹
為求更清晰, 我再加多兩個條件
- Column A, 一定是 0 或 1
- 如英文 和 中文都同分, 則根據原有先後次序來排列

假設第一行是Heading, 數據在第二行開始
在E2輸入陣列公式:
=IF(ROW(A1)>SUM($A$2:$A$100),"",INDEX(A$2:A$100,MATCH(LARGE($A$2:$A$100*($C$2:$C$100 $D$2:$D$100% ROW($2:$100)%%),ROW(A1)),$A$2:$A$100*($C$2:$C$100 $D$2:$D$100% ROW($2:$100)%%),)))
將E1 右拉, 下拉

如原數據不斷變化, 或新增數據, 排序結果都會全自動更新

2008-08-25 00:29:51 補充:
此陣列公式較正確(假設中文、英文都同分:
=IF(ROW(A1)>SUM($A$2:$A$100),"",INDEX(A$2:A$100,MATCH(LARGE($A$2:$A$100*($C$2:$C$100+$D$2:$D$100%+(1/ROW($2:$100))%%),ROW(A1)),$A$2:$A$100*($C$2:$C$100+$D$2:$D$100%+(1/ROW($2:$100))%%),)))


收錄日期: 2021-04-19 01:43:33
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20080824000051KK00596

檢視 Wayback Machine 備份