← Functions
isnumberlogicalfunctionsbeginner

Excel ISNUMBER Function

ISNUMBER checks whether a value is a number and returns TRUE or FALSE. No errors, ever.

ISNUMBER checks whether a value is a number and returns TRUE if it is, FALSE if it isn't. It works on cell references, formula results, and typed-in values alike. The detail that trips up beginners: a number that looks fine on screen, like a Zip code with a leading zero or an amount pasted from a website, is often stored as text. ISNUMBER will call that FALSE, and it's right to.

Available in: Excel 365, Excel 2021, Excel 2019, Excel 2016, and every earlier version back to Excel 97. ISNUMBER has never changed syntax across versions.

Syntax

=ISNUMBER(value)
ParameterRequiredDescription
valueYesThe cell, formula result, or typed value you want to test. Can be a direct number, a cell reference, or the output of another function.

ISNUMBER takes exactly one argument. There's no optional second parameter and no default behavior to worry about, which makes it one of the simplest functions in Excel to get right on the first try.

Basic Example

You're keeping a shipment log. Column B holds the quantity shipped for each order, but a few rows have text like "pending" instead of a number because the order hasn't shipped yet.

=ISNUMBER(B2)

// B2 = the value being tested (could be a number or text)

If B2 contains 48, the formula returns TRUE. If B2 contains the text "pending", it returns FALSE. Nothing else happens, no conversion, no rounding. ISNUMBER just reports what's actually stored in the cell.

How ISNUMBER Works

It returns TRUE only for genuine numeric values

ISNUMBER doesn't guess. If Excel has the value stored internally as a number, whether that's 12, -4.5, or 3.14159, it returns TRUE. Anything stored as text, even digits that look identical to a real number, returns FALSE.

Dates and times count as numbers

Excel stores dates and times as serial numbers under the hood, so ISNUMBER returns TRUE for both. =ISNUMBER(DATE(2026,7,12)) returns TRUE. This surprises a lot of beginners who expect date checks to require a separate function.

It never throws its own error

Feed ISNUMBER an error value like #N/A or #VALUE!, and it doesn't propagate the error. It returns FALSE instead. This is unusual: most functions choke on an error input, but ISNUMBER treats "this is an error" the same way it treats "this is text." Not a number, so FALSE.

Text that looks like a number still returns FALSE

Type "19" with quotation marks directly into a formula, and ISNUMBER returns FALSE, even though the digits are identical to the number 19. Excel doesn't auto-convert quoted text into a number just because ISNUMBER is asking. The same applies to numbers imported from CSV files or web data that land in cells as text.

Common Use Cases

Restrict a cell to numeric entry only

Use ISNUMBER inside Data Validation's custom formula option to block anyone from typing text into a quantity or price field.

=ISNUMBER(C5)   // returns TRUE only if C5 contains a real number

Set this as a custom validation rule on C5, and Excel rejects any entry that isn't numeric, including a stray space or a typo like "1O" (letter O instead of zero).

Flag non-numeric entries in a shipment log

Combine ISNUMBER with IF to build a status column that calls out bad data before it breaks a SUM formula downstream.

=IF(ISNUMBER(B2), "OK", "Check entry")

// B2 = the quantity cell being validated

Rows with a real number show "OK." Rows with text, blanks treated as text, or stray characters get flagged for review.

Confirm a lookup actually found something

XLOOKUP and VLOOKUP return #N/A when they can't find a match. Wrapping the result in ISNUMBER lets you test success without displaying the raw error.

=ISNUMBER(XLOOKUP(A2, orders[OrderID], orders[Total]))

// A2 = the order ID being searched

This returns TRUE if the order ID exists in the table and its total is numeric, FALSE if the lookup came back empty or found a blank.

Count how many cells in a range are actually numeric

SUMPRODUCT paired with ISNUMBER counts numeric cells across a mixed range, something COUNT alone can't do if you also need to see which specific cells qualify.

=SUMPRODUCT(--ISNUMBER(C5:C20))

// C5:C20 = the range being checked for numeric values

The double negative (--) converts each TRUE/FALSE into 1/0 so SUMPRODUCT can add them up. The result is a count of numeric cells in the range.

Handling Errors

ISNUMBER doesn't throw its own errors. Even when its argument is an error value, it returns FALSE rather than passing the error along. That makes it one of the few functions in Excel you never need to wrap in IFERROR.

In fact, ISNUMBER is often the error handler for other formulas rather than something that needs one. SEARCH and FIND return #VALUE! when they can't locate a substring, but wrapping them in ISNUMBER converts that error into a clean FALSE:

=ISNUMBER(SEARCH("apple", B5))

// B5 = the text being searched for the substring "apple"

If "apple" isn't found, SEARCH returns #VALUE! on its own, but ISNUMBER catches it and returns FALSE instead. No IFERROR required.

Pair ISNUMBER with SEARCH or FIND whenever you need a TRUE/FALSE answer to "does this text contain X?" On its own, SEARCH returns a position number or an error, neither of which is useful in an IF statement without ISNUMBER wrapped around it.

Notes & Gotchas

How do I use ISNUMBER in Excel?

Type =ISNUMBER( followed by a cell reference or value, then close the parenthesis. =ISNUMBER(A2) checks whether cell A2 holds a number and returns TRUE or FALSE. It's most useful nested inside IF, SUMPRODUCT, or a Data Validation rule rather than sitting alone in a cell.

What does the ISNUMBER function return?

ISNUMBER always returns one of two values: TRUE or FALSE. It never returns a number, text, or an error message, even if the value you're testing is itself an error. That consistency is what makes it safe to nest inside other formulas without extra error handling.

What is the difference between ISNUMBER and ISTEXT in Excel?

ISNUMBER returns TRUE for numbers, dates, and times. ISTEXT returns TRUE for text strings, including numbers stored as text. A cell can never satisfy both at once; if ISNUMBER is TRUE, ISTEXT is FALSE for that same cell, and vice versa.

Can ISNUMBER be used with IF statements in Excel?

Yes, and it's one of the most common pairings in Excel. =IF(ISNUMBER(A2), "Valid", "Invalid") runs the number check as the IF condition, showing "Valid" for numeric cells and "Invalid" for anything else. This pattern shows up constantly in data cleanup and validation formulas.

Why does ISNUMBER return FALSE for a number stored as text?

Numbers imported from CSV files, pasted from web pages, or entered with a leading apostrophe often get stored as text even though they display like ordinary numbers. ISNUMBER checks the underlying data type, not the visual appearance, so it correctly returns FALSE. Convert the cell with VALUE() or a Paste Special multiply-by-1 trick if you need it recognized as numeric.

A quoted number typed directly into a formula, like ISNUMBER("19"), returns FALSE. Excel does not auto-convert the text "19" into the number 19 just because ISNUMBER is asking. If you need Excel to attempt that conversion, wrap the value in VALUE() first.

Does ISNUMBER treat dates and times as numbers?

Yes. Excel stores dates and times as serial numbers internally, so ISNUMBER returns TRUE for both. =ISNUMBER(TODAY()) returns TRUE, and so does a cell formatted to display a date but holding an actual date value.

Why does ISNUMBER return FALSE after I concatenate a number with text?

The ampersand operator (&) always produces a text result, even if every piece being joined is numeric. =ISNUMBER(10 & " units") returns FALSE because the concatenation converts everything to a text string. If you need the numeric portion back, extract it separately before testing with ISNUMBER.

Related Functions

FunctionUse this when...
IFERRORYou need to replace an error result with a fallback value instead of just detecting it.
ISBLANKYou need to check whether a cell is completely empty rather than whether it holds a number.