初心者にIF関数を解説するときには「~であればX、そうでなければY」といった単純な例を紹介することが多いです。市販されているExcelの教科書やネット上の講義でも、単純な例だけを紹介しているため、初心者の皆さんは「な~んだ、IF関数って簡単なんだ~」と勘違いしてしまいます。
しかし、実際にはそんな単純な数式では済まないことが多いです。IF関数には論理式、真の場合の値、偽の場合の値の3つの引数があり、それぞれ計算式を記述することができます。そのため、IF関数を使った数式は長くなることが多いです。いきなり初心者が長い数式を練習するのも大変だと思いますので、まずは、足し算、引き算などの簡単な演算を入れる練習をしてみてはいかがでしょうか?
そこで、今回は、IF関数の応用として、IF関数の引数に簡単な計算式を入れる問題を出題します。
目次
1.四則演算のある論理式
(1)四則演算は先に計算する
問題
セルA1とセルA2をかけて10000を超えればTRUE、そうでなければFALSEと表示しなさい。また、セルA1とセルA2をかけて10000を超えれば〇、それ以外は×と表示しなさい。
解説
セルA1とセルA2を掛けます。10000を超えます。
この値が10000を超えるかどうかを比較演算で判定することができます。
TRUEとなります。
先頭のイコールは、数式の始まりを表す記号です(参考:【Excel】真と偽の意味と比較演算のメリットを知らずしてIF関数を語ってはいけない)。
不等号の左辺と右辺に、足し算、引き算、掛け算、割り算の四則演算があれば先に計算します。
その結果、不等号が成り立つのであればTRUE、成り立たないのであればFALSEとなります。
セルA1の値を減らしてみましょう。FALSEとなりました。
掛け算をした結果、10000以下になったので不等号が成り立たず、FALSEの判定となります。
このように、左辺と右辺にそれぞれ何らかの計算がある場合は、その計算結果を比較して判定をします。
また、IF関数を用いて、TRUEとFALSEをそれぞれ別の文字列に変換することもできます(参考:IF関数は、判定しているのではなく「変換しているだけ」であることを理解せよ【Excel】)。
IF関数を入れます。
カンマ、〇、カンマ、×と入力して、カッコを閉じます。
これで完成です。
(2)絶対参照
問題
A列とB列の合計がセルF1の値以上であれば合格、それ以外は不合格と表示しなさい。
解説
まず、論理式だけを考えます。A列とB列をたして、セルF1の値以上であることを判定します。
すべてTRUEになってしまいます。これは間違いです。
足し算や引き算と同じように、比較の対象となる数値を1か所のセルに入力したときは、絶対参照が必要であることに注意します(参考:【Excel】絶対参照は表の形とコピーの有無で判断できるように練習せよ)。
これをIF関数にします。合計が160以上であれば合格、それ以外は不合格として、カッコを閉じます。
これで完成です。
論理式が長くなってもIF関数の見方は同じです。IF関数はカッコの中にカンマが2つあります。
論理式の中に比較演算があればその判定をします。論理式がTRUEであれば、第2引数の値を返し、FALSEであれば第3引数の値を返します。
2.月日の前後の判定
問題
同じ年の11月2日と10月23日では11月2日のほうが後である。このように、セル範囲A2:B2の月日が、セル範囲D2:E2の月日より後であれば〇、そうでなければ×と表示しなさい。
解説
月日を分けて入力している場合、月日の前後を判定するときは、4桁の数値にして比較します。4桁の数値にするときは月を100倍して日にちを足します。
IF関数を入力します。
論理式を入力します。月を100倍して日にちを足します。不等号を入れて、月を100倍して日にちを足します。カンマ、〇、カンマ、×と入力してカッコを閉じます。
これで完成です。
IF関数のカッコから最初のカンマまでが論理式です。
左辺と右辺に四則演算があれば計算をします。判定結果を○または×で表示します。
3.セル参照や演算結果を返す練習問題
(1)値引き
問題
10000円以上購入の場合に2割引をすることにした。セルB1の金額から値引き後の金額を求めなさい。
解説
値引き後の金額は、元の金額が10000円以上か、そうでないかによって求め方が異なります。
つまり、10000円以上であることを判定して、TRUEの場合とFALSEの場合に分けて計算することになります。このような場合もIF関数が使えます。
まず、論理式を考えます。10000円以上であれば値引きをします。この場合はTRUEです。
値引きをする場合は商品代金の20%引きです。「1-値引率」です。
値引きをしない場合はそのままの金額です。つまり、元の値段を参照するだけです。
これを踏まえてIF関数の式を考えます。
10000円以上であることを判定して、TRUEであれば値引き、FALSEであればそのままです。
このように、TRUEやFALSEの代わりに、セル参照や計算式に置き換えることができます。
その結果、1つのセルで2種類の計算をすることができるようになります。
論理式を入力します。10000円以上です。
次に、値引きの式を入力します。値引きをしない場合はそのまま参照します。
これで完成です。
(2)利用料金
問題
ある娯楽施設では9時から18時まで営業しており、入場から退出までの利用時間に応じて利用料金を支払うことになっている。利用時間が3時間未満の場合、利用料金は1分につき12円であるが、3時間以上の場合は利用時間にかかわらず一律2100円としている。
セルB4の利用時間から利用料金を求めなさい。
解説
利用料金は、利用時間が3時間未満か、そうでないかによって求め方が異なります。
つまり、3時間未満であることを判定して、TRUEの場合とFALSEの場合に分けて計算することになります。
まず、論理式を考えます。3時間未満であることを判定します。
この場合はTRUEです。3時間未満であれば1分当たりの料金に利用時間を掛けます。
そうでなければ2100円を参照するだけです。
これを踏まえてIF関数の式を考えます。
3時間未満であることを判定して、TRUEであれば掛け算、FALSEであれば一律料金です。
論理式を入力します。3時間未満です。次に、掛け算の式を入力します。3時間以上の場合は2100円です。
4.数式が長くならないように工夫する
問題
さきほどの問題で、次のように入場時刻と退出時刻を入力した場合はどうか。
解説
利用時間の代わりに、入場時間と退出時間を入力した場合は、利用時間を求める必要があります。
時間を60倍して分を足します。退出時刻から入場時刻を引きます。
これを使ってさきほどのIF関数の利用時間の部分を変えたらよいのですが、数式がものすごく長くなります。
IF関数の式が長くなるとどこが区切りなのかもわかりにくくなります。
このように数式が長くなり、しかも共通部分がある場合は、この部分を別のセルに求めておくのが正しいです(参考:【Excel】難しい数式を考えるヒマがあったら作業用の列を挿入しなさい)。
利用時間を別の場所に求めておきます。
論理式を入力します。
3時間未満です。
次に、掛け算の式を入力します。3時間以上の場合は2100円です。
これで完成です。
解説は以上です。
5.動画版はこちら(無料)
この記事は、わえなび実力養成講座「ファンダメンタルExcel13」Program 13-8、13-9 のYoutube動画を書き起こして、加筆修正したものです。
- ファンダメンタルExcel 13-8 四則演算のある論理式【わえなび】(ファンダメンタルExcel Program13 IF関数の基本)
- ファンダメンタルExcel 13-9 セル参照や演算結果を返す【わえなび】(ファンダメンタルExcel Program13 IF関数の基本)