← Functions
minstatisticalfunctionsbeginner

Excel MIN Function

MIN returns the smallest number in a set of values, ignoring text, blanks, and logical values.

MIN returns the smallest number in a list or range you give it. It ignores text, blank cells, and the logical values TRUE and FALSE, so it only looks at actual numbers. The one thing to watch: if your range contains an error value anywhere, MIN returns that error instead of a number, with no warning.

Syntax

=MIN(number1, [number2], ...)
ParameterRequiredDescription
number1YesA number, cell reference, or range to check. Can also be a range name.
number2, ...NoAdditional numbers or ranges. You can add up to 255 arguments total.

MIN has no optional argument that changes behavior, so there's no dangerous default to flag here. The only quiet risk is what MIN does when there's nothing to compare, covered below.

Basic Example

You're tracking daily temperatures for a week and want the lowest reading.

=MIN(B2:B8)

// B2:B8  = the range of seven daily temperature readings

MIN scans all seven cells, skips anything that isn't a number, and returns the smallest value it finds. If B2:B8 holds 68, 72, 61, 75, 70, 66, and 64, the formula returns 61. Add a new day's reading to the range and the result updates automatically.

How MIN Works

It ignores text, blanks, and logical values — unless they're typed directly

MIN only evaluates numbers. If a cell in your range contains the word "N/A," an empty cell, or TRUE/FALSE, MIN skips it entirely rather than treating it as zero. This matters if you're pulling from a column where some rows are intentionally left blank pending data entry.

That rule only holds for cell references and ranges. Type a logical value straight into the formula and MIN uses it: =MIN(5, TRUE) returns 1, not 5, because TRUE becomes 1 when it's a literal argument instead of something MIN reads out of a cell.

It works across multiple ranges and single values

You can mix ranges and individual numbers in one formula. =MIN(A2:A10, C2:C10, 50) checks both ranges plus the literal value 50 and returns whichever is smallest across all three inputs.

Negative numbers are treated normally

MIN has no bias toward positive values. Given -15, 8, and -22, it correctly returns -22. This trips people up when they expect MIN to return the value "closest to zero" rather than the true mathematical minimum.

It returns 0 if there's nothing to compare

If every cell in the range is text, blank, or otherwise non-numeric, MIN returns 0. This is not an error, and it will not get caught by IFERROR. Check for this case separately if a real 0 in your data would be misleading.

Dates work because they're stored as numbers

Excel stores dates as serial numbers, so =MIN(A2:A20) on a column of dates returns the earliest date in the range. Format the result cell as a date if it displays as a number instead.

Common Use Cases

Finding the lowest price in a product list

You want the cheapest item across a pricing column without sorting the sheet.

=MIN(products[Price])   // returns the lowest price in the Price column

Finding the earliest order date

Pull the first date in a list of order timestamps.

=MIN(orders[OrderDate])

// orders[OrderDate]  = a table column of order dates stored as serial numbers

Excluding zero from the minimum

Test scores of 0 usually mean "no attempt," not a real low score, so a plain MIN would return a misleading result.

=MIN(IF(scores>0, scores))

// scores  = the range of test scores
// IF(scores>0, scores)  = replaces any score of 0 with FALSE, which MIN then ignores

Enter this as an array formula with Ctrl+Shift+Enter in older Excel versions. In Excel 365, you can enter it as a normal formula and it spills automatically as a dynamic array.

Finding the minimum with a condition

To find the lowest salary in a specific department, MIN alone can't filter by criteria. Use MINIFS instead:

=MINIFS(employees[Salary], employees[Department], "Sales")

// employees[Salary]      = the range MIN checks
// employees[Department]  = the range the condition is evaluated against
// "Sales"                = the condition, only Sales rows are considered

Handling Errors

If any cell in its range holds an error, MIN doesn't calculate around it. It returns that exact error, unchanged — a #DIV/0! in the range comes back as #DIV/0!, an #N/A comes back as #N/A. MIN passes the original error through rather than converting it to something generic.

Common causes:

  • A cell in the range contains #N/A, #DIV/0!, #REF!, or another error value
  • A referenced cell was deleted, leaving a broken reference
  • The range includes a formula that failed to calculate correctly
=IFERROR(MIN(A2:A50), "Error in range")   // catches any error from A2:A50, not a legitimate 0

IFERROR catches whatever error MIN passes through, regardless of which one it is. It does nothing for the case covered above, where MIN legitimately returns 0 because the range has no numbers to compare. That 0 is a valid result, not an error, so IFERROR will never see it.

MIN does not skip errors the way it skips text. One #N/A anywhere in the range poisons the entire result. If your data pulls from formulas that might error out, wrap the range in AGGREGATE instead: =AGGREGATE(5, 6, A2:A50) calculates the minimum while ignoring error values, where 5 selects the MIN function and 6 tells AGGREGATE to skip errors.

Notes & Gotchas

Why does MIN return 0 instead of an error?

MIN returns 0 when none of its arguments contain a number, not when there's a genuine problem. This happens most often when a range is entirely text, entirely blank, or filtered down to nothing. Because 0 is a valid number, IFERROR won't catch this case. Check with =IF(COUNT(range)=0, "No numbers found", MIN(range)) if a false 0 would cause problems downstream.

Why does MIN return an error instead of a number?

At least one cell in the range holds an actual error value, not just text. MIN can't skip errors the way it skips text or blanks. It propagates the first one it finds, keeping the original error code rather than converting it to something generic — a #DIV/0! stays #DIV/0!, an #N/A stays #N/A. Find and fix the source error, or switch to AGGREGATE(5, 6, range) to calculate the minimum while ignoring errors.

Does MIN ignore blank cells?

Yes. A truly empty cell contributes nothing to the calculation and MIN treats it as if it weren't in the range at all. A cell that looks blank but contains an empty text string (="") is different: some setups treat that as text, which MIN also ignores, but it can behave inconsistently depending on how the cell was populated. Check with =ISBLANK() if you're unsure which case you're dealing with.

Does MIN work with dates and times?

Yes, because Excel stores both as serial numbers behind the scenes. =MIN(A2:A30) on a range of dates returns the earliest date as a serial number. Format the result cell with a date format, or it will display as a plain number like 46246 instead of a readable date.

What's the difference between MIN and MINIFS?

MIN returns the smallest number in a range, full stop, with no filtering. MINIFS returns the smallest number in a range that also meets one or more conditions you specify, and it supports up to 126 condition pairs. Use MIN for a straight minimum, MINIFS when you need "smallest value where department equals Sales" or similar criteria-based results.

Why does MIN treat TRUE and FALSE differently from MINA?

MIN ignores TRUE and FALSE when they come from a cell or range, as if those cells were blank. MINA evaluates them numerically instead, treating TRUE as 1 and FALSE as 0, and it also counts text as 0 rather than skipping it. If a range mixes logical values with numbers and you expect MIN to factor them in, switch to MINA, but check the result carefully since text cells will drag the minimum down to 0.

Related Functions

FunctionUse this when...
MAXYou need the largest value instead of the smallest.
MINIFSYou need the smallest value that also meets one or more conditions, like the lowest salary in a specific department.
MINAYour range mixes logical values or text with numbers and you want them counted instead of ignored.