関数のネスト(入れ子)の使い方としくみ|草野球成績管理表でIF×IFERRORを組み合わせる例で解説

関数の使い方

これまでの回で、IF・IFERRORなど1つずつの関数の動きを見てきました。今回はその応用編として、関数を重ねて使う「ネスト(入れ子)」について、使い方と内部のしくみを解説します。草野球の成績管理表で、打率を表示する式を例に、初心者向けに丁寧に説明します。

関数のネスト(入れ子)とは

📝 ネストの役割(一言でいうと)

ある関数の結果を、そのまま別の関数の引数として使う書き方のことです。1つの関数だけでは表現しきれない処理を、複数の関数を組み合わせて1つの式にまとめたいときに使います。

基本の考え方はこうです。

=外側の関数(内側の関数(さらに内側の関数(…)))

カッコの中にカッコが入っている形で、電卓で計算するときの「括弧の中を先に計算する」という考え方と同じです。

成績管理表での実例:IFとIFERRORを組み合わせて打率を表示する

大阪グーニーズの個人成績シートで、D列に打数、E列に安打が入っているとします。この2つの列から打率を計算してF列に表示したいのですが、そのまま割り算するだけでは困るケースが2つあります。

選手名 打数(D列) 安打(E列) 打率(F列)
SUZUKI 5 2 0.4
NAKATA 0 0
YAMAMOTO (未入力) (未入力)

NAKATAは「試合には出たが打数0」、YAMAMOTOは「そもそもまだ試合に出ていない(欄が空白)」という違う状態です。どちらも表示上は「-」にしたいのですが、原因が違うため、それぞれに対応した関数を組み合わせる必要があります。この2つの状態を1つの式でまとめて処理するのが、次の式です。

✅ 打率を表示する式(F2セルの場合)
=IF(D2="","-",IFERROR(ROUND(E2/D2,3),"-"))

この式は、外側から見るとIF、その中にIFERROR、さらにその中にROUND、さらにその中に割り算(E2/D2)という、4段階の入れ子になっています。どの処理がどの関数の内側に入っているのか、下の図で確認してみましょう。

ネストの構造:IFの中にIFERROR、その中にROUND、さらにその中にE2/D2が入る4段階の入れ子を、打率表の例で示した図解 ネスト(入れ子)の構造 1つの式の中に、IF・IFERROR・ROUND・割り算が4段階で入っている fx =IF(D2=””,”-“,IFERROR(ROUND(E2/D2,3),”-“)) ※ B列・C列は省略しています A D E F 1 選手名 打数 安打 打率 2 SUZUKI 5 2 0.4 3 NAKATA 0 0 4 YAMAMOTO 打数・安打が入力済み → 割り算した結果を表示 打数0 → 0除算エラー → IFERRORが「-」に置き換え D列が空欄 → IFが判定して「-」に F2の式の入れ子構造(外側 → 内側) ① IF D2が空欄なら「-」を表示する ② IFERROR 計算がエラーになったら「-」を表示する ③ ROUND 小数第3位で四捨五入する ④ E2/D2 安打 ÷ 打数 を計算する =外側の関数(内側の関数(…)) 内側の関数が返した結果が、そのまま外側の関数の引数になります。 例:=IF(D2=””,”-“,IFERROR(ROUND(E2/D2,3),”-“)) → IFの中にIFERROR、その中にROUND、さらに割り算が入る 大阪グーニーズ データ解説
打率を表示する式は、IF・IFERROR・ROUND・割り算の4段階の入れ子になっている
STEP 1
一番内側の計算式だけを単体で入力してみる

いきなり完成形を書こうとせず、まずは「=E2/D2」だけを入力し、正しく割り算されるかを確認します。ネストは内側から組み立てるのが安全です。

STEP 2
内側の式をROUNDで包む

動作確認できたら、その式をまるごとROUNDのカッコの中に入れます。「=ROUND(E2/D2,3)」とし、桁数がそろうか確認します。

STEP 3
さらに外側からIFERRORで包む

「=IFERROR(ROUND(E2/D2,3),”-“)」とし、打数0の行(0除算)で「-」が表示されるか確認します。

STEP 4
最後に外側からIFで包み、閉じ括弧の数を数える

一番外側に「IF(D2=””,”-“, … )」を足して完成です。確定する前に、開いたカッコの数と閉じたカッコの数が一致しているか、必ず数えてからEnterキーを押します。

コメント

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