前回はCOUNTIF関数の基本構造を学びました。今回はワイルドカード(*)を使った部分一致の判定を詳しく解説します。
ワイルドカードは「三安・中安・右安など複数の記号をまとめて1つの条件でカウントする」ために欠かせない仕組みです。この連載で最も重要なテクニックの1つです。
ワイルドカードとは何か
ワイルドカードとは「何でもOK」を意味する特殊な文字です。スプレッドシートでは*(アスタリスク)がワイルドカードとして使えます。
* は「どんな文字が何文字あってもOK」という意味です。
"*安*" は「安の前に何があってもOK、安の後に何があってもOK」
→ 「左安」「中安」「右安」「三安」「一安」すべてがマッチします。
ワイルドカードの使い方パターン
| 書き方 | 意味 | マッチする例 | マッチしない例 |
|---|---|---|---|
"*安*" | 「安」を含む | 左安・中安・三安 | 遊ゴ・四球・中2 |
"安*" | 「安」で始まる | 安打(もし使う場合) | 左安・中安(安が先頭でない) |
"*安" | 「安」で終わる | 左安・中安・三安 | 安打(安が末尾でない) |
"*ゴ*" | 「ゴ」を含む | 遊ゴ・三ゴ・二ゴ | 左飛・三安・四球 |
記号の前後に何がついても確実にマッチさせるため、この連載では「*安*」「*2*」「*本*」のように前後両方にワイルドカードをつける形を基本とします。
安打系の記号をワイルドカードでカウントする
ヒット系の記号には「安」「2」「3」「本」というキーワードが含まれています。それぞれワイルドカードを使ってカウントします。
単打(安打)のカウント
=COUNTIF(G2:P2, "*安*")
「左安・中安・右安・三安・一安」がすべてカウントされます。
二塁打のカウント
=COUNTIF(G2:P2, "*2*")
「左2・中2・右2」がカウントされます。
三塁打のカウント
=COUNTIF(G2:P2, "*3*")
「左3・中3・右3」がカウントされます。
本塁打のカウント
=COUNTIF(G2:P2, "*本*")
「左本・中本・右本」がカウントされます。
安打の総数を1つの式で求める
打率の計算に使う「安打の総数」は単打+二塁打+三塁打+本塁打の合計です。4つのCOUNTIFを足し算します。
=COUNTIF(G2:P2,"*安*")+COUNTIF(G2:P2,"*2*")+COUNTIF(G2:P2,"*3*")+COUNTIF(G2:P2,"*本*")
G2〜P2に「三安・遊ゴ・中2・四球・打なし×6」が入っている場合:
*安*:三安が1つ → 1
*2*:中2が1つ → 1
*3*:該当なし → 0
*本*:該当なし → 0
合計:2(安打の総数)
ワイルドカードを使う際の注意点
"*2*"は「2を含む」全てのセルにマッチします。打席列(G〜P列)には打席結果の記号しか入らないため、この連載の設計では問題ありません。しかし設計を変えるときに他のデータが混在しないよう注意しましょう。
*(アスタリスク)は「何でもOK」を意味するワイルドカード"*安*"は「安を含む」→ 左安・中安・右安・三安・一安がマッチ- 単打:
"*安*"、二塁打:"*2*"、三塁打:"*3*"、本塁打:"*本*" - 安打の総数は4つのCOUNTIFを足し算して求める
- 打席列には打席結果の記号しか入れないよう列の役割を明確に分ける
次回予告
次回は「『安打』を含む記号をすべてカウントする」。今回学んだワイルドカードを実際の年間(野手)シートに適用して、選手ごとの安打数を自動集計する関数を完成させます。


コメント