【初心者向け】AND・OR・NOT関数で論理演算を完全マスター

エクセル

はじめに

Excelで「複数の条件を組み合わせて判定したい」と思ったことはありませんか?

たとえば、こんな場面です。

  • 「点数が60点以上 かつ 出席率が80%以上なら合格」
  • 「役職が部長 または 課長なら管理職手当を支給」
  • 「在庫切れ ではない 商品だけ表示したい」

こうした 「かつ」「または」「ではない」 をExcelで表現するのが、今回ご紹介する AND関数・OR関数・NOT関数 です。

この3つは「論理演算」と呼ばれる仲間で、IF関数とセットで使うと真価を発揮します。難しそうに聞こえますが、実は仕組みはとてもシンプル。ひとつずつ見ていきましょう。


そもそも「論理演算」とは?

論理演算とは、ひとことで言うと 「TRUE(真)」と「FALSE(偽)」だけを扱う計算 のことです。

Excelの世界では、条件式の結果は必ずこの2つのどちらかになります。

条件式結果
=10>5TRUE
=10<5FALSE
=A1="りんご"A1が「りんご」ならTRUE、それ以外ならFALSE

このTRUE/FALSEを 組み合わせたり反転させたり するのが、AND・OR・NOT関数の役割です。

💡 ポイント:TRUE/FALSEは画面では「TRUE」「FALSE」と表示されますが、内部では TRUE=1、FALSE=0 として扱われます。これを知っておくと応用が効きます。


AND関数 ― 「すべての条件を満たす」を判定する

AND関数の役割

AND関数は 「指定したすべての条件がTRUEのときだけTRUEを返す」 関数です。日本語の「かつ」にあたります。

基本の書き方

=AND(論理式1, 論理式2, ...)
引数意味
論理式TRUE/FALSEになる条件式(最大255個まで指定可)

例1:点数が60点以上「かつ」80点以下を判定

A列(点数)
1行目75

excel

=AND(A1>=60, A1<=80)
→ 結果:TRUE

A1の値「75」は 60以上 かつ 80以下 の両方を満たすので、TRUEになります。

例2:1つでも条件を満たさないとFALSE

excel

=AND(A1>=60, A1<=70)
→ 結果:FALSE

A1の値「75」は60以上はクリアしていますが、70以下を満たしていないので FALSE になります。

AND関数の真理値表

論理式1論理式2AND結果
TRUETRUETRUE
TRUEFALSEFALSE
FALSETRUEFALSE
FALSEFALSEFALSE

全部TRUEのときだけTRUE ― これがAND関数の合言葉です。


OR関数 ― 「どれか1つでも満たす」を判定する

OR関数の役割

OR関数は 「指定した条件のうち、どれか1つでもTRUEならTRUEを返す」 関数です。日本語の「または」にあたります。

基本の書き方

=OR(論理式1, 論理式2, ...)

例1:役職が「部長」または「課長」かを判定

A列(役職)
1行目課長

excel

=OR(A1="部長", A1="課長")
→ 結果:TRUE

A1は「課長」なので、2つ目の条件を満たし TRUE になります。

例2:どちらの条件も満たさないとFALSE

A列(役職)
1行目主任

excel

=OR(A1="部長", A1="課長")
→ 結果:FALSE

A1は「主任」で、どちらの条件も満たさないので FALSE です。

OR関数の真理値表

論理式1論理式2OR結果
TRUETRUETRUE
TRUEFALSETRUE
FALSETRUETRUE
FALSEFALSEFALSE

全部FALSEのときだけFALSE ― 逆に言うと、1つでもTRUEがあればTRUEになります。


NOT関数 ― 結果を「反転」させる

NOT関数の役割

NOT関数は 「TRUEをFALSEに、FALSEをTRUEに反転させる」 関数です。日本語の「〜ではない」にあたります。

基本の書き方

=NOT(論理式)

引数は 1つだけ です(ANDやORと違って複数指定できません)。

例1:在庫が0ではないかを判定

A列(在庫数)
1行目0

excel

=NOT(A1=0)
→ 結果:FALSE

A1=0は「TRUE」ですが、NOTで反転されて FALSE になります。 つまり「在庫が0ではない」という条件には当てはまらない、という意味です。

例2:在庫がある商品を判定

A列(在庫数)
1行目5

excel

=NOT(A1=0)
→ 結果:TRUE

A1=0は「FALSE」ですが、NOTで反転されて TRUE になります。 「在庫が0ではない=在庫がある」と判定できました。

NOT関数の真理値表

論理式NOT結果
TRUEFALSE
FALSETRUE

シンプルに 反対の値を返す だけです。


IF関数と組み合わせて実務で使う

AND・OR・NOT関数は、単独で使うとTRUE/FALSEを返すだけです。実務では IF関数の中に組み込んで 使うことがほとんどです。

例1:AND × IF ― 合格判定

「点数が60点以上 かつ 出席率が80%以上なら『合格』、それ以外なら『不合格』」

A列(点数)B列(出席率)
1行目7590%

excel

=IF(AND(A1>=60, B1>=0.8), "合格", "不合格")
→ 結果:合格

例2:OR × IF ― 管理職判定

「役職が『部長』 または 『課長』なら『管理職』、それ以外なら『一般』」

A列(役職)
1行目部長

excel

=IF(OR(A1="部長", A1="課長"), "管理職", "一般")
→ 結果:管理職

例3:NOT × IF ― 在庫なしを除外

「在庫が0 ではない なら『販売中』、0なら『在庫切れ』」

A列(在庫数)
1行目0

excel

=IF(NOT(A1=0), "販売中", "在庫切れ")
→ 結果:在庫切れ

例4:AND + OR の組み合わせ技

「(点数が60点以上 かつ 出席率80%以上) または 補習を受講した人を『合格』にする」

A列(点数)B列(出席率)C列(補習受講)
1行目5070%受講

excel

=IF(OR(AND(A1>=60, B1>=0.8), C1="受講"), "合格", "不合格")
→ 結果:合格

ANDとORを入れ子(ネスト)にすることで、複雑な条件も表現できます。


早見表 ― 3つの関数の使い分け

関数日本語条件使う場面
AND〜かつ〜すべて満たす全部の条件をクリアさせたい
OR〜または〜どれか1つ満たすいずれかを満たせばOKにしたい
NOT〜ではない反転させる「除外」「逆」を表現したい

つまずきやすいポイント

ポイント①:条件式は必ず「TRUE/FALSE」になる形で書く

❌ 間違い:

excel

=AND(A1, B1)

A1やB1の中身が数字や文字の場合、これでは正しく判定できません(0以外の数値はTRUE扱いになるので意図しない動作になることも)。

⭕ 正解:

excel

=AND(A1>=60, B1>=80)

「○○ >= ××」「○○ = ××」のように、比較式の形で書く のが基本です。

ポイント②:カンマで区切ることを忘れない

ANDやOR関数は、引数(論理式)を カンマ(,) で区切ります。

❌ 間違い:=AND(A1>=60 B1>=80) (スペース区切り) ⭕ 正解:=AND(A1>=60, B1>=80)

ポイント③:文字列は「”(ダブルクォーテーション)」で囲む

文字列を比較するときは、必ずダブルクォーテーションで囲みます。

❌ 間違い:=OR(A1=部長, A1=課長) ⭕ 正解:=OR(A1="部長", A1="課長")

ポイント④:NOTの引数は「1つだけ」

NOT関数だけは、引数を1つしか指定できません。複数の条件を反転させたいときは、ANDやORの結果をNOTで囲みます。

excel

=NOT(AND(A1>=60, B1>=80))

↑「60点以上 かつ 80点以上 ではない」という意味になります。

ポイント⑤:「ド・モルガンの法則」を覚えておくと便利

数学っぽい話で恐縮ですが、論理演算には便利な変換ルールがあります。

  • NOT(AND(条件1, 条件2)) = OR(NOT(条件1), NOT(条件2))
  • NOT(OR(条件1, 条件2)) = AND(NOT(条件1), NOT(条件2))

つまり、NOTを内側に入れるとANDとORがひっくり返る ということ。数式が複雑になりすぎたとき、シンプルな形に書き直すヒントになります。


まとめ

関数役割覚え方
ANDすべての条件が真ならTRUE「全部○なら○」
ORどれか1つでも真ならTRUE「1つでも○なら○」
NOT真偽を反転「○を×に、×を○に」

AND・OR・NOTは、単独で使うとTRUE/FALSEを返すだけのシンプルな関数です。でも IF関数と組み合わせることで、実務で本当に必要な「複雑な条件判定」を一気に表現できる ようになります。

最初は「3つもあって覚えにくい…」と感じるかもしれませんが、日本語の「かつ・または・〜ではない」に置き換えて考えれば、意外とすんなり身につきます。ぜひ手元のExcelで、実際に手を動かしながら試してみてください。


💼 経理マンの一言

経理の現場では、AND・OR・NOT関数を 「条件付きチェック」「異常値検知」「区分判定」 の3つの場面で本当に頻繁に使います。

私が新人の頃、上司から「経理は『条件分岐の連続』だぞ」と言われたのを今でも覚えています。たとえば、こんな場面です。

  • 取引先の与信チェック:取引金額が100万円超 かつ 与信枠を超える先は「要承認」と表示
  • 経費精算のエラー検出:領収書日付が当月 ではない または 上司承認 ではない ものを「差戻し」
  • インボイス対応の判定:適格請求書 かつ 税率10% かつ 課税仕入の場合のみ仕入税額控除可

特に インボイス制度導入後 は、複数条件の組み合わせ判定が爆発的に増えました。「適格請求書発行事業者かどうか」「税率が複数混在していないか」「免税事業者からの仕入で経過措置の対象かどうか」など、判定ロジックがどんどん複雑になっています。これらをAND・OR・NOTを使わずに書こうとすると、IF関数を何重にもネストすることになって、もう誰にも読めない数式になってしまいます。

私の実務でのコツを3つお伝えします。

①「日本語に翻訳しながら書く」 複雑な条件式を書くときは、まず日本語で「Aかつ(BまたはC)である場合」と書き出してから、それをそのままExcelの式に翻訳します。これだけでミスがぐっと減ります。

②「ANDとORは色分けでメモ」 私の手元の数式メモには、ANDは青、ORは赤でマーキングしています。あとから見返したときに、論理構造が一目で分かります。

③「テスト用のデータで必ず動作確認」 本番データに適用する前に、「全条件TRUE」「全条件FALSE」「境界値(60点ちょうど、など)」の3パターンで必ず動作確認します。特に 「>=」と「>」、「<=」と「<」の取り違え は、決算で大事故を起こす定番ミスです。

経理という仕事は、毎月・毎四半期・毎年と同じ作業を繰り返す部分が多いですが、その中で 「判定ロジックを正確に組み立てる力」 が成果を大きく左右します。AND・OR・NOTは地味な関数ですが、経理マンにとっては 「正確性を担保する命綱」 のような存在です。ぜひマスターして、ミスのない経理業務を実現していきましょう!

コメント

タイトルとURLをコピーしました