3/22/2014

Excel。両方の条件が合致した場合。IF関数だけじゃ面倒です。IF+AND関数


Excel。両方の条件が合致した場合。
IF関数だけじゃ面倒です。

IF+AND関数


Excelのネスト。関数の入れ子。
関数の組み合わせの中でも、初心者の方が、難しいとおっしゃるものの一つに、

このIF+AND関数があります。

仕事でつかえるExcel講座でも、おなじみの内容を今回は紹介してみましょう。

AND関数は、AとBという条件をどちらも満たしているものを判定する関数です。

下記の表があります。

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

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

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

まずは、
論理式は、B5>=80
真の場合には、80以上なので、次のIF関数を挿入します。これは、後程。
偽の場合は、80以上でないので、空白を意味する””を入力します。
では、真の場合の作業に入りましょう。
IFのネストをしていきます。
名前ボックスの▼をクリックして、IF関数を選択しましょう。

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

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

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

確かに、算出されますので、かまわないといえば、かまわないのですが、
さらに条件が増えるという場合。
そして、ネスト構造は、Excel2003までのバージョンでは、6階層しかできません。
それに、数式自体も、たった2つの条件だけなのに、
=IF(B5>=80,IF(C5>=80,"優秀",""),"")
と、ひと目には、分かりにくい構造になっています。
これでは、修正が発生した場合は大変ですね。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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