3/25/2014

Excel。どっちかの条件が合致した場合。IF関数だけじゃ面倒です。IF+OR関数


Excel。どっちかの条件が合致した場合。
IF関数だけじゃ面倒です。

IF+OR関数


Excelのネスト。関数の入れ子。関数の組み合わせの中でも、
初心者の方が、難しいとおっしゃるものの一つに、このIF+OR関数があります。
仕事でつかえるExcel講座でも、おなじみの内容を今回は紹介してみましょう。

OR関数は、AとBという条件のどちらか一方を満たしていればOKと判定する関数です。

下記の表があります。

やりたいことは、I列の判定に、
「前期中間と前期期末のどちらか一方が80点以上ならば優秀。そうでなければ空白」
という判定をしたいわけです。

そこで、あえてというか、OR関数を知らない場合、
IF関数だけを使って、求めたらどうなるのかを、やってみましょう。

I5をクリックして、まずは、IF関数のダイアログボックスを表示しましょう。

まずは、
論理式は、G5>=80
真の場合には、すでに条件を満たしましたので、”優秀”と入力します。
偽の場合は、もう一方が満たしているかどうかを判断しますので、
IF関数を再び挿入していきます。
IFのネストをしていきます。

名前ボックスの▼をクリックして、IF関数を選択しましょう。

そうすると、IFの中のIF関数ダイアログボックスが表示されてきます。

論理式は、H5>=80。
真の場合は、”優秀”
偽の場合は、””
ですね。
これでOKボタンをクリックして、完成ですね。

IF+IFのネストでも、算出は出来ますが、ちょっとイメージしてみましょう。
2つの条件ではなくて、これが4つ5つとなったとしたら、
それだけIF関数を使用した煩雑なネスト構造をもつ、数式が出来上がってしまいます。

確かに、算出されますので、かまわないといえば、かまわないのですが、
さらに条件が増えるという場合。
そして、ネスト構造は、Excel2003までのバージョンでは、6階層しかできません。

それに、数式自体も、たった2つの条件だけなのに、
=IF(G5>=80,"優秀",IF(H5>=80,"優秀",""))
と、ひと目には、分かりにくい構造になっています。
これでは、修正が発生した場合は大変ですね。

そこで、今回のテーマであります。IF関数とOR関数のコンビを使ってみましょう。
このOR関数は単独で使用することは、まず無いと考えられます。というのも、
TUREかFALSEを返す。
つまり、その条件が成立するか?しないか?ということだけを判定する関数なのです。

OR関数を使ったことが無い方も多くいらっしゃいますので、
講座の際には、一度使い方もかねて、まずはOR関数だけで作ってみたいと思います。

では、先ほど、算出したI列のデータは削除しておきましょう。
そして、I5をクリックして、OR関数のダイアログボックスを表示させましょう。

論理式のボックスに、条件を入力していくことになりますので、
論理式1には、G5>=80。
論理式2には、H5>=80。
という様に入力していくわけです。それでは、OKボタンをクリックしてみましょう。

算出した結果は、合致しないので、FALSEと表示されました。
これでは、なんだかわからないので、
IF関数と組み合わせて、分かりやすいようにするわけです。

それでは、やっと本題である、IF+OR関数を作成していくことにしましょう。
では、先ほど、算出したI列のデータは削除しておきましょう。

I5をクリックして、IF関数のダイアログボックスを表示させましょう。

では、早速、論理式を、と展開していくところなのですが、
ココにノウハウがありまして、論理式を作り始める。
すなわち、OR関数を入れていくわけなのですが、
そうすると、このダイアログボックスの真の場合と偽の場合が空欄のまま、進んでしまい、
OR関数のダイアログボックスのOKをクリックしてしまうと、
真と偽の場合が空欄のままため、エラーが出てしまいます。

IF関数のダイアログボックスに、戻ってくることを忘れてしまう危険性を下げたいわけですね。

そこで、今回は、先に、真の場合が”優秀”。偽の場合は””。と入力しておきましょう。
こうしておけば、OR関数のOKボタンをクリックしても、エラーを防止することができます。

では、論理式のボックスをクリックしてOR関数のダイアログボックスを表示しましょう。

OR関数は、名前ボックスの▼をクリックしてその一覧の中にあればクリックしましょう。

なんで、ネストにすると、論理式4が飛び出しちゃうんだか??
論理式には、それぞれ、先ほどもやりましたように、
論理式1には、G5>=80。
論理式2には、H5>=80。
と入力をして、OKボタンをクリックすると完成します。

条件数が増えれば増えるほど、IF関数だけでは煩雑になるので、
OR関数の有効性を確認することが出来ますね。

機会があれば是非、使ってみましょう。