第36回 「安打」を含む記号をすべてカウントする

前回はワイルドカード(*)を使って安打系の記号をカウントする方法を学びました。今回はそれを年間(野手)シートに実際に適用して、選手ごとの安打数を自動集計する関数を完成させます。

ここで登場するのがCOUNTIFS(カウントイフエス)という関数です。COUNTIFが1つの条件でカウントするのに対して、COUNTIFSは複数の条件でカウントできます。

COUNTIFとCOUNTIFSの違い

関数 条件数 使い道
COUNTIF1つ「安を含む」など単純な条件でカウント
COUNTIFS複数「田中選手の」「安を含む」など複数条件でカウント
✅ COUNTIFSの基本構造
=COUNTIFS(
  範囲1, 条件1,
  範囲2, 条件2,
  範囲3, 条件3
  …
)

範囲と条件をセットで複数並べます。すべての条件を同時に満たす行だけがカウントされます。

年間(野手)シートで安打数をカウントする

年間シートでは「フォームの回答(野手)シートの中から、この選手の安打を含む打席結果をカウントする」という処理を行います。

必要な条件は以下の2つです。

条件 参照列 内容
条件①E列(選手名)「田中」と一致する行だけを対象にする
条件②G〜P列(打席結果)「安」を含む記号をカウントする

実際の関数を組み立てる

年間(野手)シートのA列に選手名が入っている場合、B列に安打数を表示する関数はこうなります。

✅ 単打(安を含む)のカウント
=COUNTIFS(
  'フォームの回答(野手)'!E2:E1000, A2,
  'フォームの回答(野手)'!G2:G1000, "*安*"
)
+COUNTIFS(
  'フォームの回答(野手)'!E2:E1000, A2,
  'フォームの回答(野手)'!H2:H1000, "*安*"
)

ただしこれだと第一打席(G列)と第二打席(H列)を別々に書く必要があり、10打席分繰り返すと関数がとても長くなります。

📝 SUMPRODUCTを使うとスッキリ書ける

第一〜第十打席(G〜P列)をまとめて処理するには、SUMPRODUCT関数を使う方法があります。これにより1つの式で10打席分を一括処理できます。詳しくは第40回で解説しますが、まずCOUNTIFSの基本を理解することが先決です。

打席列を1列ずつ処理する方法(基本版)

まず基本的な方法として、第一打席〜第十打席を1列ずつ足し算する関数を見ておきましょう。

✅ 安打数(単打)の関数(基本版)
=COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!G:G,"*安*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!H:H,"*安*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!I:I,"*安*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!J:J,"*安*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!K:K,"*安*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!L:L,"*安*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!M:M,"*安*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!N:N,"*安*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!O:O,"*安*")
+COUNTIFS('フォームの回答(野手)'!E:E,A2,'フォームの回答(野手)'!P:P,"*安*")

長く見えますが、構造は同じ式の繰り返しです。「E列が田中かつG列が*安*」→「E列が田中かつH列が*安*」…という10回の足し算です。

安打の総数(単打+二塁打+三塁打+本塁打)を求める

安打の総数は上記の「単打」版に加えて「*2*」「*3*」「*本*」の3パターンも同様に足します。

✅ 安打の総数の考え方
安打の総数
= 「*安*」の合計(第一〜第十打席)
+ 「*2*」の合計(第一〜第十打席)
+ 「*3*」の合計(第一〜第十打席)
+ 「*本*」の合計(第一〜第十打席)
📝 実際のシートでは別々のセルに分けて管理するのがおすすめ

1つのセルに全部詰め込むと長くなりすぎてデバッグが大変です。年間シートでは「単打数」「二塁打数」「三塁打数」「本塁打数」を別々の列に持ち、安打の総数はそれらを合算する列を作るとシンプルになります。

この関数を2行目に入れたら3行目以降はどうするか

年間シートの2行目に田中選手の関数を入れたら、3行目(鈴木選手)以降はA2の部分をA3・A4…に変えるだけです。

✅ コピーで一気に展開する方法
  • 2行目の関数が完成したら、そのセルをコピーする
  • 3行目以降の同じ列のセルを選択して貼り付ける
  • A2の部分が自動的にA3・A4…に変わる(相対参照の仕組み)
✅ この記事のまとめ
  • COUNTIFSはCOUNTIFの複数条件版、範囲と条件をセットで複数並べる
  • 年間シートでは「選手名が一致」かつ「打席結果が*安*」の2条件でカウント
  • 第一〜第十打席(G〜P列)を1列ずつCOUNTIFSで処理して足し算する
  • 安打の総数は単打+二塁打+三塁打+本塁打の合計
  • 2行目の関数が完成したらコピーで3行目以降に展開できる

次回予告

次回は「『二塁打』『三塁打』『本塁打』を別々にカウントする」。今回学んだCOUNTIFSをベースに、長打系の記号を種類別にカウントする関数と、重複カウントを防ぐ考え方を解説します。

▶︎ 次回:【第37回】「二塁打」「三塁打」「本塁打」を別々にカウントする

コメント

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