IF関数で振り分ける
IF関数も使用頻度が高い関数です。
実は出来ることはさほど多く無いのですが、以外に使う場面が多いのではないでしょうか。
IF関数の引数は=IF(論理式,値が真の場合,値が偽の場合)となっています。「何を言っているのかさっぱり」という方の為に分かり易く解説します。
まず、どんな場面で使うのか例を見て下さい。
K列に合計金額を基にランク表示を作成してみました。
IFは日本語で”もし”です。
日本語で考えるとIF関数も分かり易くなると思います。もしJ4の値が1000以上だったら“A”を表示する違ったら“B”を表示する。
これだけのことなのです。
ここからがIF関数の真骨頂 IF関数のネスティングという使い方です。
簡単にいうとIF関数を重ねて使うということで複雑な振り分けをしたい時によく使う方法です。
=IF(式1,真1,IF(式2,真2,IF(式3,真3,偽)))「こんな式どんな時に使うの?」実際は頻繁に使います。
IF関数一つでは2種類にしか振り分けられません。
でも実務では何種類かに振り分けるケースが多いはずです。
そんな時にはIF関数をネスティングすることで解決します。
例えば、数学が40点以下なら”C”、60点以下は”B” 80点以下なら”A“、それ以外なら”S“という様にランク付けしたい場合などに使います。
IF関数をネスティングした時は一番左の論理式から順に評価します。
上の式では0点~40点なら”C“、それ以外なら次の式を評価していき、当てはまったところのランクを表示するためC2セルには”A”が表示されます。
IF関数を使う時の注意点としては『真と偽で評価対象の全てをカバーする』ということです。もしカバー出来ていない値が発生するとエラーになってしまいます。
IF関数の論理式は難しいものでは無く極端に言えば「何でもあり」です。
こんなのも =IF(SUM(B2:B9)>1000,100,0)要するに比較演算子=,<,>の左側が右側と比較した時に当てはまるのか当てはまらないのかで振り分けてセルに何かを表示するだけなのです。
IFS関数でシンプルに振り分ける
「いちいちIF関数を重ねるのは面倒!」という方、最近のエクセルで搭載されたIFS関数を使って同じ
結果を表示することが出来ます。
IF関数を使うよりかなりシンプルな式で同じ結果が表示できました。
IFS関数では =IFS(論理式1,真の場合1,論理式2,真の場合2…)という様に論理式と真の場合が必ずセットになる様に記述していきます。
IF関数よりシンプルですが”偽の場合”が無いため評価する対象に抜けが発生しない様に注意が必要です。
よくあるミスが大小判定で<40…<60…<80…>80)の様な記述では80だった時にはエラーとなってしまいます。
<80は”80より小さい”ですから79以下、同様に>80は”80より大きい”なので81以上となるためどちらの場合も80を含まないので、行き場を失いエラー表示をすることになります。
比較演算子で論理式を記述する時には分かり易い様に『<=』以下や『>=』以上を使った方が良いかもしれません。
大小比較演算子で以上以下と、より大より小を理解して使い分けることが大切です。
IFERROR関数でエラー表示を回避
IF関数の進化系では無いかもしれませんが、IFが付くのでここで紹介します…ちょっと無理やりですが。
このIFERROR関数が使える様になる前はエラー表示を回避する場合ISERROR関数を使っていましたが、非常に複雑な式になるため中には#N/Aなどのエラーをそのまま表示してしまう残念な表を幾つも見ました。
どうしてもISERROR関数を使わなければならない場面も出てきますので、いずれ覚えておくことをお勧めします。
このIFERROR関数の使い方はとても単純です。
=IFERROR(値,エラーの場合の値)これだけ。
”値”には数値でも計算式でもセル番地でも可で、エラーの場合の”値”にも同じく数値や計算式、何なら空白でも可なのです。
商品の単価を求めるよくある計算ですが上の表の様に0除算の部分が必ずエラーになってしまいます。
そこでIFERROR関数を使って計算がエラーになった時はエラーではなく0を表示させる様にしたのが下表の計算式です。
私は作表でエラーが予想される場合にはよくIFERROR関数を使います。
特にVLOOKUP関数ではエラーが発生する可能性が高いため必ずといって良いほど使います。
エラーの場合に特定の値を表示させるだけではなく別の計算式を”エラーの場合の値”部分に記述する
ことでエラー表示を避ける方法もあります。
エラー表示を放置してしまうとエラーがエラーを呼び表そのものが完成しません。出来れば最初からIFERROR関数でエラーを回避しましよう。
IF関数、IFS関数のまとめ
振り分けの仕方は日本語で考えてみると分かり易い。
IF関数をネスティングする時とIFS関数を使うときは評価対象に抜けが発生しないように注意する。
そしてIFERROR関数で表のエラーは無くす。
IF関数の応用編
IF関数を使う時に論理式が1つでは判定しきれないことがあります。
例えば複数の項目を判定に入れたい時には論理式に応用が必要になります。
そこで使えるのが『AND関数』や『OR関数』です。
引数はどちらも=AND(論理式1,論理式2…)という様にカッコ内に『論理式』をカンマで区切って記述します。
単独で使用することも出来ますが、殆どの場合はIF関数などの他の関数と組み合わせて使います。
ANDやORを単独で使った場合結果は『TRUE』か『FALSE』が返ってきます。
上の表は数学と国語それぞれの点数でランクをつけ総合で両方の点数によってAとSランクを設定しています。
AND関数の場合は引数として設定した論理式全てを満たしている場合『真』となり一つでも満たさない場合は『偽』となります。
逆にOR関数は引数の論理式の内どれか一つでも満たしていれば『真』全てに当てはまらない場合『偽』となります。
分かり易く表現するとANDは『〇〇かつ△△』 ORは『〇〇もしくは△△』ということです。
サンプルの表で言えば「数学が80点以上かつ国語が80点以上ならS」「どちらも70点以上ならA」「それ以外は空白」としています。
ANDやORと同様にNOT関数というものもありますが混乱しやすいので実務では殆ど使わないでしょう。