AND・OR関数の練習問題(全5問)

色のついたセルに数式を入力して Enter。範囲はドラッグでも選べます

0 / 5 問クリア
Q1

60点以上80点未満を判定する

C2 に、点数が60点以上かつ80点未満なら「良」、そうでなければ「他」と表示してください。

解説を見る

「60<=B2<80」と書くとエラーは出ませんが、どの点数でも「他」になります。Excel は左から2つずつ比べるため、まず 60<=B2 が TRUE か FALSE になり、次にその結果と 80 を比べます。Excel では論理値がどんな数値よりも大きいので、2段目は必ず FALSE です。「60以上」と「80未満」を別々の条件として AND に渡してください。

模範解答: =IF(AND(B2>=60,B2<80),"良","他")

AND関数はすべての条件を満たすか、OR関数はどれか一つでも満たすかを判定する関数です。IFと組み合わせて使います。

書き方
=AND(条件1, 条件2, ...)
=IF(AND(B2>=60,B2<80),"良","他")

条件を組み合わせる3つの関数

IF関数 は条件を1つしか書けません。「60点以上かつ80点未満」のように条件が増えたときに使うのが、この3つです。

関数 判定
AND すべて満たすか(かつ)
OR どれか一つでも満たすか(または)
NOT 判定をひっくり返す(〜でない)
=AND(B2>=60, B2<80)     → TRUE / FALSE

条件をカンマで並べるだけです。いくつでも書けます。

返ってくるのは TRUE か FALSE

AND や OR が返すのは TRUEFALSE という論理値です。そのままだと表に「TRUE」と出るだけなので、ふつうは IF の中に入れて使います

=IF(AND(B2>=60,B2<80), "良", "他")

IF の1つめ(条件)の場所に、AND ごと差し込む形です。この形が実務でいちばん多く出てきます

つまずきポイント1: 「60以上80未満」を一つの式で書かない

数学では 60 ≦ x < 80 と書けます。その感覚で次のように書く人がとても多いのですが、これは動くのに必ず間違った結果になります

=IF(60<=B2<80, "良", "他")     ← 間違い

エラーは出ません。どの点数を入れても「他」になります。

点数 60<=B2<80 と書いた場合 正しく書いた場合
45
60
75
79
80

理由は、Excel が左から順に2つずつ比べるためです。

  1. まず 60<=B2 を判定する → TRUEFALSE が出る
  2. 次に、その結果と 80 を比べる → TRUE<80

そして Excel では、論理値は どんな数値よりも大きいと決まっています。だから TRUE<80FALSE<80FALSE です。何点であっても2段目で FALSE になり、結果は常に「他」になります。

エラーにならないのが厄介です。式の見た目は自然なので、間違いに気づかないまま表が完成してしまいます。

正しくは AND を使って、条件を2つに分けて書きます

=IF(AND(B2>=60, B2<80), "良", "他")     ← 正しい

「60以上」と「80未満」は別々の条件である、と考えるのがコツです。

つまずきポイント2: AND と OR を取り違える

日本語の「かつ」「または」と対応させると分かりやすくなります。

書きたいこと 関数
営業部かつ60点以上 AND
営業部または開発部 OR
土曜または日曜 OR
在庫ありかつ未発送 AND

迷ったら、条件が厳しくなるほうが ANDと覚えてください。条件を足すたびに当てはまる件数が減るのが AND、増えるのが OR です。

NOT — 「〜でない」を書く

NOT は判定をひっくり返します。

=NOT(B2>=60)      → 60未満なら TRUE

ただし、この例は =B2<60 と書けば済みます。NOT が本当に必要なのは、ひっくり返す対象が長いときです。

=IF(NOT(OR(B2="退職",B2="休職")), "在籍", "対象外")

「退職でも休職でもない」を、OR をまとめて否定する形です。条件が増えても書き換えずに済みます。

組み合わせるときの注意

AND と OR は入れ子にできます。ただしどちらが外側かで意味が変わります。

=AND(A2="営業", OR(B2>=80, C2>=80))

これは「営業部かつ(国語か数学のどちらかが80点以上)」です。カッコの位置で条件のまとまりが決まるので、日本語に直して読み直すと間違いに気づけます。

条件が3つ以上に増えて読みにくくなったら、判定用の列を1つ作って段階的に書くほうが安全です。1つの式に詰め込むより、あとから直しやすくなります。

空白セルと文字はどう扱われるか

範囲をまとめて渡したとき、文字列と空白セルは判定から外れます

=AND(B2:B6)

B列に「欠席」のような文字が混ざっていても、エラーにはならず飛ばされます。数値は 0FALSE、それ以外が TRUE として扱われます。

なお、条件を1つも渡さないとエラーになります。

=AND()      → #VALUE!

関連する関数

関数 用途
IF 条件で表示を変える。AND・OR はこの中に入れて使う
IFS 条件を順に並べて判定する。IF の入れ子を減らせる
COUNTIFS 複数条件に合う件数を数える
SUMIFS 複数条件に合うものを合計する

数えたい・合計したいだけなら、AND は要りません。 COUNTIFS や SUMIFS は条件を並べるだけで「かつ」の意味になります。AND が必要なのは、1行ごとに判定して表示を変えたいときです。

次に進むには

条件が3つ4つと増えて IF の入れ子が深くなってきたら、IFS に切り替えると読みやすくなります。

また、判定した結果を集計したいなら COUNTIFS・SUMIFS のほうが近道です。「1行ずつ判定する」のか「まとめて数える」のかで、使う関数が分かれます。