スプレッドシートで指定した条件に適合するかどうかで、表示を変えたいということがあると思います。そんな時はif関数を使います。
if関数は指定した条件に適合するか(TRUE)、適合しないか(FALSE)によってセルに表示される値を変える関数です。
=IF(論理式, TRUE値, FALSE値)
論理式とは真偽(TRUEかFALSE)を表す式、またはそうした式を含むセルの参照、TRUE値とは論理式がTRUEの場合に返される値、FALSE値とは論理式がFALSEの場合に返される値です。
if関数が使われるケースでわかりやすいのは合否判定です。論理式のところに、『得点が80点以上なら合格、80点未満の場合は不合格』を判別するための計算式を入れます。
=if(80
人数分反映させるには論理式のセルの値を変えていけばいいですが、数百行、数千行となると非効率ですし、負荷がかかるので以下のようにARRAYFORMULA関数を利用しましょう。
=arrayformula(IF(80
""
論理式は文字列で判別することもできます。文字列は""(ダブルクォーテーション)で括る必要があります。簡単なクイズで正しい回答には正解、それ以外のものには不正解と表示させるようにします。
=if(C4="徳川家康","正解","不正解")
ここでも効率を考え、ARRAYFORMULA関数にしてみましょう。
=ArrayFormula(if($C4:$C11="徳川家康","正解","不正解"))
if関数の論理式を『空白だったら』という判別を行うにはどうしたらいいでしょうか。アンケートで空欄の場合は、『未回答』、何か入力されている場合は『◯』と表示させるようにしてみましょう。
空白を判別するにはISBLANKという関数を使います。この関数は空白だった場合trueを返します。
=ISBLANK(値)
IF関数内でISBLANK関数を使用するとこのようになります。
=if(isblank(C3),"未回答","◯")
ARRAYFORMULA関数で入力すると下記のようになります。
=ArrayFormula(if(ISBLANK(C3:C10),"未回答","◯"))
ではさらに複雑な条件を設定してみましょう。if関数は入れ子にすることで複数条件を指定することも可能です。
空白の場合は『未回答』、正解の場合は『◯』、不正解の場合は『回答をそのまま表示』させるようにしてみましょう。
画像のサンプルを見て貰えばわかるように、if関数が入れ子になっています。黒い下線を引いてあるのが外のif関数ですが、最初の論理式で、C4のセルが空白であれば、TRUE値に設定してある『未回答』が表示され、空白でなかった場合のFALSE値に入れ子になったIF関数が入っているのがわかると思います。そこで『徳川家康』という文字と一致すればTRUE値の『◯』が表示され、一致しなければFALSE値に設定してある『セルに入力された文字列』がそのまま表示されるようになります。
=if(ISBLANK(C4)=true,"未回答", IF(C4="徳川家康", "○", C4))
下段へはオートフィルで展開してもいいですが、データ数が膨大になったことを想定して、ARRAYFORMULA関数で置き換えます。
=ArrayFormula(if(ISBLANK(C4:C11)=true,”未回答”, IF(C4:C11=”徳川家康”, “○”, C4:C11)))
入れ子にすることで複数条件にも対応することは可能ですが、複数条件にはifs関数の方が適していますのでifs関数を使いましょう。
if関数は基本的な関数ですが、簡単な適否の判別には最も使用される関数なので必ず覚えておきたい関数ですね。
スプレッドシートの関数の基本的なものを紹介しています。
スプレッドシートの使い方については下記の記事でまとめていますので併せてお読みください。