Statistical functions

MIN

Matches all 1,230 recorded answers

Recorded: 1,212 in the answer bank and 18 workbook cells. How we measure this · See the Rust code

Local names in 40 languages
LanguageName in Excel
ArabicMIN
BulgarianMIN
CzechMIN
DanishMIN
GermanMIN
GreekMIN
English (Australia)MIN
English (United Kingdom)MIN
English (United States)MIN
SpanishMIN
EstonianMIN
FinnishMIN
FrenchMIN
HebrewMIN
CroatianMIN
HungarianMIN
IndonesianMIN
ItalianMIN
JapaneseMIN
KoreanMIN
LithuanianMIN
LatvianMIN
NorwegianMIN
DutchMIN
PolishMIN
Portuguese (Brazil)MÍN
Portuguese (Portugal)MIN
RomanianMIN
RussianМИН
SlovakMIN
SlovenianMIN
Serbian (Latin)MIN
SwedishMIN
ThaiMIN
TurkishMİN
UkrainianMIN
VietnameseMIN
Chinese (Simplified)MIN
Chinese (Hong Kong)MIN
Chinese (Traditional)MIN

Names from Microsoft's support site.

What it does

MIN(number1, [number2], ...)

MIN(number1, [number2], …) returns the smallest of the numeric values it admits.

Mathematically this is the bottom order statistic x₍₁₎ = min{x₁ … xₙ} — the infimum of a finite set, attained, and therefore one of the inputs. MIN is a selector: it performs no arithmetic, introduces no rounding error, and returns bits it was given.

min is associative, commutative and idempotent with identity +∞, so it is a monoid fold — and, as with MAX, the identity is the one thing Excel cannot represent, so the specification substitutes a value. Microsoft's choice is 0, and on MIN that choice is more consequential than on MAX; see below.

Arguments

ArgumentMeaningNotes
number1The first valueSee the note below
number2, …Further valuesOptional

Microsoft's page states: "Number1 is optional, subsequent numbers are optional. 1 to 255 numbers for which you want to find the minimum value."

Argument boundaries carry no meaning: MIN(A1:A10), MIN(A1:A5, A6:A10) and MIN(A1, …, A10) all reduce over one pooled set.

Try it

Input cells (optional)

Example: {"B2": 3, "B3": 4}. A1 holds the formula. Other cells need values before a formula can read them.

Enter a formula, then calculate.

Runs locally in your browser with OneCalc. Its answer may differ from Excel. Use English function names and commas between arguments.

Quirks

The two coercion policies

Quoted from Microsoft's MIN page, which states the split in consecutive sentences:

  • "Arguments can either be numbers or names, arrays, or references that contain numbers."
  • "Logical values and text representations of numbers that you type directly into the list of arguments are counted."
  • "If an argument is an array or reference, only numbers in that array or reference are used. Empty cells, logical values, or text in the array or reference are ignored."
  • "If the arguments contain no numbers, MIN returns 0."
  • "Arguments that are error values or text that cannot be translated into numbers cause errors."

As a table:

ValueTyped directly into the argument listReached inside an array or reference
Numbercountedcounted
TRUE / FALSEcounted (as 1 / 0)ignored
Text that reads as a numbercountedignored
Text that does not read as a numbererrorignored
Empty cell—ignored
Error valueerrorerror

This is word-for-word the MAX table with the comparator reversed, which is how it should be: the two functions are documented to differ in nothing but direction. Microsoft's page names the same remedy for wanting more values counted: "If you want to include logical values and text representations of numbers in a reference as part of the calculation, use the MINA function." See MINA, and read its rules before switching.

Result and edge cases

Returns Number.

  • No numbers among the arguments. Microsoft documents: "If the arguments contain no numbers, MIN returns 0." So MIN over a wholly blank range is documented to be 0.

    Why it matters more on MIN than on MAX. The documented 0 is not below the data; it is inside the plausible range. On all-positive data — prices, distances, durations, counts, every quantity a spreadsheet is usually full of — an empty range makes MIN return 0, which is smaller than every real value and therefore wins every subsequent comparison. A minimum-of-minimums over several columns reports 0 the moment one column is empty. The symmetric failure for MAX needs all-negative data, which is rarer. MIN(MIN(A), MIN(B)) ≠ MIN(A ∪ B) whenever one side is empty and the other is entirely positive, and that is the common case rather than the exotic one.

  • A single value. MIN(x) is x, for the largest finite double and the smallest subnormal alike.

  • +0 and −0 compare equal under IEEE, so which representation is returned is unspecified and observable through 1/MIN(...). Unverified.

  • Arrays are consumed by scanning, not lifted elementwise.

  • Dates and times are numbers wearing formats, so MIN over a date column is the earliest date.

Errors

There is no documented #NUM! or #N/A condition, and no documented empty-input error — the documented empty-input answer is 0.

How to implement

Numerical notes

MIN has no arithmetic and therefore no rounding error. Three questions remain, and all three are about definition.

1. The comparison predicate. A minimum needs a total order. IEEE-754 < is one on the doubles Excel can hold, except that +0 and −0 compare equal; Excel has no NaN in its published value universe, so the NaN-poisoning problem does not arise at this level. Whether Excel's MIN uses raw < or the tolerant truncation-style 15-significant-digit comparison it applies in some other families is open. The consequence is limited to which of two equal- comparing representations is returned, but it is observable.

3. The empty-set identity. Mathematically min ∅ = +∞, which Excel cannot represent, so the specification substitutes 0. As argued above, the substitution is directional in its harm: 0 is a lower bound for most real spreadsheet data, so an empty MIN does not merely give a wrong answer, it gives an answer that dominates every correct one downstream.

For an implementer, the rule follows directly: initialise with a found flag plus a sentinel, never with 0 and never with f64::INFINITY alone. 0 is wrong for all-positive data; +∞ produces a value outside Excel's value universe. Track "have I seen a number" separately from "what is the best so far", and apply the documented zero only at the end. The same advice appears on MAX and is worth repeating because the two functions are usually implemented by the same person on the same afternoon and the mirror case is easy to get subtly different.

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.

MIN · 1 lines · calc-func/src/catalogue/aggregate.rs on GitHub
aggregate(MIN, "MIN", NUMBERS, min)

Kernels shared with other functions

Argument and result plumbing

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 buildPlatform and CPUCaptured inputs
20430Windows, 64-bit, CPU not recorded1,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.

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.

Alternatives

Relationships

  • MAX — the exact mirror. Same argument shape, same documented coercion table, same documented 0. Any behavioural difference beyond the comparator is a defect in one of them, which makes cross-testing the pair unusually productive.
  • MINA — the variant counting text and logicals in references, named by MIN's own documentation. On MINA the zero-conversion trap is at its worst: any text in an all-positive column pulls the minimum to 0.
  • MINIFS — the conditional form, which returns 0 when nothing matches — the same convention, with the same all-positive-data hazard.
  • SMALL — the general order-statistic selector; SMALL(array, 1) is the minimum over the same admitted set, but SMALL errors on an empty array instead of returning zero. The MIN/SMALL pair is the cleanest illustration of two functions computing the same thing with different empty-set conventions, and SMALL is the safer of the two when "no data" must not be confused with "zero".
  • DMIN — the database-family minimum with criteria-range selection.
  • SUBTOTAL (function numbers 5 and 105) and AGGREGATE (function number 5) — the filter-aware and error-skipping minima. AGGREGATE is the only route to a minimum that ignores error values.
  • Confused with: MIN and SMALL on ranges containing text (same scan policy, so they should agree); and with the belief that an empty MIN is an error, which the documentation contradicts.

Named variants

No named variants are recorded yet.

Suggest a correction or contribute an implementation · For agents