前回で打点・本塁打・盗塁の集計が完成し、第5章の内容をすべて学び終えました。今回からは第6章「打撃成績の関数を作る」に入ります。
最初のテーマは打率の計算式です。打率は「安打数 ÷ 打数」というシンプルな割り算ですが、打数が0の選手がいると「#DIV/0!」というエラーが表示されてしまいます。これをIFERROR関数でスマートに防ぐ方法を解説します。
打率の定義をおさらいする
打率は「打席に立ったうち、何割ヒットにできたか」を表す指標です。
打率 = 安打数 ÷ 打数
打数(四球・死球・犠打・犠飛を除いた打席数)のうち、何本ヒットを打ったかを割り算で求めます。
スプレッドシートでそのまま書くと次のようになります。
=安打数のセル/打数のセル
たとえばTANAKAさんは安打7・打数19なので、7÷19≒0.368。SUZUKIさんは安打6・打数21なので、6÷21≒0.286です。計算自体はとてもシンプルです。
問題:打数が0のときに「#DIV/0!」エラーが出る
年間(野手)シートには、今シーズンまだ出場していない選手の行も並んでいます。出場していない選手は打数が0になるため、「何かの数÷0」という計算になってしまいます。
「Division by Zero(ゼロで割り算)」の略です。数学的にゼロで割ることは定義されていないため、スプレッドシートがエラーを返します。打数が0の選手がいる限り、このエラーは必ず発生します。
実際のデータで確認してみましょう。年間(野手)シートには出場試合数が0の選手が複数います。
| 選手名 | 打数 | 安打 | 打率(IFERROR前) |
|---|---|---|---|
| TANAKA | 19 | 7 | 0.368… |
| SUZUKI | 21 | 6 | 0.286… |
| YAMAMOTO | 0 | 0 | #DIV/0! |
| YAMAOKA | 0 | 0 | #DIV/0! |
出場していない選手の行にエラーが並ぶと、シート全体が見づらくなります。これをIFERROR関数で解消します。
IFERROR関数でエラーを0に置き換える
IFERROR関数は「エラーが出たら、代わりにこの値を表示する」という関数です。一言でいうと「エラーが起きたときの保険」です。
=IFERROR(計算式, エラーのときに表示する値)
- 第1引数:まず試みる計算式(打率の割り算など)
- 第2引数:エラーになったときに代わりに表示する値(0や空白など)
エラーが出なければ計算結果をそのまま表示し、エラーが出たときだけ第2引数の値に切り替わります。
=IFERROR(安打数のセル/打数のセル, 0)
打数が0でなければ安打÷打数の結果を、打数が0(エラー)なら0を表示します。シートで実際に使う場合、安打数と打数が入ったセルを参照します。たとえば安打数がG2・打数がF2に入っているなら次のように書きます。
=IFERROR(G2/F2, 0)
これで打数が0の選手は「0」と表示され、出場している選手は正しい打率が表示されます。
| 選手名 | 打数 | 安打 | 打率(IFERROR後) |
|---|---|---|---|
| TANAKA | 19 | 7 | 0.368… |
| SUZUKI | 21 | 6 | 0.286… |
| YAMAMOTO | 0 | 0 | 0(エラーなし) |
| YAMAOKA | 0 | 0 | 0(エラーなし) |
打率を「.368」形式で表示する
このままだと「0.368421…」という長い小数が表示されます。野球の慣習では打率は小数点以下3桁(.368)で表示するのが一般的です。セルの書式設定で見た目を整えましょう。
.000 と入力して「適用」をクリックする
セルの書式設定を変えても、セルの中身(値)は変わりません。「0.368421…」という数値のまま保持されており、見た目上「.368」と表示されているだけです。そのため他のセルからこのセルを参照して計算する場合も、正確な値で計算されます。
打率「.000」と「0」の表示の違い
書式設定を .000 にした場合、打数が0の選手(IFERRORで0を返している)は「.000」と表示されます。「出場していないから.000」という意味で、ランキングからは規定打席でフィルタリングして除外します(第51〜53回)。
| 選手名 | 打率(書式設定後) | 状況 |
|---|---|---|
| T.MIZUKO | .636 | 出場あり・好打率 |
| TANAKA | .368 | 出場あり・好打率 |
| YAMAMOTO | .000 | 未出場(エラーなし) |
| YAMAOKA | .000 | 未出場(エラーなし) |
エラー時に0ではなく空白を表示したい場合は =IFERROR(G2/F2, "") と書きます("" は空白を意味します)。ただし空白のセルを他の計算式が参照するとエラーになる場合があるため、まずは0にしておくのが無難です。
- 打率は 安打数 ÷ 打数 で計算する
- 打数が0の選手がいると #DIV/0! エラーが表示される
- IFERROR関数で「エラーなら0を表示」と設定して防ぐ。完成形は
=IFERROR(安打/打数, 0) - セルの書式設定を
.000にすると、打率が野球らしい 3桁表示(.368など)になる - 書式設定は見た目だけを変えるもので、セルの中の値は変わらない
次回予告
次回は「出塁率の定義と計算式を作る」。四球・死球・犠飛を加味した出塁率の計算式を、定義から丁寧に組み立てます。打率との違いも整理しながら進めましょう。
▶︎ 次回:【第48回】出塁率の定義と計算式を作る



コメント