IF関数は単独で使うこともありますが、他の関数と組み合わせて使うこともあります。組み合わせる方法としては主に次の3つのパターンがあります。
- TRUEまたはFALSEを求める論理式の中で他の関数を用いる
- 真の場合、偽の場合で他の関数を用いる
- IF関数の結果を他の関数の引数として利用する
IF関数と他の関数を組み合わせると数式が長くなる傾向があり、初心者にとっては解読するのが難しくなります。まずは、基本的な関数とIF関数を組み合わせる練習をして、IF関数の数式を直接入力、挿入、修正することに慣れることから始めたほうがよいです。
そこで、今回は、SUM、COUNT、ROUNDとIF関数を組み合わせて使う練習問題を出題します。
目次
- 1.SUM、COUNT、ROUNDの復習
- 2.条件を満たす場合だけ合計SUMを求める
- 3.合計SUMを条件とする
- 4.個数COUNTAを条件とする
- 5.ROUNDのなかにIFを入れる
- 6.動画版はこちら(無料)
1.SUM、COUNT、ROUNDの復習
この記事でIF関数と組み合わせる関数は、SUM、COUNTA、ROUND、ROUNDUPです。これらの関数の基本的な使い方については既に別の記事で解説しています。詳しくはこちらの記事をご覧ください。
- 【Excel】合計はオートSUMボタンを押すだけ~!で済めば苦労はしない
- Excel関数が苦手なら、関数名の変更と戻り値を最初に練習すべきである
- 【Excel】ROUND関数と表示形式の違い、数式の検証で計算が合わない原因を見つける練習
- 【Excel関数】ROUNDUPとROUNDDOWN、切り上げ、切り捨て、四捨五入の練習問題
2.条件を満たす場合だけ合計SUMを求める
問題
セル範囲E2:E11のうち、氏名が入力されている行に限り、3科目の合計を求めなさい。

解説
3科目の合計を求めます。

オートフィルをすると入力されていない行は0になります。

計算の対象となるデータを入力する前に、計算式を入れておくことがあります。そして、入力されていない行は0ではなく、空白にすることがあります。

入力されていない行について、計算を避けるには空白であれば空白にするIF関数を挿入します(参考:【Excel】空白セルの判定をして、IF関数で「空白文字列」を返す方法と注意点)。最後のカッコを忘れないように注意します。

IF関数を挿入します。このとき、先頭であるセルE2の式を修正します。

氏名が空白であれば空白にします。


これで完成です。

3.合計SUMを条件とする
問題
3科目の合計が450点以上であればTRUEと表示しなさい。また、450点以上であれば合格、それ以外は不合格と表示しなさい。

解説
「合計が450点以上ならば合格」は、合計を求めること、450点以上であることを判定すること、合格・不合格を表示することの3つに分けて考えます。

3科目の合計を求めます。

この合計が450点以上かどうかを判定すると、450点以上がTRUE、それ以外がFALSEとなります。


これをIF関数で合格、不合格に変えます。

これで完成です。

4.個数COUNTAを条件とする
問題
第1回から第5回まで空白が無い(すべて○が付いている)場合は、修了と表示しなさい。

解説
すべて入力されている、すべて空白、のように「すべて」を判定するには個数を数えます。

「すべて○が付いていれば修了」は、○を数えること、個数が5であることを判定すること、修了を表示することの3つに分けて考えます。

COUNTA関数で文字が入力されているセルの数を数えます。

すべて○であれば5、そうでなければ4以下になります。

「=5」で判定すると、すべて○の場合はTRUE、それ以外はFALSEとなります。

これをIF関数で修了と空白文字列に変えます。


これで完成です。

5.ROUNDのなかにIFを入れる
(1)切り上げる数値をIFで求める
問題
B列に○を付けているものを15%引き、それ以外は5%引きした金額を求めなさい。ただし、小数点以下の端数を切り上げるものとする。

解説
○が付いていることを判定して、ついていれば85%の切り上げ、ついていなければ95%の切り上げとなります。

B列に○が付いていることを判定します。

○がついていれば、切り上げで85%を掛けて桁数0、そうでなければ切り上げで95%を掛けて桁数0とします。


これで完成です。

別解
しかし、TRUEとFALSEで異なる部分はパーセンテージだけです。

そこで、先にパーセンテージを求めます。IF関数を挿入します。

○がついていれば85%、そうでなければ95%です。

A列の数値を掛けます(参考:【Excel】IF関数の共通部分を外に出す、ある条件のときだけ計算を追加する)。

さらに、切り上げをします。桁数は0です。

これで完成です。

同じ計算を2回書くと数式が長くなります。IF関数の中にROUND関数を入れるのではなく、ROUND関数のなかにIF関数を入れると数式が短くなることがあります。

(2)ROUNDの桁数をIFで求める
問題
A列の数値が100万以上であれば100万未満、それ以外は1000未満を四捨五入しなさい。

解説
A列が100万以上であることを判定して、100万以上であれば桁数を-6にして四捨五入、そうでなければ桁数を-3にして四捨五入をします(参考:【Excel】ROUND関数の桁数は「小数点の位置」を0として考えると分かりやすい)。

A列が100万以上であることを判定します。

100万以上であれば四捨五入で桁数を-6、そうでなければ四捨五入で桁数を-3とします。


これで完成です。

別解
TRUEとFALSEで異なる部分は桁数だけです。

そこで、桁数を求めます。IF関数を挿入します。

100万以上であれば-6、そうでなければ-3です。


ROUND関数で四捨五入をします。

これで完成です。

解説は以上です。
6.動画版はこちら(無料)
この記事は、わえなび実力養成講座「ファンダメンタルExcel13」Program 13-16 のYoutube動画を書き起こして、加筆修正したものです。
