関数・メソッド

データ範囲から上位の値を絞り込む【AutoFilterメソッド】【ExcelVBA】

上位の値を絞り込む

AutoFilterメソッドXlAutoFilterOperator定数を使って上位のデータのみ絞り込むことができます。
「売上トップ10」など上位10番のみ表示したい場合に使えます。

使い方
セル範囲.AutoFilter Field:=列番号, Criteria1:=件数, Operator:=xlTop10Items/xlTop10Percent

xlTop10Items 指定した件数分、上位の値から絞り込む
xlTop10Percent データ件数の何%かを上位から絞り込む

 

サンプルコード

まず、以下の表をA1セルに貼り付けてください。

氏名 文理科目 偏差値
Aさん 文系 56
Bさん 理系 58
Cさん 文系 47
Dさん 文系 30
Eさん 理系 60
Fさん 理系 45
Gさん 文系 55
Hさん 理系 53
Iさん 文系 45
Jさん 文系 58
Public Sub Sample()
  '3列目データの上位5番目までを絞り込む。
  Range("A1").AutoFilter Field:=3, Criteria1:=5, Operator:=xlTop10Items
End Sub

Public Sub Sample2()
  '3列目データ件数の20%を上位から絞り込む。
  Range("A1").AutoFilter Field:=3, Criteria1:=20, Operator:=xlTop10Percent
End Sub


 

注意点

  • Sample実行後、フィルターを解除してください。
  • 引数Criteria1 には xlTop10Items は絞り込む件数、xlTop10Percent は絞り込む%を指定できます。
  • xlTop10Percent は、絞り込み件数から何%の数だけ絞り込む(表示する)というものです。
    10件のデータから10%を絞り込むと、その中の最上位1件だけ表示します。
    データが20件で10%の絞り込みであれば、1位と2位の2件が表示されます。
    ※上位に同数の値が何件か存在する場合、10%を超えた件数が表示される場合があります。
例)20人のテストの点数に xlTop10Percent で10%を指定すると…
・上位が100点と99点の2人の場合→この2件が表示される
・上位が100点1人と99点2人の場合→この3件が表示される
・100点が3人の場合→3件(100点のみ)表示される

 

関連記事

コメント