人事・総務・経理の仕事では、「条件Aと条件Bを両方満たす人だけを抽出したい」「条件Aか条件Bのどちらかを満たせばOKにしたい」といった、複数の条件を組み合わせた判定をする場面が数多くあります。条件が1つだけならIF関数だけで十分ですが、条件が2つ以上になった途端に「IFだけでどう書けばいいのか分からない」と手が止まる方は少なくありません。ここで登場するのがAND関数とOR関数です。この記事では、AND・ORの基本的な使い方から、IFと組み合わせずに使うと起きる「TRUE/FALSEしか出ない」問題、ANDとORを取り違えて起きる判定ミス、実務での具体的な使用例までをまとめて解説します。
AND・OR関数の基本とIFとの組み合わせ方
AND関数とOR関数は、どちらも複数の条件をまとめて1つの論理値(TRUE/FALSE)に変換する関数です。AND関数はすべての条件を満たしたときだけTRUEを返し、OR関数はいずれか1つでも条件を満たせばTRUEを返します。
=OR(条件1, 条件2, ...)
例:勤続年数(A1)が3以上、かつ年齢(B1)が20以上の場合にTRUEを返す
=AND(A1>=3,B1>=20)
ここで重要なのは、AND関数・OR関数はあくまで判定結果をTRUE/FALSEとして返すだけで、「対象」「対象外」のような任意の文字列を表示する機能は持っていないという点です。実務で使う数式のほとんどは、AND・ORをIF関数の条件式部分(第1引数)に組み込む形で使います。
ANDとORの違いを整理する
AND(かつ)
- すべての条件を満たす場合のみTRUE
- 1つでも満たさない条件があればFALSE
- 対象者を厳しく絞り込む判定に向く
OR(または)
- いずれか1つの条件を満たせばTRUE
- 全部の条件を満たさない場合のみFALSE
- 該当者を広く拾う判定に向く
組み合わせ
- AND関数の中にOR関数を入れ子にできる
- 例:部署が営業、かつ役職が課長または部長
- カッコの範囲を意識して書く
AND関数とOR関数は組み合わせて使うこともできます。たとえば「部署が営業部で、かつ役職が課長または部長」という条件は、=AND(C1="営業部",OR(D1="課長",D1="部長"))のように、OR関数をAND関数の中に入れ子にして書きます。
実務でのよくある使用シーン
総務担当者であれば、福利厚生制度の対象者を抽出する場面でAND関数がよく使われます。たとえば「勤続年数が3年以上、かつ年齢が20歳以上」という2つの条件を両方満たす社員だけを対象にしたい場合、=IF(AND(勤続年数>=3,年齢>=20),"対象","対象外")のように書けば、条件を1つでも満たさない社員は自動的に「対象外」と判定されます。名簿を1人ずつ目で見比べる必要がなくなり、数百人規模でもミスなく抽出できます。経理担当者であれば、稟議や支払いの承認フローで「上長Aまたは上長Bのどちらかが承認済みであれば次の処理に進める」という判定にOR関数を使います。=IF(OR(上長A承認欄="承認",上長B承認欄="承認"),"処理可","未承認")と書いておけば、どちらか一方が承認した時点で自動的に処理可能なステータスに切り替わり、承認待ちの案件を目視で追いかける手間が減ります。営業事務担当者であれば、受注案件のうち「見積金額が100万円以上、または特定の大口顧客からの注文」を上長確認案件として自動的にフラグ立てするような場面でOR関数を使うこともあります。
AND・ORでよくあるエラー・トラブルと対処法
AND関数・OR関数をIFに組み込まず、セルに直接AND・ORだけを入力すると、セルには「対象」でも「対象外」でもなく、TRUEまたはFALSEという論理値がそのまま表示されます。「思っていた表示にならない」と戸惑う初心者が非常に多いポイントです。
対処法は、AND・ORを単体で使うのではなく、必ずIF関数の条件式部分に組み込むことです。=IF(AND(A1>=3,B1>=20),"対象","対象外")のように書き換えれば、任意の文字列を表示できます。
「複数の条件を同時に満たす人だけを抽出したい」つもりでOR関数を使ってしまい、実際にはどれか1つ満たすだけで対象になってしまうミスがよく起こります。
対処法として、数式を書く前に「かつ(すべて満たす)」なのか「または(1つでもよい)」なのかを日本語で確認してから、それぞれAND・ORに置き換える習慣をつけましょう。数式を作った後は、条件のどちらか一方だけを満たすテストデータで検算すると取り違えに気づきやすくなります。
AND・ORの引数に5個、6個と比較式を詰め込むと、1つの数式が横に長くなり、どの条件でFALSEになっているのかをぱっと見で判断できなくなります。
対処法として、各条件をあらかじめ別々のセルに分けてTRUE/FALSEを計算しておき、AND・ORの引数にはそのセル参照だけを並べる方法がおすすめです。どの条件がFALSEになっているかをセル単位で一目で確認でき、修正すべき箇所をすぐに特定できます。
初心者がつまずきやすいポイントとコツ
- AND・ORは単体で使わず、IFに組み込む。TRUE/FALSEのまま利用したい特別な場合を除き、必ずIF関数とセットで使うと覚えておきましょう。
- 「かつ」はAND、「または」はORと日本語で対応づける。条件を書く前に日本語で整理してから数式に落とし込むと、取り違えによる判定ミスを減らせます。
- 条件が多いときは補助列に分けて計算する。1つの数式に条件を詰め込みすぎず、判定用の列を作っておくと、後から原因調査がしやすくなります。
- カッコの対応に注意する。AND・ORを入れ子にする場合、閉じカッコの数が合っているか数式バーで確認しましょう。
まとめ
AND関数は複数の条件をすべて満たすかどうか、OR関数はいずれか1つでも満たすかどうかを判定する関数で、どちらもIF関数と組み合わせて初めて実務で使える数式になります。「かつ」はAND、「または」はORという対応関係を意識し、条件が増えてきたら補助列に分けて可読性を保つことが、判定ミスを防ぐ一番の近道です。数式を一から組み立てるのが不安な方は、下のツールで日本語の空欄を埋めるだけで数式を作成できます。