前回は打率ランキングに規定打席条件を組み込む、少し骨の折れる配列数式に挑戦しました。今回はぐっと肩の力を抜いて、本塁打・打点・安打・盗塁の4部門ランキングを一気に仕上げます。打率と違って規定打席条件が不要なので、第68・69回で学んだLARGE・INDEX・MATCHをそのまま当てはめるだけで完成します。
「4部門もあるなんて大変そう…」と身構えた方、安心してください。4部門とも構造はまったく同じで、変えるのは列番号だけ。1つの部門を理解してしまえば、残りは「式をコピーして列を差し替える」作業に過ぎません。
4部門の列番号を先に確認する
式を書く前に、年間(野手)シートの列構成を整理しておきましょう。ランキングの式で使う列は次のとおりです。
| 列 | 内容 | ランキングでの使い方 |
|---|---|---|
| B列 | 選手名 | INDEXで取り出す列(全部門共通) |
| G列 | 安打 | 安打ランキングでMATCHが探す列 |
| H列 | 本塁打 | 本塁打ランキングでMATCHが探す列 |
| I列 | 打点 | 打点ランキングでMATCHが探す列 |
| J列 | 盗塁 | 盗塁ランキングでMATCHが探す列 |
選手名(B列)はどの部門でも変わりません。部門ごとに切り替えるのは、MATCHが探す列だけです。なお列番号はあくまで一例ですので、ご自身のシートの設計に合わせて読み替えてください。
完成式:4部門まとめて確認する
ランキングシートのA列に順位番号(A3=1、A4=2…)が入っているとします。各部門の数値列(C列)と選手名列(B列)の式は、それぞれ次のとおりです。
数値列(例:C列)
=IFERROR(LARGE('年間(野手)'!H:H, A3), "")
選手名列(例:B列)
=IFERROR(INDEX('年間(野手)'!B:B, MATCH(C3, '年間(野手)'!H:H, 0)), "")
本塁打は打率と違って配列数式は不要です。普段どおりEnterキーで確定すれば大丈夫です。
数値列
=IFERROR(LARGE('年間(野手)'!I:I, A3), "")
選手名列
=IFERROR(INDEX('年間(野手)'!B:B, MATCH(C3, '年間(野手)'!I:I, 0)), "")
数値列
=IFERROR(LARGE('年間(野手)'!G:G, A3), "")
選手名列
=IFERROR(INDEX('年間(野手)'!B:B, MATCH(C3, '年間(野手)'!G:G, 0)), "")
数値列
=IFERROR(LARGE('年間(野手)'!J:J, A3), "")
選手名列
=IFERROR(INDEX('年間(野手)'!B:B, MATCH(C3, '年間(野手)'!J:J, 0)), "")
| LARGE の範囲 | MATCH の検索範囲 | INDEX の範囲 | |
|---|---|---|---|
| 本塁打 | H:H | H:H | B:B(固定) |
| 打点 | I:I | I:I | B:B(固定) |
| 安打 | G:G | G:G | B:B(固定) |
| 盗塁 | J:J | J:J | B:B(固定) |
INDEXが参照する選手名列(B:B)は4部門すべてで共通です。部門ごとに変わるのはLARGEとMATCHで使う列だけ。しかもLARGEとMATCHに指定する列は必ず同じになります——「本塁打ならどちらもH:H」と覚えておけば迷いません。
サンプルデータでランキング結果を確認する
例えば、こんな管理表があったとします。年間(野手)シートのサンプルデータをもとに、4部門の上位3〜5位を見てみましょう。
本塁打ランキング
| 順位 | 選手名 | 本塁打 | 備考 |
|---|---|---|---|
| 1位 | ITO | 1 | 同率3名のうちMATCHが最初に見つけた選手 |
| 2位 | ITO | 1 | ⚠️ 同率のため同じ名前が繰り返し表示(第72回で対処) |
| 3位 | ITO | 1 | ⚠️ 同上(YAMASAKI・SATOも1本) |
この例では、ITO・YAMASAKI・SATOの3名がそれぞれ本塁打1本で並んでいます。全員同率のため数値取得(LARGE)自体は正しくできていますが、選手名の表示は同率対処(第72回)を終えて初めて完成します。
打点ランキング
| 順位 | 選手名 | 打点 | 備考 |
|---|---|---|---|
| 1位 | SUZUKI | 6 | 単独1位、問題なし |
| 2位 | ITO | 5 | ⚠️ SATOも5打点で同率(第72回で対処) |
| 3位 | ITO | 5 | ⚠️ 同上 |
| 4位 | NAKATA | 4 | T.KAMINO・M.IZUTSU・YAMAMOTOも4打点 |
| 5位 | NAKATA | 4 | ⚠️ 同率複数名(第72回で対処) |
安打ランキング
| 順位 | 選手名 | 安打 | 備考 |
|---|---|---|---|
| 1位 | SUZUKI | 14 | 断トツ1位、問題なし |
| 2位 | YAMAMOTO | 10 | 単独2位、問題なし |
| 3位 | ITO | 7 | ⚠️ S.TANAKA・NAKATAも7安打で同率(第72回で対処) |
| 4位 | ITO | 7 | ⚠️ 同上 |
| 5位 | ITO | 7 | ⚠️ 同上 |
盗塁ランキング
| 順位 | 選手名 | 盗塁 | 備考 |
|---|---|---|---|
| 1位 | S.TANAKA | 7 | ⚠️ YAMAMOTOも7盗塁で同率(第72回で対処) |
| 2位 | S.TANAKA | 7 | ⚠️ 同上 |
| 3位 | YAMASAKI | 2 | SUZUKI・M.IZUTSU・S.SADAも2盗塁 |
| 4位 | YAMASAKI | 2 | ⚠️ 同率複数名(第72回で対処) |
| 5位 | YAMASAKI | 2 | ⚠️ 同上 |
数値(LARGE)はどの部門も正しく取れています。同率が複数いる場合に選手名が繰り返し表示されてしまう問題は、次回(第72回)でまとめて解決します。
IFERRORを必ず付ける理由
すべての式にIFERROR(…, "")を付けています。なぜこれが必要なのか、ここで確認しておきましょう。
例えば、本塁打を打った選手が3人しかいないのに4位・5位まで式を作ると、#NUM!エラーが表示されてしまいます。5位まで表示したくても、実績があるのが3人だけなら、4位・5位は空欄になるのが正しい状態です。
=IFERROR(LARGE('年間(野手)'!H:H, A3), "")
エラーが出たときに空欄(””)を返すようにしておけば、シーズン序盤でデータがまだ少ない時期でも、シートの見た目を崩さずに済みます。
入力の手順:1部門を完成させてから横にコピーする
4部門をいきなり同時に作ろうとすると、どこで間違えたか分からなくなりがちです。次の順序で進めれば確実に完成させられます。
打点の数値式(LARGE)と選手名式(INDEX・MATCH)をそれぞれ1位分だけ入力し、下に4行コピーします。打点から始めるのは、列番号(I列)が覚えやすいうえ、この例では1位がSUZUKIの6打点で単独トップとなり、正しく動いているか確認しやすいからです。
打点(I:I)の式を安打用ブロックにコピーし、I:IをG:Gに変えます。本塁打・盗塁も同様に、H:H・J:Jへ書き換えるだけです。
安打1位がSUZUKI(14)、打点1位がSUZUKI(6)、盗塁1位がS.TANAKAかYAMAMOTO(7)になっていれば、正しく動いている証拠です。数値と選手名が噛み合っているか1位だけ確認できれば、2〜5位は式をコピーしただけなので心配いりません。
4部門完成後のランキングシートの状態
| 部門 | 数値列(LARGE) | 選手名列(INDEX・MATCH) | 残課題 |
|---|---|---|---|
| 打率 | ✅ 完成 | ✅ 完成 | 同率の表示(第72回) |
| 本塁打 | ✅ 完成 | ✅ 完成 | 同率の表示(第72回) |
| 打点 | ✅ 完成 | ✅ 完成 | 同率の表示(第72回) |
| 安打 | ✅ 完成 | ✅ 完成 | 同率の表示(第72回) |
| 盗塁 | ✅ 完成 | ✅ 完成 | 同率の表示(第72回) |
これで全5部門の骨格が揃いました。残るは、同率が出たときに同じ選手名が繰り返し表示されてしまう問題だけです。これを次回(第72回)で解消すれば、ランキングシートは実用レベルで完成します。
- 本塁打・打点・安打・盗塁は打率と違い規定打席条件が不要——LARGE・INDEX・MATCHをシンプルにそのまま使う
- 4部門すべてでINDEXが参照する選手名列(B:B)は共通、LARGEとMATCHで指定する列だけを部門ごとに切り替える
- LARGEとMATCHで使う列は必ず同じ——打点ならどちらもI:I、安打ならどちらもG:G
IFERROR(…, "")を必ず付けておくと、データが少ない時期のエラー表示を防げる- 作業は「1部門を1位〜5位まで完成 → 隣にコピーして列名だけ変える」の順が確実
- 数値は正しく取れているが同率のとき同じ選手名が繰り返し表示される問題が残っている——次回(第72回)で対処する
次回予告
次回は「同率タイの処理:同じ数値が複数いる場合の対応」です。今回の例でも本塁打・盗塁・安打でそれぞれ同率が発生しており、このままでは同じ選手名が繰り返し表示されてしまいます。COUNTIFを使った重複チェックと、表示を工夫するちょっとしたコツで、この問題をスマートに解消する方法を解説します。



コメント