ADVERTISEMENT

【Googleスプレッドシート】SORTNでトップN取得!上位N件の自動抽出

【Googleスプレッドシート】SORTNでトップN取得!上位N件の自動抽出
🛡️ 超解決

「データが多いので、売上上位10件だけを自動で抽出したい」「スコアの高い順に3人を表示するシートが欲しい」そんなときにはSORTN関数が便利です。SORTN関数は、指定した範囲を並べ替えたうえで、上位N件だけを取得できる関数です。この記事では、SORTN関数の基本的な使い方から、同順位の扱い方、並べ替えのカスタマイズ方法までを詳しく解説します。

【要点】SORTN関数で上位N件を自動抽出する方法

  • =SORTN(範囲, N, [同順位モード], [並べ替え列1, 昇順/降順], …): 指定範囲を並べ替え、上位N件を返す基本構文です。第3引数で同順位の処理を制御します。
  • 同順位モード0(デフォルト): 同順位のデータをすべて含めます。結果がN件より多くなる場合があります。
  • 同順位モード1: 同順位のデータを1件としてカウントし、N件ぴったりになるよう切り捨てます。

ADVERTISEMENT

SORTN関数の概要とできること

SORTN関数は、Googleスプレッドシートが提供する並べ替え関数の一種です。SORT関数と似ていますが、SORTNは上位N件だけを抽出する点が異なります。引数として、対象の範囲と取得したい件数、同順位の扱い、並べ替えの基準となる列と順序を指定します。この関数を使うことで、売上ランキングの上位5社、テストの高得点者10名、古い日付順のトップ3など、さまざまな場面で自動的に上位データを抽出できます。

SORTN関数の基本構文と引数の説明

SORTN関数の書式は次の通りです。

=SORTN(範囲, N, [同順位モード], [並べ替え列1, 並べ替え順1], [並べ替え列2, 並べ替え順2], ...)

各引数の役割は以下の通りです。

  • 範囲: 抽出元となるセル範囲です。複数列を含めることができます。
  • N: 取得したい上位件数です。0以上の整数を指定します。
  • 同順位モード: 省略可能です。同順位のデータをどのように処理するかを指定します。0(デフォルト)は同順位データをすべて含め、1は同順位を1件とカウントしてN件ぴったりにします。
  • 並べ替え列1, 並べ替え順1: 1つ目の並べ替え基準となる列(範囲内の列番号)と、降順(FALSEまたは0)か昇順(TRUEまたは1)を指定します。複数の並べ替え条件を指定することも可能です。

SORTN関数の基本的な使い方

まずは最もシンプルな例から解説します。以下のような売上データがあるとします。

A列に商品名、B列に売上額が入力されています。売上上位3件を自動抽出するには、次のように入力します。

=SORTN(A2:B10, 3, 0, 2, FALSE)

この数式は、範囲A2:B10から、売上額(2列目)を降順(FALSE)で並べ替え、上位3件を取得します。第3引数に0を指定しているため、同順位のデータがあれば3件を超えることもあります。

手順1: データ範囲と取得件数を指定する

抽出したいデータが含まれるセル範囲と、上位何件を取得したいかを決めます。範囲は絶対参照($A$2:$B$10)にしておくと、数式をコピーしたときにずれません。

手順2: 並べ替えの基準列と順序を指定する

範囲内の列番号で並べ替え基準列を指定します。昇順の場合はTRUEまたは1、降順の場合はFALSEまたは0を指定します。降順にすると値の大きい順、昇順にすると小さい順になります。

手順3: 同順位モードを選択する

同順位のデータをどう扱うかを決めます。通常は0(すべて含める)を使いますが、ピッタリN件にしたい場合は1を指定します。

ADVERTISEMENT

SORTN関数の応用例と便利なテクニック

SORTN関数はさまざまな場面で活用できます。ここではいくつかの応用例を紹介します。

複数条件で並べ替えて上位N件を抽出する

並べ替え条件を複数指定することで、例えば「売上額が同じ場合は古い日付順」といった細かい制御が可能です。以下は売上額で降順、さらに日付(C列)で昇順に並べ替え、上位5件を取得する例です。

=SORTN(A2:C100, 5, 0, 3, FALSE, 1, TRUE)

このように、並べ替え列と順序のペアを続けて記述します。

フィルタ結果の上位N件を取得する

FILTER関数と組み合わせることで、条件に合うデータだけを対象に上位N件を抽出できます。例えば、売上額が1000以上のデータから上位3件を取得するには、次のようにします。

=SORTN(FILTER(A2:B10, B2:B10>=1000), 3, 0, 2, FALSE)

QUERY関数と組み合わせる

QUERY関数でデータを加工した結果をSORTNに渡すこともできます。ただし、QUERYの結果はメモリ上に展開されるため、大量データでは注意が必要です。

SORTN関数使用時の注意点とよくある誤り

SORTN関数を正しく使うために、以下の点に注意してください。

同順位モードの誤解

同順位モード0では、同順位のデータをすべて含めるため、結果の行数がNを超えることがあります。モード1では、同順位のデータが複数あっても1件とカウントされ、N件ぴったりになるように切り捨てられます。どちらの挙動が適切か、目的に応じて選択してください。

並べ替え列番号は範囲内の相対位置

並べ替え列の指定は、範囲内の列番号(1から始まる)です。例えば範囲がB2:D100の場合、B列が1、C列が2、D列が3となります。シート全体の列番号ではないため注意しましょう。

非表示行やフィルタの影響を受けない

SORTN関数は、表示・非表示に関係なくすべてのデータを対象に並べ替えを行います。フィルタで一部の行が非表示になっていても、それらの行も含めて計算されます。

結果は動的に更新される

SORTN関数は元データの変更に応じて自動的に再計算されます。元データを編集すると、結果の上位N件もリアルタイムに変わります。

SORTN関数の引数ごとの動作比較表

引数 指定内容 動作
範囲 セル範囲(例 A2:B10) この範囲からデータを取得し、並べ替えます
N 整数(例 5) 上位N件を返します。同順位モードによって実際の行数が変わります
同順位モード 0または1 0: 同順位をすべて含む。1: 同順位を1件としてN件ぴったりに
並べ替え列 範囲内の列番号(例 2) その列の値で並べ替えます
並べ替え順 TRUE(昇順)またはFALSE(降順) 昇順または降順を指定します

まとめ

SORTN関数を使えば、大量のデータから上位N件を自動で抽出できます。基本構文はシンプルですが、同順位モードの選択や複数条件の並べ替えを理解することで、より柔軟なデータ抽出が可能です。まずは簡単な売上ランキングで試してみましょう。慣れてきたらFILTER関数やQUERY関数との組み合わせにも挑戦してみてください。これでデータ分析の効率が大幅に向上します。

ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。