IF関数は様々な処理分岐が行える便利な関数ですが、複数の条件が絡んだ論理式を一度に判定したいとなると、IF単体ではなかなか難しいものがあります。
そこで助けとなるのが「AND(アンド)関数」と「OR(オア)関数」です。これら1つ1つは実に単純な数式なのですが、IFと組み合わさることで、IFが苦手としている複数条件の判定を補う働きをしてくれます。
※解説画像はMicrosoft365のExcelを使用しています
AND関数
AND関数は、指定した引数のすべてがTRUE(一致)であった場合は「TRUE」を返し、引数のうち1つでもFALSE(不一致)があった場合は「FALSE」を返します。
関数のカテゴリは「論理」に属し、引数はこちらのようになります。
=AND(論理式1,論理式2,・・・)
引数には判定したい式を1つずつ入れていきます。引数ダイアログボックスでは最初は論理式2までのボックスしか開いていませんが、論理式2にカーソルを移動すると3、3に移動すると4と増えていきます。最大255個まで指定できます。
では、例題を使ってAND関数の働きを見てみましょう。
こちらはテストの点数表を模したもので、現在Word/Excel/PowerPointそれぞれの点数が入力されています。ここで各行とも、3つの科目すべてで70点以上という条件を設け、AND関数で一致か不一致かを判定してみます。AND関数はF列に入力します。
セルF3にカーソルを置き、[数式]タブ⇒「論理」⇒「AND」を順にクリックします。
AND関数の引数ダイアログボックスで、
- 論理式1には『Wordの点数(C3)が70点以上』
⇒ C3>=70 - 論理式2には『Excelの点数(D3)が70点以上』
⇒ D3>=70 - 論理式3には『PowerPointの点数(E3)が70点以上』
⇒ E3>=70
とそれぞれ入力し、入れ終わったらEnterで数式を確定します。
セルF3に「=AND(C3>=70,D3>=70,E3>=70)」という数式が入力されたら、フィルハンドルをドラッグして、残りの行に数式をコピーします。
こちらが判定結果です。各行とも、どこかに69点以下の点数が紛れていた場合は結果が「FALSE」になっていますね。
AND関数だけの結果ですと「TRUE」か「FALSE」としか表示されずあまり実用的とは言えないので、IF関数と組み合わせ、TRUEとFALSEに意味合いを与えてみましょう。
IF関数の引数は =IF(論理式,値が真の場合,値が偽の場合) ですが、この「論理式」の部分に先ほどのAND関数の式を組み込むと、AND関数の結果が「TRUE」であれば「値が真の場合」、「FALSE」であれば「値が偽の場合」に指定した値が表示されます。
この仕組みを利用した例として、論理式には先ほどのAND関数を入れ、値が真の場合は「合格」、値が偽の場合は「不合格」としてみると・・・
このように、『全部の科目で70点以上取った人は合格、そうでなければ不合格』といった合否判定を表示することができます。
・IF関数の基本は
【Excel】「もし〇〇だったらどうする?」IF関数を使ってみよう
・関数パレットでの入れ子の数式の作り方は
【Excel】関数パレットを使って関数の入れ子を作る
・等式や不等式の入れ方は
【Excel】関数や条件付き書式で使える等号・不等号
を参考にしてください。
OR関数
OR関数は、指定した引数のうちのいずれかがTRUE(一致)であった場合は「TRUE」を返し、引数のすべてがFALSE(不一致)であった場合は「FALSE」を返します。
ANDが「これかつこれ」であるなら、ORは「これもしくはこれ」という事ですね。
・・・余談ですがANDとORって、今の子供たちは幾つ位で習うんでしょうね。私のような昭和人間は「This is a pen」を中学校でようやく習い始めたレベルだもんで、結構な大人になってもたまに「AND」と「OR」の違いがよくわからなくなる事があったけなぁ(^^;)
ま、それは置いといて。
OR関数もカテゴリは「論理」に属し、引数はこのようになります。
=OR(論理式1,論理式2,・・・)
引数の置き方はANDと同じで、こちらも判定したい式を1つずつ論理式に入れてゆけば良い、という事ですね。
では、ちょっと例題を変えてOR関数の働きを見てみましょう。
こちらの表のC列にある「配送先住所1」が「東京都」もしくは「神奈川県」のどちらかであればTRUEとなるようにしてみます。数式はE列に入力します。
セルE3にカーソルを置き、[数式]タブ⇒「論理」⇒「OR」を順にクリックします。
OR関数の引数ダイアログボックスで、
- 論理式1には『配送先(C3)が東京都である』
⇒ C3=”東京都” - 論理式2には『配送先(C3)が神奈川県である』
⇒ C3=”神奈川県”
とそれぞれ入力します。、入れ終わったらEnterで数式を確定します。
セルE3に「=OR(C3=”東京都”,C3=”神奈川県”)」という数式が入力されたら、他の行はフィルハンドルをドラッグして数式をコピーします。結果、東京都もしくは神奈川県の行は「TRUE」、どちらにも当てはまらない時は「FALSE」になっていますね。
で、こちらもIF関数の論理式に組み込み、『配送先が東京都か神奈川県であれば「対象」、そうでない場合はブランク(空白)』と表示させるようにしてみると・・・
『配送先が東京都か神奈川県であれば即配便の対象である』というフラグを立てることができます。
今回事例でお見せしたAND、OR関数の使い方はほんの一例です。論理式の組み方や、IFと合わせてどのような値を表示するかなどアイディアは無限大ですので、色々な表で試してみてください。
※「IF」「AND」「OR」いずれも論理式で*や?のワイルドカードは使用できません。別回「IF関数の条件式でワイルドカード(あいまい検索)を使いたい」でも書いていますが、ワイルドカードを使用したい時は対応している関数(COUNTIF 等)と組み合わせる必要があります。