第39回 「打数」の除外ロジックを関数で作る

前回は打席数と打数の違いを学びました。今回は打数を正確に計算するための除外ロジックを関数で実装します。

「打数 = 打席数 − 四球 − 死球 − 犠打 − 犠飛」という計算式を、実際のCOUNTIFS関数に落とし込んでいきましょう。

除外ロジックの全体設計

年間(野手)シートに以下の列を作って、段階的に計算します。

項目名 計算方法
A列選手名手入力
B列打席数「打なし」以外をカウント
C列四球数「四球」と一致をカウント
D列死球数「死球」と一致をカウント
E列犠打数「犠打」と一致をカウント
F列犠飛数「犠飛」と一致をカウント
G列打数B2−C2−D2−E2−F2
✅ 段階的に計算するメリット

四球・死球・犠打・犠飛を別々の列で管理することで、「四球は何個か」「犠打は何個か」という詳細な記録にもなります。また計算が間違っていたときにどの列が原因かすぐに特定できます。

打席数の関数

「打なし」以外のすべての打席をカウントします。

✅ B列:打席数の関数
=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,"<>打なし")

四球数の関数

「四球」と完全一致する打席をカウントします。

✅ C列:四球数の関数
=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,"四球")

死球(D列)・犠打(E列)・犠飛(F列)も同じ構造で「四球」の部分を「死球」「犠打」「犠飛」に変えるだけです。

打数の関数(最終形)

打席数・四球・死球・犠打・犠飛が別の列に揃ったら、打数は単純な引き算で求められます。

✅ G列:打数の関数
=B2-C2-D2-E2-F2

打席数(B2)から四球(C2)・死球(D2)・犠打(E2)・犠飛(F2)を引くだけです。シンプルで間違いにくい計算式になります。

動作確認の方法

関数を入力したら以下の手順で正しく動いているか確認しましょう。

確認① フォームからテストデータを送信する(例:田中選手で三安・遊ゴ・四球・犠打・打なし×6)
確認② 年間シートの打席数が「4」になっているか確認する(四球・犠打・三安・遊ゴの4打席)
確認③ 四球数が「1」、犠打数が「1」になっているか確認する
確認④ 打数が「2」(4−1−1=2)になっているか確認する
⚠️ 打席数・打数がおかしい場合のチェックポイント
  • 「打なし」の表記がフォームと完全に一致しているか(スペースや全角半角)
  • 「四球」「死球」「犠打」「犠飛」の表記がフォームと完全に一致しているか
  • 関数の列指定(G〜P列)がフォームの回答シートの実際の列と一致しているか
  • 選手名(A列)の表記がフォームの選択肢と完全に一致しているか

敵失・野選は打数に含まれることを確認する

敵失・野選は除外リストに入っていないため、打数に自動的にカウントされます。確認しておきましょう。

記号 打席数 除外項目か 打数
敵失❌(除外しない)
野選❌(除外しない)

敵失・野選は出塁できますが安打にはならないため、打率を下げる可能性があります。これは野球のルール通りの正しい計算です。

✅ この記事のまとめ
  • 打席数・四球・死球・犠打・犠飛を別々の列でカウントする
  • 打数は =打席数 − 四球 − 死球 − 犠打 − 犠飛 で求める
  • 除外項目はすべて完全一致でCOUNTIFS(ワイルドカード不要)
  • 敵失・野選は除外しないので打数に自動的にカウントされる
  • テストデータで動作確認をして正しく計算されているか確かめる

次回予告

次回は「COUNTIFSで選手ごとに絞り込む」。これまで学んだCOUNTIFSの条件を整理して、年間シートで選手ごとの成績を正確に集計する仕組みの全体像をまとめます。

▶︎ 次回:【第40回】COUNTIFSで選手ごとに絞り込む

コメント

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