【Excel】エクセルで上位10件を抽出する(LARGE・RANK・条件付き書式・関数)方法
Excelを使ってデータを分析する場面では、「売上上位10件を確認したい」「成績の高い順に並べたい」といったニーズが頻繁に発生します。
しかし、大量のデータの中から上位10件を素早く・正確に抽出する方法がわからず、手作業で並べ替えている方も多いのではないでしょうか。
本記事では、LARGE関数・RANK関数・条件付き書式・その他の関数を活用して、エクセルで上位10件を抽出するさまざまな方法をわかりやすく解説します。
目的や状況に合わせた手法を身につけることで、日々のデータ集計・分析作業が格段にスムーズになるでしょう。
エクセルで上位10件を抽出するには関数と条件付き書式を組み合わせるのが効果的
それではまず、エクセルで上位10件を抽出する方法の全体像と、最も効果的なアプローチについて解説していきます。
エクセルで上位10件を抽出する方法は、大きく分けて「関数を使う方法」と「条件付き書式を使う方法」の2種類があります。
どちらか一方だけを使うよりも、両方を組み合わせることで視覚的にもわかりやすい分析が可能になります。
関数を使う方法では、LARGE関数やRANK関数を使って上位10件の値を別のセルに取り出したり、順位を付けたりすることができます。
一方、条件付き書式を使う方法では、元のデータ表の中で上位10件のセルを自動的に色付けして強調表示することができます。
上位10件の抽出では「値を別セルに取り出したいのか」「元の表を視覚的に強調したいのか」によって使うべき手法が異なります。
目的を明確にしてから手法を選ぶことが、効率的な作業の第一歩です。
以下の表で、各手法の特徴と向いているケースをまとめましたので、ぜひ参考にしてみてください。
| 手法 | 主な用途 | 向いているケース |
|---|---|---|
| LARGE関数 | 上位N番目の値を取り出す | 上位10件の値一覧を別表に作りたいとき |
| RANK関数 | 各データに順位を付ける | 元の表に順位列を追加したいとき |
| 条件付き書式 | 上位10件を色でハイライト | 素早く視覚的に上位を把握したいとき |
| FILTER関数(Excel365) | 上位10件の行ごと抽出 | 名前・値など行全体のデータが必要なとき |
LARGE関数を使ってエクセルで上位10件の値を抽出する方法
続いては、LARGE関数を使った上位10件の値の抽出方法を確認していきます。
LARGE関数は、指定した範囲の中でN番目に大きい値を返す関数です。
上位1位から10位までの値を順番に取り出したいときに非常に便利な関数といえるでしょう。
LARGE関数の基本的な書き方
LARGE関数の基本的な構文は以下のとおりです。
LARGE(配列, 順位)
配列 :対象となる数値の範囲
順位 :何番目に大きい値を取り出すかを指定する数値
たとえば、A2からA101までのセルに売上データが入っている場合、1位から10位の値を取り出すには以下のように入力します。
1位の値 → =LARGE($A$2:$A$101, 1)
2位の値 → =LARGE($A$2:$A$101, 2)
3位の値 → =LARGE($A$2:$A$101, 3)
(以降、10位まで順位の数字を変えて入力)
順位の部分に「ROW(A1)」などを組み合わせると、数式をコピーするだけで1位から10位の値を連続して取り出すことが可能です。
LARGE関数と行番号を組み合わせた効率的な使い方
上位10件分の数式を1つずつ入力するのは手間がかかります。
そこで、ROW関数と組み合わせることで、1つの数式をコピーするだけで1位から10位まで自動的に取り出すことができます。
=LARGE($A$2:$A$101, ROW(A1))
この数式をC2セルに入力し、C11セルまでコピーすると、
C2に1位、C3に2位、…C11に10位の値が自動で入力されます。
ROW(A1)はそのセルの行番号「1」を返すため、数式を下にコピーするにつれてROW(A2)→2、ROW(A3)→3と順位が自動的に増えていく仕組みです。
同率順位がある場合のLARGE関数の注意点
LARGE関数を使う際に注意が必要なのが、同じ値が複数存在する「同率順位」のケースです。
たとえば、1位と2位に同じ売上金額のデータが2件ある場合、LARGE関数は同じ値を2回返します。
結果として、上位10件のリストに同じ値が重複して表示されることがある点を把握しておきましょう。
同率順位の扱いが重要な場面では、後述するRANK関数やCOUNTIF関数を組み合わせた方法が有効です。
RANK関数・条件付き書式でエクセル上位10件を視覚的に管理する方法
続いては、RANK関数と条件付き書式を活用した上位10件の管理方法を確認していきます。
LARGE関数が「値を取り出す」ための関数であるのに対し、RANK関数は各データに順位を割り当てるための関数です。
元の表に順位列を追加してデータを管理したいときに特に役立ちます。
RANK関数で各データに順位を付ける方法
RANK関数の基本的な構文は以下のとおりです。
RANK(数値, 参照, 順序)
数値 :順位を調べたいセル
参照 :順位を比較する範囲全体
順序 :0または省略で降順(大きい順)、1で昇順(小さい順)
たとえば、A2セルの値がA2からA101の中で何位かを調べるには、以下のように入力します。
=RANK(A2, $A$2:$A$101, 0)
この数式をB列に入力してコピーすると、各行のデータに順位が自動で付きます。
参照範囲は絶対参照($マーク)にしておくことで、数式をコピーしても範囲がずれない点がポイントです。
条件付き書式で上位10件を自動的にハイライト表示する方法
条件付き書式を使うと、数式を入力せずに上位10件のセルを自動的に色付けして強調表示することができます。
操作手順は以下のとおりです。
手順1 上位10件を強調したいデータ範囲を選択する
手順2 「ホーム」タブ →「条件付き書式」→「上位/下位ルール」→「上位10項目」をクリックする
手順3 表示されたダイアログで件数(10)と書式(色など)を設定する
手順4 「OK」をクリックして完了
この方法は設定が非常に簡単で、データが更新されると自動的に上位10件の強調表示も更新されます。
日々データが変わる売上管理表などでは特に便利な機能といえるでしょう。
条件付き書式でLARGE関数を使ったカスタムルールを設定する方法
条件付き書式の「上位10項目」ルールだけでは対応できない細かい条件を設定したい場合は、LARGE関数を組み合わせたカスタム数式ルールが有効です。
手順1 強調したい範囲を選択する(例:A2:A101)
手順2 「ホーム」→「条件付き書式」→「新しいルール」→「数式を使用して、書式設定するセルを決定」を選択する
手順3 数式欄に以下を入力する
=A2>=LARGE($A$2:$A$101,10)
手順4 書式を設定して「OK」をクリックする
この数式は「そのセルの値が10位以上の値以上であれば書式を適用する」という意味になります。
LARGE関数の第2引数を変えることで、上位5件・上位20件なども柔軟に設定できます。
FILTER関数・INDEX関数を使ってエクセル上位10件の行データごと抽出する方法
続いては、FILTER関数やINDEX関数を活用して上位10件の行データごと抽出する方法を確認していきます。
LARGE関数やRANK関数では数値データの抽出・順位付けが中心でしたが、実務では「名前・商品名・担当者などの情報も含めて上位10件を抽出したい」場面も多いでしょう。
そのような場合に活躍するのが、FILTER関数やINDEX関数を使った行データごとの抽出方法です。
FILTER関数でExcel 365環境での上位10件を一括抽出する方法
Excel 365・Excel 2021以降では、FILTER関数を使うことで条件に合う行全体を一括で抽出することができます。
=FILTER(A2:C101, B2:B101>=LARGE(B2:B101,10), “該当なし”)
A2:C101 :抽出したいデータ範囲(名前・売上・日付などの複数列)
B2:B101>=LARGE(B2:B101,10) :上位10位以上の値の行を抽出する条件
“該当なし” :条件に合う行がなかった場合に表示するテキスト
この数式1つで、上位10件に該当する行のすべての列データが自動的に抽出されます。
データが更新されても自動で再計算されるため、動的なランキング表を作りたいときに非常に強力な手法といえるでしょう。
RANK関数とIF関数を組み合わせて上位10件を絞り込む方法
Excel 365以前のバージョンを使っている場合は、RANK関数とIF関数を組み合わせることで上位10件を絞り込む補助列を作成する方法が有効です。
手順1 B列にRANK関数で順位を算出する
=RANK(A2, $A$2:$A$101, 0)
手順2 C列にIF関数で上位10件かどうかを判定する
=IF(B2<=10, "上位10件", "")
手順3 C列を基準にオートフィルターをかけて「上位10件」の行だけを表示する
この方法はどのバージョンのExcelでも使えるため、汎用性の高いアプローチといえます。
LARGE関数とMATCH・INDEX関数を組み合わせて名前を取り出す方法
上位10件の値に対応する名前や商品名を取り出したいときは、LARGE関数・MATCH関数・INDEX関数の組み合わせが便利です。
=INDEX($A$2:$A$101, MATCH(LARGE($B$2:$B$101,1), $B$2:$B$101, 0))
A列 :名前・商品名などのラベル列
B列 :売上などの数値列
この数式で、売上1位の行の名前を取り出すことができます。
LARGE関数の第2引数を1〜10に変えることで、1位から10位それぞれに対応する名前を取り出すことができます。
ただし、同率順位がある場合は同じ名前が重複して取り出される可能性がある点に注意が必要です。
同率順位が多いデータで名前を重複なく取り出したい場合は、COUNTIF関数を組み合わせた重複除去の処理や、FILTER関数の活用を検討しましょう。
データの特性に合わせた関数選びが正確な抽出の鍵となります。
まとめ
本記事では、エクセルで上位10件を抽出するための「LARGE関数」「RANK関数」「条件付き書式」「FILTER関数・INDEX関数」を活用したさまざまな方法を解説しました。
上位10件の値だけを別表に取り出したい場合はLARGE関数、元の表に順位列を付けたい場合はRANK関数、視覚的に素早くハイライトしたい場合は条件付き書式と、目的に応じて使い分けることが重要です。
また、Excel 365環境ではFILTER関数を使うことで、行データごとの抽出を非常にシンプルに実現できます。
同率順位や重複データへの対応も意識しながら、実務に合った手法を選ぶことで、より正確で効率的なデータ分析が可能になるでしょう。
今回ご紹介した方法をぜひ実際のExcel作業に取り入れて、日々の集計・分析業務をスムーズに進めてみてください。