第43回 盗塁をフォームで記録してカウントする方法

関数・自動化

前回は犠打・犠飛・敵失・野選・併殺という特殊打席のカウント方法を学びました。今回は盗塁をフォームで記録して、選手ごとに集計する方法を解説します。

実は盗塁の管理は、これまでの「打席結果をCOUNTIFSでカウントする」方法とは少し勝手が違います。盗塁は打席結果ではなく「1試合に何個盗塁したか」という数値として記録するものだからです。そのため集計には、これまで登場していなかったSUMIFS(サムイフエス)という関数を新しく使います。

なぜ盗塁は打席結果と別に管理するのか

「盗塁も打席結果の選択肢に加えればいいのでは?」と思う方もいるかもしれません。しかし盗塁は打席(打者として打つこと)そのものではなく、出塁したあとの走塁行為です。

📝 盗塁が打席結果とは別になる理由

たとえば「安打で出塁したあとに盗塁した」というケースを考えてみましょう。この場合、打席結果は「安打」、そして盗塁が1個という情報を、同じ打席の行に両方とも記録したいはずです。もし打席結果の選択肢に「盗塁」を追加してしまうと、せっかくの安打の記録が上書きされて消えてしまいます。だからこそ盗塁は数値として別の列に入力する設計にしています。

例えば、フォームの回答シートがこんな構造になっていたとします。

項目 入力形式
E列名前選択肢(ドロップダウン)
G〜P列第一〜第十打席選択肢(三安・四球・遊ゴ…)
Q列打点数値入力(0・1・2・3…)
R列盗塁数値入力(0・1・2・3…)

打席結果は「記号を選ぶ」形式ですが、盗塁と打点は「数値を入力する」形式です。この違いが、次に使う集計関数にも影響してきます。

COUNTIFSとSUMIFSの違い

これまで使ってきたCOUNTIFSは、条件に合う行を数える関数でした。一方、盗塁の集計では条件に合う行の数値を合計する必要があるため、SUMIFSを使います。

関数 何をするか 使う場面
COUNTIFS条件に合う行を数える安打数・三振数など「何回あったか」を集計するとき
SUMIFS条件に合う行の数値を合計する盗塁数・打点など「数値の合計」を集計するとき
📝 SUMIFSの引数の順番に注意

COUNTIFSは「条件範囲、条件」という順番でしたが、SUMIFSは最初に「合計する列」を指定してから「条件範囲、条件」を書きます。似ているようで少し順番が違うので、混同しないよう気をつけましょう。

COUNTIFS(条件範囲1, 条件1, ...)
SUMIFS(合計範囲, 条件範囲1, 条件1, ...)

盗塁数の関数

SUMIFSの構造を確認できたところで、この考え方をもとに関数を組み立てていきましょう。

考え方① 合計したい列はどこか:盗塁数が入っているR列(盗塁の列)
考え方② 絞り込む条件は何か:E列(名前)が「A2(田中)」と一致する行だけ
考え方③ その行のR列の数値を合計する:試合ごとの盗塁数をすべて足し算
✅ 盗塁数の関数
=SUMIFS('フォームの回答(野手)'!R:R,'フォームの回答(野手)'!E:E,A2)
  • 'フォームの回答(野手)'!R:R:盗塁数が入っている列(合計したい列)
  • 'フォームの回答(野手)'!E:E:選手名が入っている列(絞り込む条件の列)
  • A2:年間シートのA2セル(田中選手の名前)

COUNTIFSのときのように、打席列(G〜P列)を10回分足し算する必要はありません。盗塁は1行につき1つの数値として記録されているので、SUMIFSを1回書くだけで集計が完結します。

サンプルデータで確認してみよう

例えば、こんなフォーム回答シートがあったとします。このデータを使って、TANAKAさんの盗塁数を集計してみましょう。

試合 主な打席結果 盗塁(数値入力)
第1試合三ゴ・敵失1
第2試合四球・左安・四球・敵失3
第3試合四球・右安1

SUMIFSは、TANAKAさんの行(第1・第2・第3試合…)にあるR列の数値をすべて合計します。この3試合だけでも 1+3+1=5盗塁という結果になります。

✅ COUNTIFSとの比較イメージ
【COUNTIFSのイメージ:安打をカウント】
第1試合:敵失(*安*に該当しない)→ カウントしない
第2試合:左安(*安*に該当)→ カウント +1
         ↓ 「何回か」を数える

【SUMIFSのイメージ:盗塁を合計】
第1試合:盗塁欄に「1」→ 合計に +1
第2試合:盗塁欄に「3」→ 合計に +3
第3試合:盗塁欄に「1」→ 合計に +1
         ↓ 「数値の合計」を出す

打点の集計も同じ仕組みで作れる

打点もフォームで数値入力しているため、SUMIFSでまったく同じように集計できます。盗塁のR列を、打点のQ列に置き換えるだけです。

✅ 打点数の関数(参考)
=SUMIFS('フォームの回答(野手)'!Q:Q,'フォームの回答(野手)'!E:E,A2)

盗塁の関数のR列をQ列に変えるだけで完成です。構造はまったく同じなので、コピーして列番号を修正するだけで済みます。

全選手に展開するコピーの仕組み

2行目(例:TANAKAさん)の関数が完成したら、あとは3行目以降にコピーするだけです。それだけで全選手の盗塁数が自動で集計されます。

📝 コピーが機能する理由(おさらい)

関数の中のA2(選手名セル)が相対参照になっているため、3行目にコピーすると自動的にA3に変わります。これにより田中→鈴木→山田…と、選手ごとの集計が自動で切り替わっていきます(第40回で学んだ内容と同じ仕組みです)。

⚠️ フォームの盗塁欄が空白のときの注意

盗塁が0のとき、フォームの盗塁欄には「0」と入力する運用になっているか確認してください。空白のままでもSUMIFSは無視して計算するため合計結果は変わりませんが、あとで試合ごとの記録を見返したとき、空白が「入力忘れ」なのか「0」なのか区別がつかなくなってしまいます。チーム内で「0のときも必ず0と入力する」というルールを決めておくと安心です。

✅ この記事のまとめ
  • 盗塁は打席結果(選択肢)ではなく、数値として別の列に記録する
  • 数値の合計を集計するときはSUMIFSを使う(COUNTIFSは「数える」、SUMIFSは「合計する」)
  • SUMIFSは「合計する列、条件範囲、条件」の順に書く
  • 打席列(G〜P列)を10行に渡って書く必要がなく、1行のSUMIFSで完結する
  • 打点の集計も同じ仕組みで、列をQ列に変えるだけで作れる

次回予告

次回は「試合数を選手ごとに自動カウントする方法」を解説します。出場した試合を重複なくカウントするCOUNTIFSの活用方法を紹介しますが、これは規定打席の計算にも欠かせない数字です。今のうちにしっかり押さえておきましょう。

▶︎ 次回:【第44回】試合数を選手ごとに自動カウントする方法

コメント

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