Refuses 2 of 57,224 recorded calls; the rest match
Of 57,224 recorded answers (57,066 in the answer bank and 158 workbook cells), 2 do not match: 2 are refused. How we measure this · See the Rust code
Local names in 40 languages
Language
Name in Excel
Arabic
ISEVEN
Bulgarian
ISEVEN
Czech
ISEVEN
Danish
ER.LIGE
German
ISEVEN
Greek
ISEVEN
English (Australia)
ISEVEN
English (United Kingdom)
ISEVEN
English (United States)
ISEVEN
Spanish
ISEVEN
Estonian
ISEVEN
Finnish
ONPARILLINEN
French
ISEVEN
Hebrew
ISEVEN
Croatian
ISEVEN
Hungarian
PÁROSE
Indonesian
ISEVEN
Italian
ISEVEN
Japanese
ISEVEN
Korean
ISEVEN
Lithuanian
ISEVEN
Latvian
ISEVEN
Norwegian
ISEVEN
Dutch
IS.EVEN
Polish
CZY.PARZYSTE
Portuguese (Brazil)
ISEVEN
Portuguese (Portugal)
ÉPAR
Romanian
ISEVEN
Russian
ЕЧЁТН
Slovak
ISEVEN
Slovenian
ISEVEN
Serbian (Latin)
ISEVEN
Swedish
ÄRJÄMN
Thai
ISEVEN
Turkish
ÇİFTMİ işlevi
Ukrainian
ISEVEN
Vietnamese
ISEVEN
Chinese (Simplified)
ISEVEN
Chinese (Hong Kong)
ISEVEN
Chinese (Traditional)
ISEVEN
Names from Microsoft's support site.
What it does
ISEVEN(number)
ISEVEN(number) tests whether a number is even, returning a logical value. Microsoft's
ordinary rule is to discard a fractional part before testing parity: ISEVEN(2.5) is TRUE.
Sign does not change parity; truncating a negative number moves toward zero.
Excel has an additional near-integer tolerance. On the recorded build,
ISEVEN(2.99999999999) is FALSE: the value counts as 3 even though truncating its exact stored
value alone would give 2. This is a numerical quirk, not the ordinary mathematical parity test.
Try it
Compare =ISEVEN(2.5), =ISEVEN(2.99999999999) and =ISEVEN(-2.99999999999). Use
=ISODD(2.99999999999) to compare the paired predicate.
Quirks
The documented description of truncation omits the tolerance visible near an integer. Recorded
ISODD calls distinguish 2.99999999991 (TRUE) from 2.99999999989 (FALSE). Those points constrain a
boundary; they do not establish one universal tolerance on every build or at every magnitude.
The pair also differs from strict classifiers such as ISNUMBER. The recorded ISEVEN accepts
numeric text "2" and " 2 ", while ISEVEN(TRUE) returns #VALUE!. An error input is propagated
rather than classified as FALSE. Do not apply a blanket rule that every IS-prefixed function
performs no conversion.
At magnitudes of 2^53 and above, all finite binary64 numbers are even integers. Converting a
large input to a signed machine integer can saturate or overflow and create a false odd answer.
How to implement
Keep argument reading separate from the parity kernel: read a one-cell reference, handle blanks,
coerce permitted numeric text, reject logical values where the measured rule requires it, and
propagate errors. References spanning multiple cells need their own measured shape rule.
A compatibility candidate used by OneCalc is to add binary64 1e-10 to the input's absolute
magnitude, round that addition to binary64, truncate the result, and take the remainder modulo 2.
The predicate returns whether that remainder is zero.
The rounded addition is part of the candidate; replacing it with a test on the original value
changes results near an integer.
Test both sides of each observed transition and both signs, direct versus referenced text,
logical arguments and magnitudes beyond signed-integer range. Keep this compatibility algorithm
separate from a mathematical integer-parity routine.
Rust code
Show the CalcFunc source of this function
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.
No implementation has been published with a Handbook test suite for this function.
Version differences
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
57,066
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.
Windows (64-bit) NT 10.00, AMD Ryzen 7 4800H with Radeon Graphics, en-ZA
The formulas below were read directly from Excel in the named capture. These rows do not establish behaviour on other builds or on unmeasured inputs.
Observed formulas and results
=ISEVEN(-0.5) → TRUE(formula-literal)
=ISEVEN("2") → TRUE(formula-literal)
=ISEVEN(" 2 ") → TRUE(formula-literal)
=ISEVEN(TRUE) → #VALUE!(formula-literal)
=ISEVEN(@{2,3}) → TRUE(formula-literal)
=ISEVEN("$4") → #VALUE!(formula-literal)
=ISEVEN(2.99999999999) → FALSE(formula-literal)
=ISEVEN(-2.99999999999) → FALSE(formula-literal)
Excel 16.0 build 20430
Windows, 64-bit, CPU not recorded
57,066 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.
Alternatives
ISODD tests the other parity. MOD and an explicitly specified
truncation rule can express mathematical parity, but they need not reproduce the tolerance.
ISNUMBER classifies a value without performing a parity calculation.