Apple Numbers XOR: Odd-Parity Logic and Exactly-One Checks
Learn Numbers XOR with a complete truth table, nonzero-number rules and a two-choice validation example. Avoid mistaking odd parity for exactly one of many.
Verification status: See the evidence and test scope described in this guide. How formula examples are checked
Quick answer: =XOR(TRUE,FALSE) returns TRUE, while =XOR(TRUE,TRUE) returns FALSE. With more than two conditions, XOR is true when an odd number of them are true, so three true conditions also produce TRUE.
Availability and version history
- Introduced: The original release and introduction date are not established by the checked references.
- Availability: Currently documented in Apple’s Functions Help 15.4 documentation edition. No final supported-version endpoint is established.
- Scope: Shared iWork reference; exact historical availability in individual Mac, iPad, iPhone and iCloud builds remains unverified.
- Checked: October 14, 2026, against the official XOR reference. Examples checked by independent boolean logic; no native Numbers test.
Syntax and numeric interpretation
=XOR(any-expression, any-expression…)
One expression is required; additional expressions are optional. Each must be evaluable as a boolean. Apple states that numeric 0 is false, while every nonzero number is true. Negative numbers therefore count as true when passed directly, even if a separate test such as A2>0 would be false.
XOR differs from OR, which accepts any true condition, and AND, which requires every condition to be true. It returns a boolean result, not a count of successful conditions.
For two boolean inputs, XOR means exactly one is true. That description becomes incomplete for three or more inputs. Use a count-equals-one test when the business rule is genuinely one choice out of many.
Build the complete three-condition truth table
Create a Numbers table named TruthTable, with seven columns A:G and nine rows including one header row. Put First, Second, Third, XOR, OR, AND and Exactly one in A1:G1. Enter the following eight combinations in A2:C9 as unquoted TRUE/FALSE values:
| Row | A | B | C | Expected D | Expected E | Expected F | Expected G |
|---|---|---|---|---|---|---|---|
| 2 | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE | FALSE |
| 3 | FALSE | FALSE | TRUE | TRUE | TRUE | FALSE | TRUE |
| 4 | FALSE | TRUE | FALSE | TRUE | TRUE | FALSE | TRUE |
| 5 | FALSE | TRUE | TRUE | FALSE | TRUE | FALSE | FALSE |
| 6 | TRUE | FALSE | FALSE | TRUE | TRUE | FALSE | TRUE |
| 7 | TRUE | FALSE | TRUE | FALSE | TRUE | FALSE | FALSE |
| 8 | TRUE | TRUE | FALSE | FALSE | TRUE | FALSE | FALSE |
| 9 | TRUE | TRUE | TRUE | TRUE | TRUE | TRUE | FALSE |
Enter these formulas in row 2 and fill D2:G2 through row 9:
- D2:
=XOR(A2,B2,C2) - E2:
=OR(A2,B2,C2) - F2:
=AND(A2,B2,C2) - G2:
=(IF(A2,1,0)+IF(B2,1,0)+IF(C2,1,0))=1
The G formula explicitly converts each condition to a count contribution, then asks whether their sum is one. Row 9 exposes the difference: XOR returns TRUE for three true values, while Exactly one returns FALSE.
Numeric controls: nonzero is not the same as positive
Create another table named NumericControls, with two columns A:B and seven rows. Put these formulas in B2:B7, with a descriptive label alongside each:
| Cell | Formula | Expected result |
|---|---|---|
| B2 | =XOR(0) |
FALSE |
| B3 | =XOR(-2) |
TRUE |
| B4 | =XOR(-2,0) |
TRUE |
| B5 | =XOR(-2,5) |
FALSE |
| B6 | =XOR(-2,5,0.5) |
TRUE |
| B7 | =XOR(-2>0,0>0) |
FALSE |
In B3 the number −2 is itself a true logical input. In B7 the comparison −2>0 is false. Write the condition that actually represents your rule instead of relying on an unintended numeric conversion.
The entry does not give a complete rule table for arbitrary text, error cells, blank references or array coercions. These controls use scalar numbers and explicit comparisons only.
Advanced: validate exactly one of two delivery methods
Create a separate table named DeliveryChoice, with five columns A:E and five rows. Use Pickup, Courier, One method, Message and Algebra check as headers. Enter A2:B5 as:
| Row | Pickup | Courier | Expected C | Expected D | Expected E |
|---|---|---|---|---|---|
| 2 | FALSE | FALSE | FALSE | Choose one method | FALSE |
| 3 | FALSE | TRUE | TRUE | Ready | TRUE |
| 4 | TRUE | FALSE | TRUE | Ready | TRUE |
| 5 | TRUE | TRUE | FALSE | Choose one method | FALSE |
Enter =XOR(A2,B2) in C2, =IF(C2,"Ready","Choose one method") in D2 and =AND(OR(A2,B2),NOT(AND(A2,B2))) in E2. Fill C2:E2 through row 5.
The E formula independently expresses the same two-choice rule: at least one is true, and both are not true. With two valid booleans it agrees with XOR in all four cases.
If you add a third delivery option later, do not simply append it to XOR and assume the rule still means exactly one. Use the count test demonstrated in TruthTable instead. Keep a visible all-selected control so that this mistake is easy to detect.
Troubleshooting and related functions
A TRUE result does not identify which condition was true. Retain the original columns when you need to explain a decision. Similarly, XOR cannot validate whether your source inputs were complete or whether a text label was intended as a boolean.
Use IF to turn the result into a label, or NOT to reverse a valid boolean result. The TRUE and FALSE functions provide explicit constants for reproducible controls. XOR’s short reference does not establish every exact native error token or historical build boundary.