Excel OR関数の使い方を完全解説!複数条件のいずれかを満たす判定を簡単に
Excel OR関数の使い方を完全解説!複数条件のいずれかを満たす判定を簡単に
複数の条件のうち、いずれか一つでも満たせばTRUEを返すOR関数。柔軟な条件判定を可能にする重要な論理関数です。
Contents
1. OR関数とは?基本的な概念を理解しよう
OR関数は、指定した条件のうち一つでも真(TRUE)であればTRUEを返し、すべての条件が偽(FALSE)の場合のみFALSEを返す論理関数です。日常生活でいえば「AまたはB」という条件を表現する際に使用します。
基本構文:
=OR(論理式1, 論理式2, 論理式3, ...)
=OR(論理式1, 論理式2, 論理式3, ...)
真理値表:
条件A | 条件B | OR(A,B) |
---|---|---|
TRUE | TRUE | TRUE |
TRUE | FALSE | TRUE |
FALSE | TRUE | TRUE |
FALSE | FALSE | FALSE |
ポイント:OR関数は最大255個の条件を指定でき、条件のうち一つでも満たされればTRUEを返します。すべての条件が満たされない場合のみFALSEになります。
2. 基本的な使い方と具体例
学生の進級判定を例にOR関数の基本的な使い方を見てみましょう。数学または英語のいずれかで80点以上を取った学生を「合格」と判定する場合を考えます。
A列 | B列 | C列 | D列 | E列 |
---|---|---|---|---|
氏名 | 数学 | 英語 | いずれか80点以上? | 判定 |
田中 | 85 | 70 | =OR(B2>=80,C2>=80) | TRUE |
佐藤 | 75 | 88 | =OR(B3>=80,C3>=80) | TRUE |
鈴木 | 72 | 78 | =OR(B4>=80,C4>=80) | FALSE |
数式の解説:
- B2>=80 → 数学が80点以上かチェック
- C2>=80 → 英語が80点以上かチェック
- いずれかの条件を満たす場合TRUEを返す
3. AND関数との違いと使い分けのポイント
OR関数とAND関数の違いを明確に理解することで、適切な場面で使い分けができるようになります。
AND関数 vs OR関数の比較:
項目 | AND関数 | OR関数 |
---|---|---|
条件 | すべての条件を満たす | いずれかの条件を満たす |
日本語表現 | 「かつ」「および」 | 「または」「もしくは」 |
TRUE になる場合 | 全条件が TRUE | 1つ以上が TRUE |
FALSE になる場合 | 1つでも FALSE | 全条件が FALSE |
実例での比較:
AND関数:=AND(B2>=80,C2>=80) → 数学AND英語が80点以上
OR関数:=OR(B2>=80,C2>=80) → 数学OR英語が80点以上
AND関数:=AND(B2>=80,C2>=80) → 数学AND英語が80点以上
OR関数:=OR(B2>=80,C2>=80) → 数学OR英語が80点以上
使い分けの基準:
- 厳格な条件:すべてクリアが必要 → AND関数
- 柔軟な条件:いずれかクリアで良い → OR関数
- 資格要件:複数の必須条件 → AND関数
- 割引適用:複数の適用条件 → OR関数
4. 実務でよく使われる応用例
顧客への特別割引適用判定を例に、OR関数の実践的な使い方を見てみましょう。VIP会員、年間購入額100万円以上、または紹介顧客のいずれかに該当する場合に特別割引を適用する場合を考えます。
A列 | B列 | C列 | D列 | E列 |
---|---|---|---|---|
顧客名 | VIP会員 | 年間購入額 | 紹介顧客 | 特別割引 |
山田 | はい | 800,000 | いいえ | =IF(OR(B2="はい",C2>=1000000,D2="はい"),"適用","対象外") |
高橋 | いいえ | 1,200,000 | いいえ | 適用 |
伊藤 | いいえ | 600,000 | はい | 適用 |
佐々木 | いいえ | 500,000 | いいえ | 対象外 |
割引適用条件(いずれか一つでも該当すれば適用):
- VIP会員である
- 年間購入額が100万円以上
- 紹介顧客である
5. 複雑な条件の組み合わせと高度な活用法
OR関数は他の論理関数と組み合わせることで、より複雑な条件判定が可能になります。従業員の有給取得資格判定を例に見てみましょう。
A列 | B列 | C列 | D列 | E列 |
---|---|---|---|---|
従業員名 | 勤続年数 | 出勤率(%) | 役職 | 有給取得資格 |
田中 | 0.8 | 85 | 一般 | =IF(OR(AND(B2>=1,C2>=80),D2="管理職"),"あり","なし") |
佐藤 | 2.5 | 92 | 一般 | あり |
鈴木 | 0.5 | 95 | 管理職 | あり |
複合条件の構造:
=IF(OR(AND(勤続1年以上,出勤率80%以上),役職="管理職"),"あり","なし")
=IF(OR(AND(勤続1年以上,出勤率80%以上),役職="管理職"),"あり","なし")
判定ロジック:
- 通常ルート:勤続1年以上 かつ 出勤率80%以上
- 特別ルート:管理職(勤続年数・出勤率不問)
- いずれかの条件を満たせば有給取得資格あり
6. よくあるエラーと実践的なトラブルシューティング
OR関数を使用する際の注意点と、実務でよく遭遇するトラブルの解決方法を説明します。
主な注意点:
- 文字列の大文字小文字:「はい」と「ハイ」は区別される
- スペースの有無:「東京 」と「東京」は異なる値として判定
- 数値の表示形式:セルの書式設定による表示と実際の値の違い
- 空白セルの扱い:空白は0として評価される
実践的なエラー対策と解決法:
問題 | 原因 | 解決方法 |
---|---|---|
文字列判定が正しく動作しない | 大文字小文字やスペースの違い | =OR(UPPER(TRIM(A1))="YES",B1>100) |
数値範囲の判定が期待通りでない | 論理演算子の組み合わせミス | =OR(A1<10,A1>90)(10未満または90超) |
空白セルで意図しない結果 | 空白が0として評価される | =OR(AND(A1<>"",A1>0),B1="特別") |
堅牢な数式の書き方例:
=IF(OR(AND(ISNUMBER(B2),B2>=80),AND(ISNUMBER(C2),C2>=80)),"合格","不合格")
=IF(OR(AND(ISNUMBER(B2),B2>=80),AND(ISNUMBER(C2),C2>=80)),"合格","不合格")
デバッグの手順:
- 条件を個別にテスト:各条件が正しく動作するか確認
- データ型をチェック:数値、文字列、日付の形式を統一
- 空白・スペースを除去:TRIM関数で不要なスペースを削除
- 段階的に構築:簡単な条件から徐々に複雑にする
まとめ:OR関数は「いずれかの条件を満たす」柔軟な判定を可能にする重要な論理関数です。顧客分類、資格判定、品質管理など、複数の選択肢から一つでも該当すれば良い場面で威力を発揮します。AND関数との使い分けを理解し、他の関数と組み合わせることで、実務に即した高度な判定システムを構築できます。データの前処理とエラー対策を心がけることで、信頼性の高い数式を作成しましょう。