IF関数とは、Excelに数多くある、関数の一つでよく使われています。
IFとは「もしも」という意味です。IF関数の大きな特徴は、こちらで定めた条件を満たしているかそうでないかで、ちがうデータを入力させることができることです。「もしも○○だったら○○する。そうでない場合は○○する」という計算を、Excelにやらせるのです。
文字だけで説明してもややこしいので、IF関数でどんな表を作れるかを、具体的に解説していきましょう。
IF関数で試験の合格・不合格判定をしてみよう
ある試験の成績表を作成していて、「判定」の列のセルに、70点以上の点数には「合格」と、70点以下には「不合格」という文字を入力したいとします。
手作業で入力でいいじゃないか、と思う人もいるかもしれませんが、それではキーボードで文字を打つ時間がもったいないです。IF関数なら、少ない時間で表を完成させることができます。
まずは画像のように、関数を入力したいセルをクリックして選択します。
画面上部にある「数式」タブをクリックします。現れたメニューの中から、紫色の本のマークが描かれた「論理」と書かれたボタンをクリック。すると、画像のようなメニューが現れます。
その中の、上から三番目にある、「IF」をクリックします。
「関数の引数」というボックスが、画面に現れます。
3つの欄がありますが、まずは「論理式」の欄に注目しましょう。これは条件を定める所です。「点数が70点以上」という条件を定めましょう。そのために、まず点数が書かれたセルをクリックします。すると、「論理式」の欄にクリックしたセル番号が表示されます(ここではB4)
「点数が70点以上」という意味の式を書くために、B4の次には「>=」という記号を半角文字で入力します。これは不等号の「≧」と同じ意味になります。
次に合格点である「70」と書かれたセルをクリックして「>=」の右に、セル番号(ここではC1)が書かれるようにしましょう。「B4>=C1」となっていればOKです。
次に、「点数が70点以上の場合は判定のセルに合格と入力」するように設定します。
「真の場合」の欄は条件が成立しているときに、セルに何を入力するかを決める箇所です。つまり、点数が70点以上のときに合格と入力するようにします。
「“合格”」と合格の文字を「”」(ダブルクオテーションマーク)で挟むように入力しましょう。このとき、「”」は半角文字で入力しましょう。半角にしなかったり、「”」を書かずに「合格」だけ入力してもExcelは認識してくれません。
「”」を入力するには、Shiftキーを押しながら「2」のキーを押すのだぞ。左上に「”」が書かれているキーだぞ。
「偽の場合」の欄は、条件が成立していないときに、セルに何を入力するかを決めます。点数が70点未満のときに、不合格と入力するようにします。
「“不合格”」と不合格の文字を「”」で挟みましょう。繰り返しになりますが、「”」は半角文字で入力しましょう。
入力できたらOKをクリックします。
「”」ダブルクオテ―ションマークは、元は引用文を書くときに使われる記号です。Excelでは数値ではない文字のデータを、関数に用いる際には必ず必要になります。
入力したら、シートの上の数式バーをチェックしましょう。入力したIF関数の数式が記されています。
ここで、数式をコピーしても合格点を書いたセル「C1」を書き換えられないように、絶対参照に設定しておきましょう。数式の中の、「C1」の前をクリックして、F4キーを押します。
「$C$1」という表記になれば、OKです。
絶対参照について、詳しく知りたい方はこちらの記事で解説しています。
入力したら、オートフィルを使って数式をコピーしましょう。このように、合格、不合格の判定が一瞬で行われました。
SUM関数と組み合わせて空白のセルを作ろう
とある二日に渡る試験の成績をまとめた表ですが、相沢さんはやむを得ない事情で試験を休んだようです。そこで、二日目の点数を書くセルは空白にして、合計点数も相沢さんの欄だけは、空白にしたいとします。
このとき、SUM関数で普通に、一日目と二日目の合計を出そうとすると、相沢さんの二日目の空白を、Excelは「0」として認識してしまいます。なので、合計点数のセルにも「86+0」の答えということで、86と書かれてしまいます。
手作業で相沢さんのセルだけ空白にしてもよさそうですが、この後さらにたくさんの成績をまとめなければならず、他にも都合により休んだ人の点数を空白にしなければならないことがあるかもしれません。
なので、ここは点数が空白のときは合計点数を空白にして、そうでないときは普通に点数を合計する数式を、IF関数とSUM関数を組み合わせて入力しましょう。
「数式」タブのメニューから、「論理」のメニューを開いて「IF」を選んで、このボックスを出します。
まず論理式の欄に、セルが空白であるという条件を設定するために「C4=””」という数式を入力します。「””」とダブルクオテーションの間に何もはさまないことで、空白という意味になります。
次に「真の場合」つまり、セルが空白の場合は、合計点数も空白になるように「””」と入力します。「偽の場合」セルが空白でない場合は、「SUM(B4:C4)」と点数を計算するように、SUM関数を入力します。
OKをクリックして、数式をオートフィルでコピーすれば、点数が空白になっている場合は合計が空白になり、そうでない場合は合計を計算するようになります。
OR関数で二つある条件のどちらかを満たす場合に答えを変える
さっきの表に書いた関数だけど、一日目が空白の場合に対応していないんじゃ?
とても鋭いです。先ほどの関数だと、一日目が空白で二日目に点数が書いてる場合は、合計点数が空白になりません。
上のように、一日目を休んで二日目の試験を受けた、香川さんが現れたので、関数を書き直しましょう。
関数は「一日目が空白である、もしくは、二日目が空白である」を条件にするために、IF関数に加えてもう一つ関数が必要になります。「OR関数」です。
IF関数の引数のボックスを出してから、画面上部の数式バーの左横にある「IF」と書かれている欄の三角形をクリックします。画面のようなメニューが現れるので、「OR」を探してクリックします。
もしも、現れたメニューの中に「OR」がなかった場合は、一番下の「その他の関数」をクリックします。上のようなボックスが現れるので、「OR」を検索してクリックしてください。
「OR」をクリックすると、OR関数の論理式を入力するウィンドウが現れます。
まず、論理式1に「B4=””」と、一日目の点数が空白であるという条件を入力します。
次に、論理式2に「C4=””」と、二日目の点数が空白であるという条件を入力します。
これで、「一日目の点数が空白である、あるいは、二日目の点数が空白である」という意味の条件になります。
条件を入力したところですが、ここでOKをクリックしてはいけません。IF関数を書く前に、関数の入力を終わらせてしまいます。
どこをクリックしたらいいのかというと、画面上部の数式バーの中の「IF」をクリックします。
すると、IF関数の条件を入力するボックスに戻ります。「論理式」の欄には、「OR(B4=””,C4=””)」と、OR関数で定めた条件がすでに入力されています。
後は、先ほどと同じように真の場合には空白に、偽の場合には合計点数を計算して入力するように設定します。そして、OKをクリックして関数の入力を確定させます。
入力してコピーすれば、このように、一日目と二日目、どちらかが空白なら合計点数を空白にするようになりました。
AND関数で2つの条件を満たす場合に答えを変える
先ほどのOR関数では、2つある条件のうちどちらかを満たすかで、答えが変わる関数でしたが、2つある条件の両方を満たすかそうでないかで、答えを変える関数もあります。
AND関数というものです。
今度はこの試験の合否判定を行います。合格条件は「一日目と二日目の成績が、両方とも70点以上」です。Excelで自動的に判断させるために、IF関数とAND関数を用いて入力してみましょう。
先ほどのOR関数と同じように「IF」のウィンドウを出してから、数式バーの左横のメニューを開きましょう。メニューの中から「AND」を選んで、クリックします。メニューにない場合は、一番下の「その他の関数」から「AND」を検索しましょう。
AND関数の論理式を入力するウィンドウが現れます。論理式1には「一日目の点数が70点以上」という意味になるように、「B4>=70」と入力します。
論理式2には「二日目の点数が70点以上」という意味になるように「C4>=70」と入力します。
これで、一日目の点数が70点以上かつ二日目の点数が70点以上という条件になります。
条件を入力したら、OR関数のときと同じく、OKをクリックしてはいけません。
数式バーの先頭の「IF」をクリックしましょう。
IF関数の条件を入力するウィンドウが現れます。OR関数のときと同じく、論理式にはすでに「AND(B4>=70,C4>=70)」と入力されています。
後は「真の場合」に「”合格”」、「偽の場合」に「”不合格”」と入力して、OKをクリックしましょう。
この通り、「一日目と二日目の両方の点数が70点以上」という条件に基づいて、合格か不合格かを自動で入力されるようになりました。
OR関数もAND関数も、入力するときの操作の仕方はほとんど同じだぞ。ただ、二つの条件のどちらかを満たすか、両方を満たすかはちゃんと確認するのだぞ。
ISBLANK関数と組み合わせて空白のセルを空白のままにする
今度は、お菓子の売上をまとめた表です。「総売上」のセルには、価格と販売個数をかける式が入力されています。一番上のじゃがいもチップスの総売上は「=B11*C11」という式を入力して、答えを出させています。
その式を、オートフィルで表の一番下までコピーして、総売上合計も出している状態ですが、何か気になる点があるでしょう。商品名が空白になっている場合でも、総売上を0円と計算してしまってます。先述したように、Excelは空白のセルは「0」と認識しているので、このような表記になります。
そもそも商品がなく、売上の計算をしていないのに、合計が0円と表記されているのは違和感があるので、商品が空白の場合は、総売上も空白にするようにしましょう。
空白にするにはISBLANK関数を使います。この関数は、今までの関数と違って楽に入力するためのメニューがないので、数式バーに直接入力します。
「=IF(ISBLANK(B11),””,B11*C11)」と画像のように、入力しましょう。
ISBLANK関数は指定したセルが、空白なのかそうでないかを判断する関数です。
IF関数と組み合わせることで、指定したセルが空白なのかそうでないかで、ちがうデータを入力させることが出来ます。「=IF(ISBLANK(B11),””,B11*C11)」というこの関数は、B11のセルが、空白の場合は関数を入力したセルを空白に、そうでない場合はB11とC11の数値をかける、という意味になります。
関数を入力して、関数をコピーすればこのように、空白のセルは空白のままにするようになります。
空白にしたかったら、関数をコピーしなければいいじゃんと思われるかもしれません。ですが、もしも後から商品を入力することになったとき、この関数を入力しておけば、価格と販売個数を入力するだけで、ちゃんと総売上が計算されるようになります。データ入力の手間を省くことができるのです。
もしものときに備えて、IF関数を使いこなせるようになるといいぞ。