Table of Contents
IF関数の概要
今回はIF関数を使った複数条件設定について解説します。
IF関数では1つ以上の条件を満たしているかどうかをチェックして、真(TRUE)の場合の値と偽(FALSE)の場合の値を返します。
構文
=IF(論理式,真の場合, 偽の場合)
引数
引数 | 説明 |
---|---|
論理式 | 判断基準となる数式を指定します |
真の場合 | 真(TRUE)の場合に返す値を指定します |
偽の場合 | 偽(FALSE)の場合の値を返します |
部分一致でIF関数にワイルドカードを使う場合の注意点:COUNTIF関数との組合せ
IF関数で部分一致の論理式を組む際に、ワイルドカード※を使用することがあるかもしれません。
ここで重要な注意点として、IF関数だけではワイルドカードが使えません。
※ワイルドカード(「*(アスタリスク)」や「?(疑問符)」)を使って条件を指定すると、部分的に等しい文字列を検索することができます。
ワイルドカード | 意味 | 検索文字列 | 検索結果 |
---|---|---|---|
? | 任意の1字 | ?田 | 「田」の前に任意の1文字がつく 例) 柳田 山田 |
* | 任意の文字列 (0文字以上) | *原 | 「原」で終わる文字列を検索 例) 清原 小笠原 原 |
IF関数だけではワイルドカードが使えないという問題に対する解決策が、COUNTIF関数をIF関数に組み合わせる方法になります。
本記事では詳しく解説しませんが、以下を参考にしてください。
【Excel】IF関数を使って部分一致の文字列について条件設定条件分岐の複数設定
ExcelのIF関数を使い、以下の例のように点数に応じた判定をつけてみます。
関数は以下のように
「点数が>=90なら”S”と判定し、
(そうでない場合)点数が>=80なら”A”と判定し、
(そうでない場合) 点数が>=70なら”B”と判定し、
(そうでない場合) 点数が>=60なら”C”と判定し、
(そうでない場合) 点数が>=50なら”D”と判定し、
(そうでない場合) 点数が<50なら”E”と判定する」
というような作り方をします。
TRUE or FALSEを判定させる順番も重要になります。
実際の関数は以下の様になります。
=IF(C3>=90,”S”,IF(C3>=80,”A”,IF(C3>=70,”B”,IF(C3>=60,”C”,IF(C3>=50,”D”,IF(C3<50,”E”)))))) |
この式をセルD3に入力してセルC3の点数を判定させます。
セルC3が70点と入力された田中さんは「B」と判定されました。
先程のIF関数は複数条件で括弧が多いのでIF関数を使用すると、末尾に括弧をいくつつけたらいいのか混乱してしまいそうになります。
整理をすると以下のようになります。
=IF(C3>=90,”S”, IF(C3>=80,”A”, IF(C3>=70,”B”, IF(C3>=60,”C”, IF(C3>=50,”D”, IF(C3<50,”E”) ) ) ) ) ) |
ちょっとしたコツですが、Excelでは上のように見やすい改行した形で関数を入力しても正確に結果を返してくれます。
ただし、数式を改行するとデフォルトの数式バーでは表示しきれなくなりますので数式バーで確認する際は、以下のように数式バーを引き伸ばす必要があります。
繰り返しになりますが、以下のように数式を見やすく改行しても結果に影響を与えることはなく、正確な判定結果を返すことができます。
複数条件を設定する際に、IF関数では関数の中に関数を入れ子にする関数のネストをしなければならなかったのですが、IFS関数ではこれを回避することができます。
ただし複数条件を正確な順序で入力する必要があるという点はIF関数と共通です。
IFS関数を用いた場合、以下のような構文になります。
=IFS(論理式1,真の場合1, [論理式2,真の場合2], [論理式3,真の場合3], [論理式4,・・・) =IFS(C3>=90,”S”,C3>=80,”A”,C3>=70,”B”,C3>=60,”C”,C3>=50,”D”,C3<50,”E”) |
先程の構文の例で説明をすると 論理式1が真かどうかを判断した後で、偽なら論理式2が真かどうかを判断して、 論理式2が偽なら、その後で論理式3が真かどうかを判断するといった具合で、論理式1、2、3・・・の順で判断がされます。
論理式が真にたどり着いた時点で、真の値が返されることになります。
IFS関数はIF関数とは異なりFALSE条件を設定できず、TRUE条件が見つからない場合、 #N/Aエラーを返します。
IFS関数については以下の記事を参考にしてください。
【Excel】IFS関数:IF関数の関数ネストを回避して複数条件設定AND条件:IF関数にAND関数を組み合わせて「AかつB」の条件設定
ExcelのIF関数を使い、以下の例のように点数に応じた判定をつけてみます。
結果のイメージは以下になります。
セルE3の田中さんの判定を処理する関数を入力します。
以下の式は田中さんの試験結果について、セルC3の英語の点数が60点以上かどうか、さらにセルD3の数学の点数が50以上かどうかを判断し、結果によって「合格」「数学補講」「英語補講」「英数補講」を表示させます。
=IF(AND(C3>=60,D3>=50),”合格”,IF(AND(C3>=60,D3<50),”数学補講”,IF(AND(C3<60,D3>=50),”英語補講”,IF(AND(C3<60,D3<50),”英数補講”)))) |
関数ネストをすると、式が複雑に見えますので改行すると以下のような構文になります。
=IF(AND(C3>=60,D3>=50),”合格”, IF(AND(C3>=60,D3<50),”数学補講”, IF(AND(C3<60,D3>=50),”英語補講”, IF(AND(C3<60,D3<50),”英数補講”) ) ) ) |
田中さんは英語が50点以上で数学も50点以上でしたので、「合格」と判定させることができました。
比較演算子の使い方
比較演算子の使い方をまとめておくと以下のようになります。
「以上」や「以下」のように等号付き不等号の入力は注意が必要になります。
不等号(「<」か「>」)を入力した後に等号(「=」)を入力する順番になりますので、間違えて「=<」や「=>」と入力することのないようにしましょう。
比較演算子 | 使用例 | 意味 |
---|---|---|
= | A=B | AとBが等しい |
< | A<B | AはBより小さい(AはB未満) |
> | A>B | AはBより大きい |
<= | A<=B | AはBより以下 |
>= | A>=B | AはB以上 |
<> | A<>B | AばBより等しくない |
OR条件:IF関数にOR関数を組み合わせて「AまたはB」の条件設定
IF関数はAND関数だけではなく、OR関数とも組み合わせる事ができます。
以下の例では、英語の点数が60点未満、もしくは数学の点数が50点未満の人は「補講」と判定し、いずれにも該当しない人は「合格」と判定させています。
英語の点数が60点未満で数学の点数も50点未満の人は「補講」 と表示されます。
以下の式は田中さんの試験結果について、セルC3の英語の点数が60点未満かどうか、さらにセルD3の数学の点数が50点未満かどうかを判断し、どちらか一方にでも該当すれば「補講」と表示し、何れにも該当しない場合は「合格」と表示させる式になっています。
=IF(OR(C3<60,D3<50),”補講”,”合格”) |
田中さんはセルC3の英語の点数は60点以上ですし、セルD3の数学の点数も50点以上なので「合格」と表示されます。
NOT条件:IF関数に NOT関数とOR関数を組み合わせて「AまたはBに該当しない」の条件設定
IF関数にNOT関数を組み合わせ、さらにNOT関数にOR関数を組み合わせる事で「AまたはBに該当しない」という条件を作り出すことができます。
以下の例では、英語の点数がブランクもしくは、数学の点数がブランクに該当しない人は「出席」と判定し、そうではない人は「欠席あり」と判定させています。
英語の点数も数学の点数もブランクの人は「欠席あり」 と表示されます。
以下の式は田中さんの試験結果について、セルC3の英語の点数がブランクかどうか、さらにセルD3の数学の点数がブランクかどうかを判断し、どちらか一方でもブランクという条件に該当しなければ「出席」と表示し、 どちらか一方にでも該当すれば 「欠席あり」と表示させる式になっています。
関数の引数に文字列を使用する場合はダブルクォーテーション「”」で文字列を囲んで入力する必要があります。
ダブルクォーテーション「”」の間に文字列を入力せず 「””」と入力した場合、何も入力されていないブランクの状態を意味します。
=IF(NOT(OR(C3=””,D3=””)),”出席”,”欠席あり”) |
田中さんはセルC3の英語の点数がブランクですので、「欠席あり」と表示されます。
NOT条件:IF関数に AND関数とNOT関数を組み合わせて「AにもBにもに該当しない」の条件設定
IF関数にAND関数を組み合わせ、さらにAND関数にNOT関数を組み合わせる事で「AにもBにも該当しない」という条件を作り出すことができます。
一つ前の例の別解となりますが、英語の点数がブランクもしくは、数学の点数がブランクに該当しない人は「出席」と判定し、そうではない人は「欠席あり」と判定させています。
英語の点数も数学の点数もブランクの人は「欠席あり」 と表示されます。
以下の式は田中さんの試験結果について、セルC3の英語の点数がブランクでないかどうか、さらにセルD3の数学の点数がブランクでないかどうかを判断し、両方に該当すれば「出席」と表示し、 どちらか一方にでも該当しなければ 「欠席あり」と表示させる式になっています。
=IF(AND(NOT(C3=””),NOT(D3=””)),”出席”,”欠席あり”) |
田中さんはセルC3の英語の点数がブランクですので、「欠席あり」と表示されます。
AND関数にNOT関数を入れ込むのか、NOT関数にAND関数を入れ込むのか、OR関数にNOT関数を入れ込むのか、NOT関数にOR関数を入れ込むのか、構文を組む際に間違えないようにしましょう。
Excelを一度体系的に学ぶと、目に見えて生産性が飛躍的に向上します。
MOS Excel※は資格の取得、及び資格取得までのプロセスを通じて体系的にExcelスキルを身につけることができますのでコスパが良くおすすめです。
※Microsoft Office Specialist(MOS)ExcelはExcelの利用能力を証明する世界的な資格です。
筆者は「スペシャリスト(一般)」と「エキスパート(上級)」両方を取得して体系的にスキルを身に着けました。
MOS試験対策でどのテキストを使うべきか悩まれる方も多いのではないかと思いますが、以下がおすすめです。
今回の内容が参考になれば幸いです。