Excel 16.0 build 20430
Windows, 64-bit, CPU not recorded
1,212 captured inputs are indexed for this environment. Capture dates: 2026-09-29 to 2026-09-29. This is a reading count, not a comparison with another build.
Logical functions
Matches all 1,237 recorded answers
Recorded: 1,212 in the answer bank and 25 workbook cells. How we measure this · See the Rust code
| Language | Name in Excel |
|---|---|
| Arabic | XOR |
| Bulgarian | XOR |
| Czech | XOR |
| Danish | XELLER |
| German | XOR |
| Greek | XOR |
| English (Australia) | XOR |
| English (United Kingdom) | XOR |
| English (United States) | XOR |
| Spanish | XO |
| Estonian | XOR |
| Finnish | EHDOTON.TAI |
| French | OUX |
| Hebrew | XOR |
| Croatian | XOR |
| Hungarian | XVAGY |
| Indonesian | XOR |
| Italian | XOR |
| Japanese | XOR |
| Korean | XOR |
| Lithuanian | XOR |
| Latvian | XOR |
| Norwegian | XOR |
| Dutch | EX.OF |
| Polish | XOR |
| Portuguese (Brazil) | XOR |
| Portuguese (Portugal) | XOU |
| Romanian | XOR |
| Russian | ИСКЛИЛИ |
| Slovak | XOR |
| Slovenian | XOR |
| Serbian (Latin) | XOR |
| Swedish | XELLER |
| Thai | XOR |
| Turkish | ÖZELVEYA |
| Ukrainian | XOR |
| Vietnamese | XOR |
| Chinese (Simplified) | XOR |
| Chinese (Hong Kong) | XOR |
| Chinese (Traditional) | XOR |
Names from Microsoft's support site.
XOR(logical1, [logical2], ...)
XOR shares the truth scan of AND and OR but performs a different reduction: it returns the
parity of the true items, not a threshold test.
Formally, let T be the number of items in the scan that classified as true. Then XOR returns
TRUE when T is odd and FALSE when T is even — including T = 0, provided at least one
item classified at all.
This is worth stating carefully because the name misleads. In two-argument use, parity and
"exactly one is true" coincide, so XOR(a, b) reads like exclusive disjunction. With three or
more arguments they diverge: XOR(TRUE, TRUE, TRUE) is TRUE (three is odd), not FALSE. If you
want "exactly one of these is true" over three conditions, XOR is the wrong function — the
counting idiom SUM(--(conditions)) = 1 is what you mean.
The scan and its classification are identical to AND's:
| Item | Classification |
|---|---|
Logical | its own truth value |
Number | false if exactly 0, true otherwise |
| Text or empty inside an array or reference argument | skipped |
Error | the scan stops and that error is the result |
And, as with AND and OR, a scan in which nothing classified returns #VALUE! rather than
the algebraic identity FALSE.
XOR(logical1, [logical2], ...)
Missing and contributes nothing.The misunderstood position here is not any one slot but the count: readers reach for XOR
with more than two arguments expecting uniqueness and get parity.
Returns a Logical, or an Error.
XOR(x) is just the truthiness of x — parity of one item.XOR(TRUE,TRUE,TRUE) is TRUE.#VALUE!.AND and OR; the empty scan is not FALSE.XOR is associative and commutative over the classified items, so scan order does not affect
the value — but it does affect which error surfaces first if more than one error is present.
Order is therefore still observable.Quoted from the public repository DnaCalc/DnaCalc, crates calc-func and calc-fml, at commit 9e1884369a67. Comments are the source's own. A kernel shared with other functions appears once, on its module page.
XOR · 1 lines · calc-func/src/catalogue/logical.rs on GitHublogicals(XOR, "XOR", 254, xor)
xor · 7 lines · calc-func/src/catalogue/logical.rs on GitHub/// XOR: TRUE when the number of TRUE logicals read is odd, FALSE when it is even.
fn xor(
arguments: &[CalcValue],
services: &mut EvalServices<'_>,
) -> Result<CalcValue, FunctionFault> {
decide(XOR, arguments, services, |tally| tally.trues % 2 == 1)
}
reader catalogue/aggregateread_reference catalogue/aggregatelogicals catalogue/logicaldecide catalogue/logicaltally catalogue/logicaldirect catalogue/logicalheld catalogue/logicalnot_callable catalogue/logicaloperand coercespelled_logical coerceNo implementation has been published with a Handbook test suite for this function.
The recorded environments below distinguish a reading from a same-input comparison. Counts describe captured inputs in each environment; overlapping captures and comparisons are not totals of unique worksheet calls.
| Excel 16.0 build | Platform and CPU | Captured inputs |
|---|---|---|
| 20430 | Windows, 64-bit, CPU not recorded | 1,212 |
The record contains no same-input comparison between these environments. Reading different inputs on different builds does not establish either a version change or cross-build agreement.
Recorded environments and comparison details.
Windows, 64-bit, CPU not recorded
1,212 captured inputs are indexed for this environment. Capture dates: 2026-09-29 to 2026-09-29. This is a reading count, not a comparison with another build.
OR and XOR agree whenever at most one item is true and diverge as soon as two are.AND is the conjunction over the same scan.XOR was added in Excel 2013; workbooks that must open in earlier versions use
MOD(SUMPRODUCT(--(conditions)), 2) = 1 or nested IF chains instead. The Handbook does not
treat XOR as a Compatibility-category replacement pair — it supersedes an idiom, not a
function.BITXOR is a different function entirely: bitwise exclusive-or on integers, not a logical
reduction. Readers searching for "XOR" frequently want that one.No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents