第64回 完投・完封・セーブの記録方法

関数・自動化

前回は奪三振・与四死球・被安打をSUMIFで集計する方法を解説しました。今回のテーマは完投・完封・セーブを記録して自動集計する仕組みづくりです。

この3つは、他の投手成績とは少し性質が違います。「投球回が何回だったか」「三振が何個だったか」という量の話ではなく、「完投したかどうか」「セーブをあげたかどうか」という事実そのものの記録だからです。この「あった・なかった」を数字で管理するテクニックが、今回紹介する「フラグ管理」です。

完投・完封・セーブをどうやって記録するか

まずは、完投・完封・セーブそれぞれの記録方法を確認しておきましょう。フォーム(投手)シートの設計が、そのまま関数の書き方に直結します。

✅ 3指標の記録方式まとめ
指標 フォームでの記録方式 集計に使う関数
完投 専用列に 0 か 1 を入力(フラグ) SUMIF(0/1を合計)
完封 専用列に 0 か 1 を入力(フラグ) SUMIF(0/1を合計)
セーブ 勝敗列に 「S」 を入力(記号) COUNTIFS(「S」を数える)

完投・完封はフラグ(0/1の数値)なのでSUMIF、セーブは勝敗列の記号「S」なのでCOUNTIFS。前回紹介した「数値ならSUMIF、記号ならCOUNTIF系」という使い分けは、ここでもそのまま活きています。

フラグ管理とは何か

「フラグ管理」という言葉が出てきましたが、中身は難しいものではありません。

📝 フラグ管理とは「あった=1、なかった=0」で記録する方法

「完投した試合は 1、しなかった試合は 0」と記録するだけのルールです。数値として入力しておけば、あとはSUMIFで合計するだけでシーズンの完投数が自動で出てきます。

試合 完投フラグ 完封フラグ 状況
第1試合(1/25) 0 0 途中降板(3回)
第2試合(2/1) 1 1 7回完封勝利
第4試合(3/1) 0 0 途中降板(1回)
第6試合(3/15) 1 1 4回完封勝利
その他の登板 0 0 途中降板
SUMIFの合計 2 2 SUZUKIの成績

1を足し合わせるだけで完投数・完封数が求まる、いたってシンプルな仕組みです。

完成形の関数

フォーム(投手)シートで名前=D列、完投=F列、完封=G列、勝敗=E列とします。年間(投手)シートの選手名がB2に入っているとすると、それぞれの式は次のようになります。

✅ 完投・完封・セーブの完成式

完投

=SUMIF('フォーム(投手)'!D:D, B2, 'フォーム(投手)'!F:F)

完封

=SUMIF('フォーム(投手)'!D:D, B2, 'フォーム(投手)'!G:G)

セーブ

=COUNTIFS('フォーム(投手)'!D:D, B2, 'フォーム(投手)'!E:E, "S")

完投・完封はSUMIF(前回と同じ構造)、セーブだけCOUNTIFSになる点がポイントです。

セーブの式を3つのパーツに分解して理解する

完投・完封のSUMIFは、前回解説した奪三振の式と構造がまったく同じです。ここではセーブのCOUNTIFSを丁寧に読み解いていきましょう。

パーツ① 名前で絞り込む:’フォーム(投手)’!D:D, B2
'フォーム(投手)'!D:D, B2

これが第1の条件です。フォーム(投手)シートのD列(名前)が、年間(投手)シートのB2(選手名)と一致する行だけに絞り込みます。

パーツ② 勝敗列が「S」の行だけカウント:’フォーム(投手)’!E:E, “S”
'フォーム(投手)'!E:E, "S"

これが第2の条件です。E列(勝敗)が「S」(セーブ)である行だけを対象にします。勝ちなら「勝」、負けなら「負」、セーブなら「S」、勝敗がつかなければ空欄というルールにしておけば、「S」と一致する行を数えるだけでセーブ数が求まります。

COUNTIFSを使う理由:条件が2つあるから
COUNTIFS(範囲1, 条件1, 範囲2, 条件2)

「この選手の行だけ(条件1)」かつ「勝敗が S の行だけ(条件2)」という2つの条件を同時に満たす行を数える必要があるため、複数条件に対応したCOUNTIFSを使います。条件が1つだけならCOUNTIFで十分ですが、条件が増えたらCOUNTIFSに切り替える——これを基本ルールとして覚えておきましょう。

例えばこんなデータで集計結果を確認してみる

ここで、フォーム(投手)シートに入力されたサンプルデータをもとに、全選手の集計結果を確認してみましょう。

選手名(仮) 完投 完封 セーブ 備考
TANAKA 0 0 0 1回のみの登板
NAKATA 0 0 0 中継ぎ中心
SUZUKI 2 2 0 2/1・3/15に完封勝利
YAMAMOTO 0 0 0
YAMAOKA 0 0 0
SAKAI(登板なし) 0 0 0 フォームに登場しない→自動で0
SATO 0 0 1 4/26に「S」を記録
YAMAKAWA 0 0 0
YAMADA 0 0 0

年間(投手)シートの集計値と、このサンプルはぴったり一致します。SUZUKIさんは完投2・完封2、SATOさんはセーブ1という結果です。登板のないMIWAさんはフォームに1行も登場しないため、SUMIF・COUNTIFSともに自動で 0 を返します。

完封は必ず完投とセットになる

ここで一つ、確認しておきたいことがあります。完封(相手チームを無失点に抑えて完投すること)は、定義上必ず完投でもあるという点です。

⚠️ フォーム入力時の注意:完封のときは完投も 1 にする

完封した試合を記録するときは、完封列を 1 にするだけでなく、完投列も必ず 1 にしてください。関数はそれぞれの列を独立して集計するため、完投列を 0 のままにしてしまうと、完投数が実態より少なく出てしまいます。

状況 完投列 完封列
完投(失点あり) 1 0
完封(失点なし・完投) 1 1
途中降板 0 0
❌ 入力ミスの例(完封のとき完投を 0 にしてしまう) 0 1

3指標の関数を並べて比較する

最後に、今回作った3つの式を並べて、構造の違いを確認しておきましょう。

📝 完投・完封・セーブの式を見比べると構造がよくわかる
指標 関数 条件数
完投 SUMIF(D:D, B2, F:F) SUMIF 1(名前のみ)
完封 SUMIF(D:D, B2, G:G) SUMIF 1(名前のみ)
セーブ COUNTIFS(D:D, B2, E:E, “S”) COUNTIFS 2(名前+「S」)

完投・完封は「その選手の行の数値(0/1)を合計する」だけなので、条件は名前の1つだけで済みます。一方セーブは「その選手の行」かつ「勝敗が S の行」という2条件が必要なのでCOUNTIFSを使う——この違いさえ押さえておけば迷いません。

✅ この記事のまとめ
  • 完投・完封は「あった=1、なかった=0」のフラグ(0/1)でフォームに記録し、SUMIFで選手別に合計する
  • セーブは勝敗列に「S」を入力し、COUNTIFSで名前と「S」の2条件で絞り込んで数える
  • 完封のときは完投列も必ず 1 にする——完投と完封は独立した列で別々に管理しているため
  • 条件が1つならSUMIF・COUNTIF、条件が2つ以上になったらCOUNTIFSに切り替える
  • 次回は年間(投手)シートの列構成を完成させる

次回予告

次回は「年間(投手)シートの列構成を完成させる」回です。第58回から積み上げてきた投球回・防御率・勝率・奪三振・完投・完封・セーブをすべて1つのシートに揃え、投手成績表をいよいよ完成させます。

▶︎ 次回:【第65回】年間(投手)シートの列構成を完成させる

コメント

タイトルとURLをコピーしました