エクセルで実用性が高く使用頻度の高い関数の1つにIF関数があります。これを使いこなせるようになれば、エクセルでできることが大きく広がるでしょう。ここでは合わせて使用すると便利なAND関数、OR関数、NOT関数も紹介します。

ExcelのIF関数の基本をマスターするイメージ画像
ExcelのIF関数の基本をマスターするイメージ画像
チャレンジ&ナレッジ最終更新日: 20180404

エクセル IF関数の基本をマスターする

  • このエントリーをはてなブックマークに追加

エクセルで実用性が高く使用頻度の高い関数の1つにIF関数があります。これを使いこなせるようになれば、エクセルでできることが大きく広がるでしょう。ここでは合わせて使用すると便利なAND関数、OR関数、NOT関数も紹介します。新社会人はもちろんのこと、就活中の方にも知っておくと便利な知識なので、ぜひ活用してください。

IF関数:条件によって処理を変える

条件式の基本、IF関数

IF関数は単純に言うと、「もしセルAの値がXであれば対象セルに対してaの処理を行い、セルAの値がXでなければ対象セルに対してbの処理を行う」というように、条件により処理を分岐するための関数です。実際の書式は次のとおりです。

=IF(論理式,真の場合,偽の場合)

論理式では「=」や「>」、「<」など各種計算・演算式が使用できます。数値の比較だけでなく文字列や日付の比較、また他の関数の結果を論理式とすることができます。

処理の分岐は、論理式の結果が真(正しい)か偽(正しくない) かにより分岐します。これだけだと分岐は2つだけですが、IF関数の中にさらにIF関数を入れ子にすることができますので、やり方次第では多数の分岐が可能になります。しかし、入れ子は深くなると視認性が悪くなりわかりにくくなりますのでお勧めしません(こうしたケースのために、エクセル 2016以降ではIFの複数系であるIFS関数が用意されています)。

IF関数の例として、試験の点数を評価する例を作ってみました。次の画面のように、B列に点数が入っている場合に、点数が50点以上はC列に「合格」、点数がそれ未満はC列に「不合格」と表示させるとします。

B列の点数を判定してC列に結果を表示するB列の点数を判定してC列に結果を表示する

この場合、C2に

=IF(B2>=50,"合格","不合格")

と入力します。これをC3からC9までコピーした結果が次の画面です。

点数を判定した結果点数を判定した結果

IF関数の中にIF関数をいれる

これは一番簡単なIF関数の例ですが、もう少し複雑な場合を見てみましょう。

点数が75点以上を「A」、50~74点を「B」、25~49点を「C」、24点以下を「D」と表示する場合は、C2に

=IF(B2>=50,IF(B2>=75,“A”,”B”),IF(B2>=25,”C”,”D”))

と入力します。これは「B2>=50」という演算の結果を真、偽それぞれ別のIF関数で判定するという入れ子になっています。これをC3からC9までコピーした結果が次の画面です。

4段階での評価結果4段階での評価結果

真、偽それぞれを入れ子にしなければならないという決まりはありませんので、真だけ、あるいは偽だけを入れ子にすることもできます。例えば

=IF(B2>=25,IF(B2>=75,“A”,IF(B2>=50,”B”,”C”)),”D”)

と入力しても同じ結果が得られます。

「=IF(B2>=25,IF(B2>=75,“A”,IF(B2>=50,”B”,”C”)),”D”)」の結果「=IF(B2>=25,IF(B2>=75,“A”,IF(B2>=50,”B”,”C”)),”D”)」の結果

複数の条件をシンプルに記述できるIFS関数

いずれにしても入れ子はわかりにくいですね。これをIFS関数で記述すると

=IFS(B2>=75,”A”,B2>=50,”B”,B2>=25,"C",B2<25,"D")

という具合にすっきり書けます。IFS関数の書式は次のとおりです。

=IFS(論理式1,真の場合,論理式2,真の場合,論理式3,真の場合,・・・)

IFS関数を使った画面IFS関数を使った画面

IF関数の関連関数としては、範囲内を検索して条件に一致するセルだけを合計するSUMIF関数や複数条件を指定できるSUMIFS関数、範囲内で検索条件に一致するセルの個数を数えるCOUNTIF関数や複数条件を指定できるCOUNTIFS関数、範囲内で検索条件に一致するセルの平均値を求めるAVERAGEIF関数や複数条件を指定できるAVERAGEIFS関数などがあります。

また、論理式の結果がエラーになった場合に指定した値を返し、それ以外の場合は論理式の結果を返すIFERROR関数、論理式の結果が#N/Aエラーの場合に指定した値を返し、それ以外の場合は論理式の結果を返すIFNA関数があります。IFERROR関数とIFNA関数については後で解説します。

AND関数、OR関数、NOT関数をIF関数と一緒に使う

これまで説明したIF関数の例では、条件1つに対して1つの結果を返す例でしたが、複数の条件が重なった時に結果を返すようにすることもできます。このために使われる関数がAND関数、OR関数、NOT関数です。これらをIF関数と一緒に使うことで複雑な条件での分岐が可能になります。

AND関数

AND関数の書式は以下の形を取ります。

=AND(論理式1,論理式2,論理式3, ,・・・)

結果はすべての論理式が正しい場合に真となり、それ以外は偽となります。次の画面の例を見てください。目標達成度のセルには

=IF(AND(D2>=N$2,F2>=N$3,H2>=N$4,J2>=N$5),"達成", "")

という関数が入っています。これは販売員ごとに、商品とその売り上げ数を右側のセル(N2~N5)にある1日の売り上げ目標の数と比較して、目標を上回っているかどうかを判定し、すべての商品の売り上げが上回っている場合に、「達成」と表示するものです。

AND関数の例AND関数の例

同じことを、AND関数を使わずにIF関数だけで次のように記述することもできます。

=IF(D2>=N$2,IF(F2>=N$3,IF(H2>=N$4,IF(J2>=N$5,"達成",""),""),""),"")

これは入れ子が4重になり非常にわかりにくいですね。AND関数の威力がわかります。

OR関数

OR関数の書式は以下のような形を取ります。

=OR(論理式1,論理式2,論理式3, ,・・・)

結果は論理式のどれかが正しい場合に真となり、すべてが正しくない場合に偽となります。上記の例で、どれか1つだけでも目標を達成した販売員には「もう少し」と表示することにします。上記の関数を次のように書き換えます。

=IF(AND(D2>=N$2,F2>=N$3,H2>=N$4,J2>=N$5),"達成", IF(OR(D2>=N$2,F2>=N$3,H2>=N$4,J2>=N$5),"もう少し",""))

OR関数の例OR関数の例

NOT関数

NOT関数の書式は以下のような形を取ります。

=NOT(論理式)

結果は論理式が正しければ偽となり、正しくなければ真となります。つまり、論理式の真偽を逆転する場合に使います。上記の関数を次のように書き換えることもできます。

=IF(AND(D2>=N$2,F2>=N$3,H2>=N$4,J2>=N$5),"達成", IF(NOT(OR(D2>=N$2,F2>=N$3,H2>=N$4,J2>=N$5)),"","もう少し"))

少し複雑なので詳しく解説します。もう一度基本に振り返りますが、IF関数は黄色の部分が正しければ(真)、赤色の部分となり、正しくなければ(偽)、水色の部分となります。下線部で記したOR(D2>=N$2,F2>=N$3,H2>=N$4,J2>=N$5の部分の真偽については、エクセルの2行目を見ての通り、この販売員は販売目標を1つ以上達成しているので、黄色の部分は正しくなる(真)はずですが、NOT関数をつけることで「偽」に逆転しています。そのため、水色の部分の“もう少し”が表示されるという仕組みです。

NOT関数の例NOT関数の例

IF関数は、このほかにもさまざまな関数と組み合わせることで、高度で便利な式をつくることができます。新社会人の方には知っておくととても便利な知識になります。ここでは基本的な使い方を紹介してみましたが、ぜひ使いながらいろいろ試してみてください。

パソコン工房 NEXMAG[ネクスマグ]編集部アイコン画像
ライタープロフィール パソコン工房NEXMAG[ネクスマグ]編集部

パソコンでできるこんなことやあんなこと、便利な使い方など、様々なパソコン活用方法が「わかる!」「みつかる!」記事を書いています。

記事を
シェア