MAKE DECISIONS OR Function in Excel and Google… Test multiple conditions and return TRUE when at least… Excel 2003+ Google Sheets Same syntax Microsoft Excel C2 =OR(logical1, [logical2], ...) A B C Rep Region Include 2 Alice North TRUE 3 Bob East FALSE 4 Carol South TRUE
Learning Hub Functions Make Decisions

OR Function in Excel and Google Sheets

Make Decisions 📊 Excel 2003+ ✓ Google Sheets Same syntax in both apps
Purpose
Test multiple conditions and return TRUE when at least one of them is true
Return value
TRUE if any argument evaluates to TRUE, FALSE only when all arguments are FALSE
OR is the counterpart to AND and it handles a fundamentally different kind of logic — not all requirements must be met but any one of these qualifies. I reach for OR whenever a decision can be triggered by multiple different conditions. Flag a ticket for escalation if it is marked Urgent OR has been open more than 30 days. Apply a discount if the customer is Premium OR the order total exceeds 500. Include a rep in a report if they cover North OR South. Every situation where meeting any single condition from a list is enough to trigger an outcome — that is OR's job. Like AND, OR almost always lives inside IF, where it replaces a long chain of nested IFs with a clean, flat condition. Once you understand AND and OR together you can handle almost any real-world logical requirement in a single formula without any helper columns.
Syntax
✓ Excel 2003+ ✓ Google Sheets = Same syntax
=OR(logical1, [logical2], ...)
Arguments
ArgumentRequiredDescription
logical1 Required The first condition to test. Any expression that evaluates to TRUE or FALSE — comparisons, logical functions, or cell references containing booleans.
logical2 ... Optional Additional conditions, up to 255 total. OR returns TRUE the moment it finds a TRUE argument and stops evaluating the rest. It only returns FALSE if every single argument is FALSE.
How it works
OR evaluates each argument in sequence and returns TRUE the moment it finds one that is TRUE — the remaining arguments are not evaluated after the first TRUE. It only returns FALSE when every argument evaluates to FALSE. Numbers are treated as booleans: zero is FALSE and any non-zero number is TRUE. OR is most powerful inside IF: =IF(OR(condition1,condition2),"result","other") runs the true branch if any condition passes. For mixed requirements, combine AND and OR in the same logical test. When matching against a list of valid values, COUNTIF with a range of those values is often cleaner than a long OR chain — =COUNTIF({"North","South","East"},B2)>0 replaces three OR arguments with one expression.
Examples
1
Flag each sales rep as included in a regional report if their region is North or South.
fx =OR(B2="North",B2="South")
A B C
1 Rep Region Include
2 Alice North =OR(B2="North",B2="South")
3 Bob East FALSE
4 Carol South TRUE
5 Dan West FALSE
6 Ella North TRUE
7 Finn East FALSE
Row 2: TRUE — Alice's region is North which matches the first condition — at least one argument is TRUE so OR returns TRUE.
Bob, Dan, and Finn are in East or West — neither condition matches so OR returns FALSE. Carol and Ella qualify through South and North respectively.
2
Apply a discount flag when the customer is a Premium member or the order total exceeds 500.
fx =OR(B2="Premium",C2>500)
A B C D
1 Customer Tier Order Discount
2 Alice Premium 350 =OR(B2="Premium",C2>500)
3 Bob Standard 620 TRUE
4 Carol Standard 280 FALSE
5 Dan Premium 150 TRUE
6 Eve Standard 450 FALSE
Row 2: TRUE — Alice is a Premium member so the first condition is TRUE and OR returns TRUE immediately, regardless of her order total.
Bob qualifies through order size alone (620 > 500). Carol and Eve are Standard with orders below 500 — both conditions fail for each. Dan qualifies through tier alone.
3
Escalate a support ticket when its status is Urgent or it has been open more than 30 days.
fx =IF(OR(B2="Urgent",C2>30),"Escalate","Normal")
A B C D
1 Ticket Status Days Open Action
2 TKT-001 Urgent 5 =IF(OR(B2="Urgent",C2>30),"Escalate","Normal")
3 TKT-002 Normal 45 Escalate
4 TKT-003 Normal 12 Normal
5 TKT-004 Urgent 32 Escalate
6 TKT-005 Normal 28 Normal
Row 2: Escalate — TKT-001 has status Urgent so the first condition is TRUE and Escalate is returned.
TKT-002 is escalated because it has been open 45 days even though its status is Normal. TKT-003 and TKT-005 meet neither condition so they stay Normal.
Common use cases
1. Escalate a support ticket when status is Urgent or days open exceeds the SLA limit
=IF(OR(B2="Urgent",C2>30),"Escalate","Normal")
2. Apply free shipping when the customer is a member or the order meets the minimum total
=IF(OR(B2="Member",C2>=100),"Free shipping","Standard rate")
3. Include rows from multiple regions in a combined analysis without using a filter
=OR(C2="North",C2="South")
4. Flag an invoice for review when it is overdue or the amount exceeds the authority limit
=IF(OR(D2<TODAY(),E2>10000),"Review","OK")
5. Mark a task as attention-needed when the due date is today or the owner field is blank
=IF(OR(C2=TODAY(),D2=""),"Attention","On track")
Common errors
Returns TRUE for every row
A condition is broader than intended — for example, a text comparison with a very common value matches most rows.
Fix: Test each condition in a separate cell to confirm which one triggers unexpectedly. Narrow the condition with a more specific value or an additional AND requirement.
Returns FALSE for every row
Each OR argument contains a range expression rather than a single-cell comparison — OR(B2:B100="North") does not work as expected.
Fix: Each argument must be a scalar comparison like B2="North". For range matching, use COUNTIF: COUNTIF({"North","South"},B2)>0.
OR inside SUMPRODUCT gives wrong results
The OR function inside SUMPRODUCT does not produce array results correctly.
Fix: Replace OR with the + operator inside SUMPRODUCT: =SUMPRODUCT((B2:B100="North")+(B2:B100="South")>0) counts rows matching either condition.
Tips and variations
Use OR inside IF to replace chains of nested IFs
A single IF with OR in the logical_test replaces two or three nested IFs that test the same column for different values. The result is shorter and far easier for others to read and maintain.
=IF(OR(B2="North",B2="South"),"Include","Exclude")
Combine OR with AND for mixed requirements
Wrap OR inside AND to express all of these AND any one of those logic. This pattern covers the majority of real-world multi-condition business rules in a single readable formula.
=IF(AND(C2>0,OR(D2="VIP",E2>500)),"Qualify","Pass")
Use COUNTIF with a list array for long OR conditions
When OR would need five or more arguments checking the same column, COUNTIF against a hard-coded list array is more compact and easier to extend without editing every formula.
=COUNTIF({"North","South","East","West"},B2)>0
Excel vs Google Sheets
Excel vs Google Sheets
OR works identically in Excel 2003 and newer and every version of Google Sheets. The syntax, argument limit, short-circuit evaluation, and case-insensitive text comparisons are all the same in both applications. Formulas copy between them without changes.
Related reading
Frequently asked questions
OR tests multiple conditions and returns TRUE when at least one of them evaluates to TRUE. It only returns FALSE when every single argument is FALSE. OR is most commonly used inside IF as the logical_test when meeting any one of several conditions is enough to qualify a row for a result.
AND requires every condition to be TRUE before returning TRUE. OR requires only one. Use AND when all requirements must be satisfied simultaneously. Use OR when any single alternative qualifies. They can be combined: AND(A1>0,OR(B1="VIP",C1>500)) requires A1 positive AND either OR condition true.
OR accepts up to 255 arguments in Excel and Google Sheets. In practice most formulas use two to five conditions. For matching against a longer list of valid values, COUNTIF against a range of those values is often more readable than chaining many OR arguments.
Yes. OR returns the boolean TRUE or FALSE directly and can be used anywhere a logical value is expected — in a FILTER condition, as a standalone cell result, or combined with AND and NOT. Wrapping it in IF is just the most common pattern because it converts the boolean into a visible label or value.
No. Text comparisons inside OR are case-insensitive, so OR(A1="sales",A1="Sales") would match the same cell for either casing. If you need case-sensitive matching, use EXACT inside an OR argument: OR(EXACT(A1,"Sales"),EXACT(A1,"SALES")).