Operators
Greater than or equal to (>=)
Matches all 4 recorded answers
Recorded: 4 workbook cells. How we measure this · See the Rust code
No local names are recorded for this entry.
What it does
value1 >= value2
A >= B returns TRUE when A follows B in Excel's comparison order or is equal to
it under that order, and FALSE otherwise.
The order and the equality are the family's, stated in full on
FUNC.OP_EQUAL: kinds are ordered rather than coerced (number < text <
logical), text comparison is case-insensitive, and numeric comparison passes through a
normalization lane rather than exact IEEE comparison.
That matters because >= is the operator business logic is actually written with — minimum
balances, qualifying thresholds, tier boundaries. A rule spelled >= includes values that
differ from the threshold by less than the comparison layer's normalization width, whether or
not the author intended a tolerance. The author cannot see this width in the formula; it
comes from the comparison layer.
Arguments
| Position | Name | Meaning |
|---|---|---|
| 0 | A | Left operand. Required. |
| 1 | B | Right operand, typically the threshold. Required. |
Arity is exactly 2; no optional arguments, no defaults. Order is load-bearing.
Try it
Quirks
Result and edge cases
- Equal operands give
TRUE, under the family's normalized, case-insensitive equality. - Different kinds give the kind ordering; the equality half never fires across kinds. In
particular
="10">=2isTRUEbecause the text outranks the number, not because ten is at least two — a threshold test over a column of text-formatted numbers passes unconditionally. - Blank operands. Context-sensitive: blank behaves as
0against a number,""against text,FALSEagainst a logical. So=A1>=0isTRUEfor an emptyA1. A "did they meet the minimum?" test written with>=0counts every empty row as a pass. - Arrays. Ordinary broadcast with
#N/Afor unsupplied coordinates.
Errors
data/functions/FUNC.OP_GREATER_EQUAL.json records no Microsoft documentation URL (docs is
null).
How to implement
Notes for implementers
- Derive
>=from the same three-way comparison core as the other five. In particular its equality must be the family's equality, normalization and case-insensitivity included. - Do not implement
A>=BasNOT(A<B)while errors are in play; the error must propagate. - If your comparison core normalizes, document the normalization width and direction (truncation versus rounding) as part of the implementation's contract — it is user-visible behaviour at every threshold in every workbook that uses this operator.
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.
>= infix · 7 lines · calc-func/src/catalogue/comparison.rs on GitHubCatalogueEntry::operator(
GREATER_OR_EQUAL,
">=",
Notation::Infix,
VALUES,
greater_or_equal,
)
greater_or_equal · 12 lines · calc-func/src/catalogue/comparison.rs on GitHubfn greater_or_equal(
arguments: &[CalcValue],
services: &mut EvalServices<'_>,
) -> Result<CalcValue, FunctionFault> {
compare(
GREATER_OR_EQUAL,
arguments,
services,
Want::Order,
Ordering::is_ge,
)
}
Kernels shared with other functions
comparecatalogue/comparisonOperand::kindcatalogue/comparisonOperand::blankcatalogue/comparisonordercatalogue/comparisonoverflow_numberscatalogue/comparisonnumberscatalogue/comparisonin_bandcatalogue/comparisonRounded::upcatalogue/comparisonRoundings::ofcatalogue/comparisonRoundings::disjointcatalogue/comparisontextscatalogue/comparisoncomparecatalogue/comparison/collationweighedcatalogue/comparison/collationmeasured_iteration_extensioncatalogue/comparison/collationtablecatalogue/comparison/sort_keydecode64catalogue/comparison/sort_keyReader::bytecatalogue/comparison/sort_keyReader::varintcatalogue/comparison/sort_keyReader::donecatalogue/comparison/sort_keyin_rangescatalogue/comparison/sort_keybuildcatalogue/comparison/sort_keyhan_basecatalogue/comparison/sort_keyderivecatalogue/comparison/sort_keyshared_jamo_tailscatalogue/comparison/sort_keyordinary_jamo_prefixcatalogue/comparison/sort_keyindependent_jamo_suffixcatalogue/comparison/sort_keyjamo_leading_primarycatalogue/comparison/sort_keyleading_ordercatalogue/comparison/sort_keyBefore::separate_specialcatalogue/comparison/sort_keyGathered::kanacatalogue/comparison/sort_keyGathered::unitcatalogue/comparison/sort_keypartscatalogue/comparison/sort_keydiacritic_ordercatalogue/comparison/sort_keydiacriticscatalogue/comparison/sort_keylow32decimalNatural::from_u64decimalNatural::pow10decimalNatural::normalizedecimalNatural::is_zerodecimalNatural::mul_add_smalldecimalNatural::times_pow10decimalNatural::times_pow5decimalNatural::times_pow2decimalExactDecimal::binarydecimal
Argument and result plumbing
CatalogueEntry::operatorcatalogueoperandcoerce
No implementation has been published with a Handbook test suite for this function.
Version differences
No comparison between specific Excel builds is recorded here yet. This does not establish that all builds behave alike.
Alternatives
Relationships
FUNC.OP_GREATER_THAN— the strict form, and the operator with which>=disagrees exactly on the normalized-equality band.FUNC.OP_LESS_EQUAL— the mirror.FUNC.OP_EQUAL— the equality half.MATCHwith match type1,VLOOKUP/HLOOKUPin approximate mode,XLOOKUPwith a next-smaller match mode — the lookup functions whose semantics are "largest value less than or equal to". Their internal comparison is their own; whether it is this operator's relation is exactly the kind of thing a vector suite would have to establish.COUNTIFS(range,">=5")— criteria strings, parsed by the consuming function.IFS,SWITCH, nestedIFtier ladders — where>=chains are written, and where an off-by-one-normalization-width can put a row in the wrong tier.
Named variants
No named variants are recorded yet.
Suggest a correction or contribute an implementation · For agents