エクセルで売上データを管理していると、担当者別、商品別、店舗別などの売上順位をすぐに把握したい場面があります。
ランキング形式にすると、上位の売上を上げている対象や改善が必要な対象を見つけやすくなり、会議資料や営業分析にも活用できます。
この記事では、1行目に見出しがある売上表を例に、RANK.EQ関数を使って売上順位を求める方法、同順位の扱い、並べ替え、順位表の見やすい整え方まで解説します。
売上順位の基本式
=RANK.EQ(C2,$C$2:$C$11,0)
0を指定すると、売上金額が大きいほど1位になる降順ランキングです。
順位用の列を追加してから数式を入力すると、元の売上データを保ったまま集計できます。
RANK.EQ関数による売上順位の作成
それではまず、売上金額をもとに順位を表示する基本操作について解説していきます。
| 担当者 | 商品 | 売上金額 | 売上順位 |
|---|---|---|---|
| 佐藤 | 商品A | 580,000 | 2 |
| 田中 | 商品B | 720,000 | 1 |
| 鈴木 | 商品C | 430,000 | 3 |
順位列の準備
売上順位を表示するには、まず売上金額の右側に順位専用の列を作ります。
ここではA列を担当者、B列を商品、C列を売上金額、D列を売上順位として扱います。
1行目にはそれぞれの見出しが入り、実際のデータは2行目から11行目まで入力されている前提です。
数式を入れる前に、どの列が比較対象の数値なのかを明確にしておくことが大切です。
たとえば売上金額が文字列として保存されていると、見た目は数値でも正しい順位にならない場合があります。
セルを選択したときに数式バーで数値として認識されているか、表示形式が通貨や数値になっているかを確認しましょう。
金額にカンマや円記号が付いていても、セルの内部値が数値であればRANK.EQ関数で計算できます。
サンプルデータの範囲はC2からC11です。
D列は空欄にしておき、D2セルへ最初の順位数式を入力します。
RANK.EQ関数の入力
D2セルを選択して、次の数式を入力します。
=RANK.EQ(C2,$C$2:$C$11,0)
RANK.EQ関数の1つ目の引数C2は、順位を調べたい売上金額です。
2つ目の引数$C$2:$C$11は、すべての売上金額を比較するための範囲です。
3つ目の引数である0は、数値が大きい順に順位を付ける指定です。
そのため、最も売上金額が大きいデータが1位となり、次に大きいデータが2位になります。
$記号で比較範囲を絶対参照にすることが、数式を下へコピーするときの重要なポイントです。
絶対参照にしない場合、オートフィルを行うたびに比較範囲までずれてしまい、行ごとに違う基準で順位が計算されます。

数式を確定した時点で、D2セルには対象の売上金額に応じた順位が表示されます。
関数名は大文字でも小文字でも入力できますが、見やすさのために大文字で統一すると数式を確認しやすくなります。
オートフィルによる全行への反映
D2セルに正しい順位が出たら、セル右下の小さな四角であるフィルハンドルを使って数式を下方向へコピーします。
売上データが連続している場合は、フィルハンドルをダブルクリックすると、隣接するC列の最終データ行まで数式を自動入力できます。
ドラッグでD11まで引っ張る方法でも問題ありません。
コピー後にD3以降の数式を確認すると、調べるセルはC3、C4のように変わり、比較範囲は$C$2:$C$11のまま維持されます。
売上データが追加される予定なら、比較範囲をあらかじめ広めに取るか、テーブル化して管理すると便利です。
【操作のポイント】D2だけに数式を入力し、比較範囲の行番号と列記号には必ず$を付けてからオートフィルします。
降順と昇順による順位付け

続いては、売上金額を大きい順または小さい順に順位付けする指定を確認していきます。
| 売上金額 | 順序の指定 | 順位の意味 |
|---|---|---|
| 720,000 | 0 | 売上が高いほど上位 |
| 430,000 | 1 | 売上が低いほど上位 |
売上上位を表示する降順
通常の売上ランキングでは、売上金額が最大の担当者や商品を1位にする降順を使用します。
RANK.EQ関数の3つ目の引数には0を指定します。
=RANK.EQ(C2,$C$2:$C$11,0)
3つ目の引数を省略した場合も、既定では0として扱われます。
ただし、数式を見た人がランキングの意図を理解しやすいように、0を明示しておくと安心です。
売上、販売数量、粗利、契約件数など、数値が大きいほど良い指標は降順が基本です。
売上ランキングを資料へ転記する場合も、1位から順番に並んでいると比較しやすくなります。
月間売上と年間売上の両方を管理しているときは、どちらの列を基準にした順位なのか見出しに記載しておくと混乱を防げます。
改善対象を探す昇順
売上が低いデータを先に確認したいときは、3つ目の引数を1に変更します。
=RANK.EQ(C2,$C$2:$C$11,1)
この場合、最も小さい売上金額が1位になります。
一見すると売上順位としては直感に反することがありますが、改善対象の抽出や在庫回転の遅い商品の確認には役立ちます。
昇順の順位は、低い数値を優先して確認するための順位として利用すると分かりやすいでしょう。
列見出しは単に売上順位とせず、低売上順位や改善優先順位のように目的が分かる名称にする方法がおすすめです。
同じ表で降順と昇順を併記する場合は、2つの順位列を作って用途を分けます。
空白セルとエラー値への対処
売上金額の列に空白セルやエラー値が混在している場合、順位表示を整えたいことがあります。
空白の行には順位を表示しないようにするには、IF関数と組み合わせます。
=IF(C2=””,””,RANK.EQ(C2,$C$2:$C$11,0))
この数式では、C2が空白ならD2も空白にし、値がある場合だけ順位を計算します。
未入力の予定行まで順位が表示される表では、IF関数を組み合わせると見た目がすっきりします。
#N/Aや#VALUE!などのエラーが売上列にあると、RANK.EQ関数もエラーになる場合があります。
先に売上データの入力ミスを直すか、必要に応じてIFERROR関数で表示を制御しましょう。
【操作のポイント】売上の上位を知る通常のランキングは0、少ない売上を優先確認する一覧は1を指定します。
同順位と連番順位の扱い
続いては、同じ売上金額がある場合の順位表示と、順位を連番にする考え方を確認していきます。
| 担当者 | 売上金額 | RANK.EQ順位 |
|---|---|---|
| 田中 | 720,000 | 1 |
| 佐藤 | 580,000 | 2 |
| 高橋 | 580,000 | 2 |
| 鈴木 | 430,000 | 4 |
RANK.EQ関数の同順位
RANK.EQ関数では、売上金額が同じデータには同じ順位が付きます。
たとえば2番目に高い売上が2件ある場合、その2件はどちらも2位となり、次の順位は4位です。
これは競技の順位表でも使われる一般的な方式です。
RANK.EQ関数は同じ値を公平に同順位として扱うため、売上実績の比較に適しています。
売上金額が完全に同じであれば、担当者名の並び順によって順位を変える必要はありません。
ただし、表彰対象を上位3名に限定する場合、同順位があると対象人数が増えることがあります。
運用ルールとして、同順位をすべて対象にするのか、別の基準で優先順位を決めるのかを事前に決めておくとよいでしょう。

連番順位を作る補助列
同じ売上金額でも1位、2位、3位のように重複しない順位を表示したい場合は、売上金額だけではなく補助列を使います。
代表的な方法は、売上金額が同じときに担当者名、受注件数、登録順など別の条件で並び順を決める方法です。
たとえばE列に補助順位を作る場合、次のようなCOUNTIF関数を組み合わせた数式を利用できます。
=RANK.EQ(C2,$C$2:$C$11,0)+COUNTIF($C$2:C2,C2)-1
COUNTIF($C$2:C2,C2)は、現在行までに同じ売上金額が何回出現したかを数えます。
最初に出た580,000円には0を足し、次に出た580,000円には1を足すため、2位と3位に分けられます。
連番順位は便利ですが、同額の実績を無理に優劣化する表示でもあるため、用途に合うか確認が必要です。
平均順位を使うRANK.AVG関数
同順位があるときに、該当する順位の平均を表示したい場合はRANK.AVG関数を使います。
2位と3位に相当するデータが同額であれば、両方に2.5位と表示する仕組みです。
=RANK.AVG(C2,$C$2:$C$11,0)
営業成績の一覧では整数の順位が読み取りやすいため、一般的にはRANK.EQ関数が使われます。
一方で、統計処理や評価点の計算では平均順位が必要になることもあります。
表示用の順位と分析用の順位を分けると、レポートの意図を明確にできます。
【操作のポイント】同額売上を同順位にするならRANK.EQ、重複しない連番にするならCOUNTIFを組み合わせます。
並べ替えとフィルターによるランキング表示
続いては、計算した売上順位を上位から読みやすく表示する並べ替えとフィルターを確認していきます。
| 順位 | 担当者 | 売上金額 |
|---|---|---|
| 1 | 田中 | 720,000 |
| 2 | 佐藤 | 580,000 |
| 3 | 鈴木 | 430,000 |
順位列を基準にした並べ替え
順位を計算しただけでは、元の入力順のまま表が表示されます。
ランキング形式で見せるには、表全体を選択してD列の売上順位を基準に昇順で並べ替えます。
ホームタブの並べ替えとフィルターから昇順を選ぶか、データタブの並べ替えを使用します。
並べ替えの対象範囲を選ぶときは、担当者名や商品名を含めた表全体を選択してください。
売上金額の列だけを並べ替えると、担当者名と売上金額の対応が崩れるため注意が必要です。
Excelの表内にカーソルを置いて並べ替えると、通常は現在のデータ範囲が自動認識されます。
確認画面が出た場合は、選択範囲を拡張するを選ぶと、各行の情報をまとめて移動できます。
上位だけを抽出するフィルター
上位3位や上位10位だけを確認したい場合は、オートフィルターを利用します。
表の見出し行を含めて範囲を選択し、データタブのフィルターをクリックすると、各見出しに絞り込みボタンが付きます。
売上順位列の絞り込みボタンを開き、数値フィルターから指定の値以下を選択します。
条件を3以下に設定すると、1位から3位までの行だけが表示されます。
同順位がある場合は、上位3位の条件でも4行以上が表示されることがあります。
これはRANK.EQ関数の順位が重複するためであり、計算ミスではありません。
上位者を人数で厳密に3名へ絞る必要がある場合は、連番順位を使うか、別の判定基準を設定します。
テーブル機能による自動拡張
今後も売上データを追加するなら、範囲をテーブルとして設定すると管理しやすくなります。
表の中のセルを選択し、挿入タブのテーブルをクリックして、先頭行をテーブルの見出しとして使用するにチェックを入れます。
テーブルでは新しい行を追加したとき、順位列の数式が自動的にコピーされます。
フィルターやデザインも自動で適用されるため、毎月の売上集計に向いています。
テーブル内の順位数式の例
=RANK.EQ([@売上金額],[売上金額],0)
構造化参照を使うと、セル番地ではなく列見出しで数式の意味を読み取れます。
【操作のポイント】並べ替えは必ず表全体に適用し、上位だけを確認するときは順位列にフィルターを設定します。
条件付き書式による上位売上の強調
続いては、ランキングの中で特に注目したい売上を色やアイコンで強調する方法を確認していきます。
| 担当者 | 売上金額 | 順位 | 表示例 |
|---|---|---|---|
| 田中 | 720,000 | 1 | 上位を強調 |
| 佐藤 | 580,000 | 2 | 上位を強調 |
上位三位へのセル色設定
売上順位列または表全体を目立たせるには、条件付き書式を利用します。
まずD2からD11の順位セルを選択し、ホームタブの条件付き書式から新しいルールを選びます。
指定の値を含むセルだけを書式設定を選択し、セルの値が3以下という条件を設定します。
書式では淡い黄色や緑色の塗りつぶしを選ぶと、上位者をひと目で確認できます。
順位そのものではなく、A列からD列までの行全体を強調すると、担当者名と売上を一緒に確認しやすくなります。
行全体へ書式を適用する場合は、数式を使用して、書式設定するセルを決定を選びます。
=$D2<=3
適用先を$A$2:$D$11にすると、D列の順位が3以下の行だけに書式が付きます。
データバーとカラースケール
売上金額の大きさを視覚的に比較したいときは、C列にデータバーを設定する方法があります。
売上金額の範囲を選択して、条件付き書式からデータバーを選ぶだけで、セル内に横棒が表示されます。
棒が長いほど売上が大きいことを表すため、数値を細かく読まなくても傾向を把握できます。
カラースケールは、売上の高低を色の濃淡で見せたい場合に向いています。
データバーは比較用、順位列は正確な順位確認用として併用すると、表の読みやすさが高まります。
ただし、売上金額の桁数が大きく異なると、小さい売上のバーがほとんど見えないことがあります。
極端な数値がある表では、順位と数値表示を残して判断することが重要です。
重複順位を想定した書式ルール
上位3位までを強調する場合、同順位によって強調行が増えることがあります。
たとえば1位、2位、2位、4位という順位なら、3位は存在しないため、強調されるのは3行です。
一方で1位、3位、3位のような表では、3位以下という条件により複数行が対象になります。
これは順位を基準にした正しい動作です。
上位3人だけを必ず色付けしたい場合は、売上金額を降順で並べ替えたうえで、先頭3行へ直接書式を設定する方法もあります。
順位基準か人数基準かで条件付き書式の考え方が変わるため、レポートの目的を先に決めましょう。
【操作のポイント】上位売上を色付けする場合は、順位列を基準にした数式ルールを使うとデータ更新後も強調表示が維持されます。
SUMIFS関数とピボットテーブルによる集計
続いては、明細データから担当者別や商品別の売上を集計してランキングにする方法を確認していきます。
| 担当者 | 集計売上 | 順位 |
|---|---|---|
| 田中 | 1,240,000 | 1 |
| 佐藤 | 980,000 | 2 |
SUMIFS関数による担当者別集計
売上明細が複数行に分かれている場合は、先に担当者別の合計売上を作成してから順位を付けます。
明細表でA列が日付、B列が担当者、C列が商品、D列が売上金額とします。
別の集計表でF2に担当者名がある場合、G2へ次の数式を入力します。
=SUMIFS($D$2:$D$100,$B$2:$B$100,F2)
SUMIFS関数は、B列の担当者がF2と一致する売上だけをD列から合計します。
G列に担当者別の集計売上ができたら、H2にRANK.EQ関数を入力して順位を求めます。
=RANK.EQ(G2,$G$2:$G$11,0)
明細データへ直接順位を付けるのではなく、集計表に順位を付けると担当者別や商品別の比較が正確になります。
ピボットテーブルによるランキング集計
売上明細の件数が多い場合は、ピボットテーブルを使うと集計作業を効率化できます。
明細表内のセルを選択して挿入タブからピボットテーブルを作成し、新しいワークシートへ配置します。
フィールド一覧で担当者を行、売上金額を値へドラッグすると、担当者別の売上合計が表示されます。
売上金額の合計セルを右クリックして並べ替えを選び、降順に並べ替えるとランキング形式の一覧になります。
必要なら、ピボットテーブルの右側に順位列を追加し、RANK.EQ関数で順位を表示します。
商品、地域、月などをフィルターに入れると、条件を切り替えながら売上ランキングを分析できます。
元データを更新した後は、ピボットテーブルを右クリックして更新を実行します。
集計対象と期間条件の設定
月別売上順位を出すときは、SUMIFS関数で日付条件も指定できます。
開始日をJ1、終了日をK1に入力している場合は、担当者別売上の数式を次のように作成します。
=SUMIFS($D$2:$D$100,$B$2:$B$100,F2,$A$2:$A$100,”>=”&$J$1,$A$2:$A$100,”<=”&$K$1)
この式では担当者の条件に加えて、日付が開始日以上かつ終了日以下の売上だけを合計します。
対象期間をセルで管理すれば、月を変えるだけで同じランキング表を使い回せます。
返品や値引きが含まれる場合は、売上の定義をそろえることも欠かせません。
【操作のポイント】明細が多いときは、SUMIFS関数またはピボットテーブルで先に集計表を作り、その合計額に順位を付けます。
まとめ エクセルで売上順位を出すランキング集計の手順
エクセルで売上順位を出すときは、売上金額の右側に順位列を作り、RANK.EQ関数を入力する方法が基本です。
売上が大きい順に順位を付ける場合は、=RANK.EQ(C2,$C$2:$C$11,0)を使用します。
比較範囲を絶対参照にしてオートフィルすることで、すべての売上データを同じ基準でランキング化できます。
同じ売上金額がある場合、RANK.EQ関数では同順位となり、次の順位は飛び番になります。
重複しない連番順位が必要なときは、COUNTIF関数を組み合わせる方法が役立ちます。
順位を求めた後は、表全体を順位列で昇順に並べ替え、フィルターで上位だけを抽出すると、ランキングとして読みやすくなります。
条件付き書式を使えば、上位3位や重要な売上を色付けでき、会議資料や進捗管理表の視認性も上がります。
明細データから担当者別、商品別、店舗別のランキングを作る場合は、SUMIFS関数またはピボットテーブルで合計を作成してから順位を付けましょう。
売上順位は単なる並び順ではなく、分析目的に合わせて集計単位、期間、同順位のルールを整えることで実用性が高まります。