A1實驗項目, B1驗結果(實數)-----標題
A2~A21共20個實驗項目(文字)
B2~B21共20個實驗結果(實數)
實驗項目均不同, 但實驗結果數值可能相同
如何找到最大的5組實驗結果及項目, 放於D及E欄
C欄為項次(C2為1, C3為2,C4為3,C5為4,C6為5)
D欄放實驗項目, E欄放實驗結果
大值放上面(row2), 小值放下面(row6)
若不同之實驗項目有6相同最大實驗結果, 可放任意5組
實驗結果最大值有2個相同, 則第1及2組均放最大值, 另3組放第2~4大值
.......以此類推
請使用函數, 公式, 陣列.....
希望 : 當B2~B21被輸入時, D欄 E欄之結果自動產生, 不需要再做任何動作
2005-05-16 07:45:43 · 2 個解答 · 發問者 Anonymous in 電腦與網際網路 ➔ 軟體
基本上要自動產生是不可能的,因為沒有排序的函數。但是你可以依下列步驟錄成一個巨集,以後產生資料後,執行一次巨集就可以了選擇 Sheet1 A1:B21,然後複製切換到 Sheet2,點選 A1,然後貼上執行排序,依實驗結果遞減選擇 A1:B6,然後複製切換到 Sheet1,點選 D1,然後貼上錄製完的巨集如下所示Sub Macro1()'' Macro1 Macro' Johnny 在 2005/5/26 錄製的巨集'' 快速鍵: Ctrl+m' Range("A1:B21").Select Selection.Copy Sheets("Sheet2").Select Range("A1").Select ActiveSheet.Paste Application.CutCopyMode = False Selection.Sort Key1:=Range("B2"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlStroke, DataOption1:=xlSortNormal Range("A1:B6").Select Selection.Copy Sheets("Sheet1").Select Range("D1").Select ActiveSheet.PasteEnd Sub補充經過 Blanco 的教導,終於找到用函數的方式了,假設資料如下
圖片參考:http://tinypic.com/5ehnp4
則 E2 的公式為=LARGE($B$2:$B$21,1)E3 的公式為,其他依此類推=LARGE($B$2:$B$21,2)而 D2 的公式為,其餘直接 Copy 就可以了=INDEX($A$2:$A$21,MATCH(E2,$B$2:$B$21,0),1)再補充必須再新增兩個欄位,若你覺得不好看,到時候可以把這兩欄隱藏起來。首先在 F2 輸入下列公式,並往下複製到 F6=MATCH(E2,$B$2:$B$21,0)接著在 G2 輸入下列公式,同樣複製到 G6,這個公式的目的為若發現有相同的項目,則將原有項目排除,重新搜尋=IF(F2=F1,MATCH(E2,OFFSET($B$2,G1,0,20-G1,1),0)+G1,F2)然後將原有 D2 的公式修改如下,並複製到 D6 即可=INDEX($A$2:$A$21,G2,1)
2005-06-02 09:28:10 補充:
這都是因為這裡有一位很好的 Blanco 老師
2005-05-26 17:26:40 · answer #1 · answered by ? 7 · 0⤊ 0⤋
真是太棒ㄌ
不只可以找到前5大
更可以
全部排序
2005-06-01 05:15:11 · answer #2 · answered by son 6 · 0⤊ 0⤋