「スプレッドシートで条件のどれか1つでも当てはまるか判定したい」「部署が”営業”か”企画”のどちらかなら対象にしたい」。こんな場面、仕事でよくありますよね。
IF関数だけで複数パターンを判定しようとすると、ネストが深くなって数式が読みにくくなります。
そんなときに使うのが、スプレッドシートのOR関数です。この記事では構文と基本の使い方から、IF関数との組み合わせまで丁寧に解説します。AND関数との違いやエラーの対処法もまとめていますよ。
スプレッドシートのOR関数とは?
OR関数(読み方: オア関数)は、指定した条件のうち1つ以上がTRUEかどうかを判定する関数です。「OR」は英語の「〜または〜」に由来しています。日本語では「論理和」とも呼ばれます。
たとえば「欠席 または 遅刻」のどちらかに該当するかチェックする場面を考えてみましょう。どちらか1つでも当てはまればTRUEを返してくれます。
OR関数でできることをまとめると、次のとおりです。
- 複数の条件のうち1つでも当てはまるか判定する
- IF関数と組み合わせて「または」の条件分岐を作る
- 最大255個の条件を同時にチェックする
OR関数単体はTRUE / FALSEを返すだけです。実務ではIF関数と組み合わせて使うことがほとんどですよ。
NOTE
OR関数はGoogleスプレッドシートの全バージョンで使えます。Excelとの互換性も完全なので、ファイルのやり取りでも安心です。
スプレッドシートのOR関数の書き方(構文と引数)
基本構文
=OR(論理式1, [論理式2], ...)
カッコの中に、判定したい条件を1つ以上指定します。条件はカンマで区切って追加できます。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 論理式1 | 必須 | 判定したい条件(例: A2=”営業”) |
| 論理式2以降 | 任意 | 追加の条件。最大255個まで指定できる |
引数は1つだけでも動きますが、複数条件をまとめて判定してこそ真価を発揮します。
TIP
論理式にはセル参照と比較演算子を組み合わせます。テキストを比較するときはダブルクォーテーションで囲んでください。例:
A1="完了"
TRUE/FALSEの判定ルール
OR関数の結果は、1つでもTRUEがあればTRUEです。すべてFALSEのときだけFALSEになります。
| 条件1 | 条件2 | OR関数の結果 |
|---|---|---|
| TRUE | TRUE | TRUE |
| TRUE | FALSE | TRUE |
| FALSE | TRUE | TRUE |
| FALSE | FALSE | FALSE |
「1つでもOK → TRUE、全部NG → FALSE」と覚えておけば大丈夫ですよ。
AND関数とは正反対です。AND関数は「すべてTRUE → TRUE」ですが、OR関数は「1つでもTRUE → TRUE」になります。
OR関数の基本的な使い方
ここからは実際の数式で基本的な使い方を確認していきましょう。
どれか1つの条件を満たすか判定する
A列に部署名が入っているとします。「営業」か「企画」のどちらかに該当するかを判定してみましょう。
=OR(A2="営業", A2="企画")
- A2=”営業”: 部署が営業か
- A2=”企画”: 部署が企画か
A2が「営業」なら結果はTRUEです。「経理」ならFALSEになります。
3つ以上の条件にも対応する
OR関数は条件をカンマで追加するだけです。「営業」「企画」「広報」のいずれかに該当するかを判定してみましょう。
=OR(A2="営業", A2="企画", A2="広報")
条件が増えても書き方は同じです。ただし条件が5つを超えると数式が長くなります。そのときは対象リストを別の範囲に持たせてCOUNTIF関数で判定する方法も検討してみてください。
数値と文字列を組み合わせた条件
数値の比較と文字列の比較を混ぜることもできます。「金額が100万円以上 または ステータスが”緊急”」を判定する例です。
=OR(B2>=1000000, C2="緊急")
金額が高額なら無条件で対象にし、そうでなくても「緊急」なら対象にする、という使い方ですね。
IF関数×OR関数の実践テクニック
OR関数の実務での本領発揮は、IF関数との組み合わせです。OR単体のTRUE/FALSEではなく、条件に応じた文字列や数値を返せるようになります。
IF+ORで「いずれか満たす」条件分岐
IF関数の第1引数にOR関数を入れるのが基本形です。
=IF(OR(条件1, 条件2), TRUE値, FALSE値)
どれか1つでも条件を満たしたら「TRUE値」を返します。すべて満たさなければ「FALSE値」になります。
実務パターン1: 勤怠区分の判定
「遅刻 または 早退」のどちらかに該当したら「要確認」と表示する例です。B列に出勤時刻、C列に退勤時刻が入っています。
=IF(OR(B2>TIME(9,0,0), C2<TIME(17,30,0)), "要確認", "通常")
9時を過ぎて出勤したか、17時30分より前に退勤したかで判定します。どちらか一方でも当てはまれば「要確認」です。勤怠チェックの手間がぐっと減りますよ。
実務パターン2: 優先対応の振り分け
「カテゴリが”クレーム” または 対応期限が今日以前」なら「優先」と表示する例です。
=IF(OR(A2="クレーム", B2<=TODAY()), "優先", "通常")
クレーム案件は常に優先対応、それ以外でも期限切れなら優先にする、というロジックです。対応漏れの防止に役立ちますよ。
実務パターン3: OR+ANDの複合条件
OR関数とAND関数を組み合わせると、より複雑な条件を表現できます。「(売上100万以上 かつ 新規顧客) または VIP顧客」を判定する例です。
=IF(OR(AND(B2>=1000000, C2="新規"), D2="VIP"), "特別対応", "通常")
ANDで「売上100万以上かつ新規」を判定し、ORで「またはVIP」と組み合わせています。括弧の入れ子が深くなるので、数式を分割して別セルに書くのもおすすめです。
TIP
条件分岐を3段階以上に分けたい場合は、IFS関数も検討してみてください。OR関数と組み合わせれば「いずれか満たす」条件を複数パターンで判定できます。
よくあるエラーと対処法
OR関数で「結果がおかしい」「エラーが出る」というときの原因と対処法をまとめます。
エラー一覧と対処法
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数に文字列を直接指定した(例: =OR("はい", TRUE)) | 比較演算子を使う(例: =OR(A1="はい")) |
| 常にTRUEになる | 条件式の書き方が間違っている(例: =OR(A1="東京", "大阪")) | 各条件を独立した論理式にする(例: =OR(A1="東京", A1="大阪")) |
| 常にFALSEになる | セルが空白でFALSEとして扱われている | IF関数で空白チェックを先に行う |
| 予想と逆の結果 | 比較演算子の間違い(>= と > の取り違え) | 境界値を含むかどうか確認する |
| #ERROR! | 括弧の閉じ忘れ・カンマの過不足 | 数式バーで括弧の対応を確認する |
| 数値が0のときFALSE | 0はFALSEとして扱われる仕様 | 0を有効値にしたい場合は A1>=0 のように比較式にする |
空白セルに注意する
OR関数に空白セルが含まれると、その引数はFALSEとして扱われます。すべての引数が空白なら結果はFALSEです。
=IF(AND(A2<>"", B2<>""), OR(A2="対象", B2>=100), "未入力")
事前に空白チェックを入れておくと、意図しない結果を防げますよ。
条件式の書き方でよくある間違い
最も多い間違いが「1つのセルに対する複数値チェック」です。
× =OR(A1="東京", "大阪")
○ =OR(A1="東京", A1="大阪")
2つ目の条件にもセル参照と比較演算子が必要です。「”大阪”」だけだと文字列がそのまま評価されてしまいます。Googleスプレッドシートでは文字列はTRUEとして扱われるため、常にTRUEになってしまいますよ。
OR関数とAND関数の違い・使い分け
比較表で違いを確認
スプレッドシートの論理関数には、OR以外にもよく使う関数があります。違いを表で整理しましょう。
| 関数 | 判定ルール | 使いどころ |
|---|---|---|
| OR | 1つ以上TRUE → TRUE | 「または」の条件判定 |
| AND | すべてTRUE → TRUE | 「かつ」の条件判定 |
| NOT | TRUE⇔FALSEを反転 | 条件の否定 |
OR関数は「どれか1つでも当てはまる?」、AND関数は「全部当てはまる?」と考えるとわかりやすいです。
どの関数を使うか判断する
迷ったときは次の基準で選んでみてください。
- どれか1つ満たせばOK → OR関数
- すべての条件を満たす必要がある → AND関数
- 条件をひっくり返したい → NOT関数(TRUE/FALSEを反転する関数)
実務で使用頻度が高いのはOR関数とAND関数です。まずはこの2つを押さえておけば十分ですよ。
AND+ORを組み合わせた高度な条件分岐
AND関数とOR関数は入れ子にできます。「(部署が”営業” または “企画”) かつ 売上が100万円以上」を判定する例です。
=IF(AND(OR(A2="営業", A2="企画"), B2>=1000000), "対象", "対象外")
ORで「営業 または 企画」を判定し、ANDで「売上100万円以上」と組み合わせています。入れ子が深くなるときは、別セルに中間結果を出す方法も試してみてください。
まとめ
OR関数は、複数の条件のうちどれか1つでも当てはまるかを判定する論理関数です。
- 1つでもTRUEならTRUE、すべてFALSEならFALSE
- IF関数と組み合わせて「または」の条件分岐を作るのが定番
- 空白セルはFALSEとして扱われるので注意
- 「かつ」の判定にはAND関数を使う
まずはIF関数×OR関数の組み合わせから試してみてください。勤怠チェックや優先対応の振り分けなど、実務ですぐに使える場面がたくさんありますよ。
複数条件でデータを集計したい場合は、SUMIFS関数も合わせてチェックしてみてください。
