DESIGN / CODE / INFRA / AI

解説

上位2件に同点も含めたい:SheetsのSORTNで境界と並べ替えキーを決めよう

SORTNの同点モード0と1を比較。架空の点数表で2行と3行の違い、第2の並べ替えキーを足した場合の境界を整理する。

上位2件に同点も含めたい:SheetsのSORTNで境界と並べ替えキーを決めよう
保存リストを見る →
この記事の道しるべ 5項目

点数の上位2件だけ出したい。でも2位が同点なら、3件目も残したい。並べ替えてから先頭の行を切り取るだけでは、どこまで含めるかが曖昧になりやすいね。

GoogleスプレッドシートのSORTNは、並べ替えた後の先頭n件を返す関数。今回は「最大2行」と「2行目に並ぶ同点も含める」を、display_ties_modeという引数で分けるよ。セル範囲と数式の基本が分かる人向けの、小さな架空データによる確認だよ。

点数が同じ二人を入れておく

空の練習用シートのA1:B5に、次の表を作ろう。実在の成績や評価には使わず、IDは説明用の記号にしている。

ID 点数
A01 95
A02 80
A03 80
A04 60

数式へ渡す範囲は見出しを除いたA2:B5。見出しまで並べ替えると、文字の行が結果へ混ざる原因になるよ。出力用にD列以降を空けておこう。

モード0は、先頭から最大n行

D1へ次の式を入れる。

=SORTN(A2:B5,2,0,2,FALSE)

引数は、元範囲・返す基準件数・同点の扱い・並べ替え列・昇順かどうか、の順。ここでは2列目の点数をFALSE、つまり降順にする。値が大きい95から並ぶよ。

display_ties_modeに0を指定すると、この例ではA01の95点とA02の80点の2行になる。SORTNの公式説明では、指定した並べ替え列以外は元に現れる順序で返される。今回の同点2行は、元の表でA02がA03より先にあることも確認してね。

モード1は、境界に並ぶ同点も残す

D5へ次の式を入れて比べる。

=SORTN(A2:B5,2,1,2,FALSE)

変えたのは三つ目の引数だけ。結果はA01・A02・A03の3行になる。指定した並べ替えキーは点数だけなので、2行目の80点と並ぶA03も含まれるんだ。

IDの文字が違うから同点にならない、とは考えないでね。この例で比べているキーは2列目の点数。Googleの公式例も、名前が違う同点行をモード1で追加する形を示している。

同点モード 今回の結果 件数
0 A01・A02 2
1 A01・A02・A03 3

「必ず2人」と「2行目の点数まで」は違う要求だよ。モード1なら指定したnより多い件数が返るため、下の空き行も用意しておこう。

第2の並べ替えキーを足すと、同点の条件も変わる

点数が同じならID昇順で決めたい場合は、さらに1列目を並べ替えキーへ加える。

=SORTN(A2:B5,2,1,2,FALSE,1,TRUE)

この例ではA02とA03はIDが違うため、指定したキー全体では同じにならない。結果は2行となる。点数だけの同点を全員残したいなら、IDを同点の区別に使う設計と同時にしないことが大切だよ。

ランキングに一意の順番が必要なのか、同じ点数を同じ境界として扱いたいのかを先に決めよう。AIの順位表で同点と上位N件を決めるにも、依頼文の条件整理を載せている。

件数を直して、結果が変わる場所を確かめる

  1. 最初の二つの式を、別々の空いた場所へ入力する。
  2. それぞれ2行・3行になることを見る。
  3. 元表のA03の点数を80から79へ変更する。
  4. モード1の結果も2行になることを確認する。
  5. 点数を80へ戻し、同点行が再び含まれるかを見る。

どちらの式も、元表を直接並べ替える操作ではない。元データの並びを変える操作との違いは、固定・並べ替え・フィルターで確認できるよ。

結果が出ないときは、出力先が空いているか、範囲がA2:B5になっているか、点数が文字列ではなく数値かを確認しよう。元範囲外の列を並べ替えキーに渡す場合は、範囲と行数をそろえる必要がある。今回は範囲内の列番号に絞っている。

2026年11月1日にGoogle公式SORTNの構文・同点モード・例を確認。本文の架空データの並びと件数は独立したPython参照計算で検算した。Googleスプレッドシートの画面や数式エンジンを実操作した検証ではないよ。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。