2012-01-06 16 views
-1

列 "F"に10個の最高値を見つけるループを作成するのに役立つ必要があります。選択された10個の最高値のそれぞれについて、その値(および列C、D、およびEの関連値も)を別のスプレッドシートに貼り付けたいとします。上位10個の最大値を選択

おかげ

+4

データをtrigggerするthreasholdを取得するためにSUBAggregateLargeです。ドロップダウン矢印をクリックします。 「Top 10 ...」を選択します。 – GSerg

答えて

4

Aggregate関数は(とりわけ)エラー値を無視するように設計されています。フィルタ - - オートフィルタここにコピーコード

Sub GetTop10(r As Range) 
    Dim v As Variant 
    Dim t As Variant 
    Dim i As Long 

    ' 14 = function LARGE 
    ' 6 = ignore error values 
    ' 10 = get 10'th largest value 
    t = Application.WorksheetFunction.Aggregate(14, 6, r, 10) 
    v = r 
    For i = 1 To UBound(v, 1) 
     If Not IsError(v(i, 1)) Then 
      If v(i, 1) >= t Then 
       ' copy r.cells(i,-2).resize(1,4) to your other sheet 
      End If 
     End If 
    Next 
End Sub 
+0

これは完璧です、ありがとうございます。 – rjk

+0

お世話になりました。これがあなたの質問に答えるなら、それを受け入れてください(ダニをクリックしてください) –

関連する問題