MAKE DECISIONS NOT Function in Excel and Googl… Reverse a logical value — convert TRUE to FALSE… Excel 2003+ Google Sheets Same syntax Microsoft Excel C2 =NOT(logical) A B C Employee Notes Has Note 2 Alice Excellent work TRUE 3 Bob FALSE 4 Carol Needs improvement TRUE
Learning Hub Functions Make Decisions

NOT Function in Excel and Google Sheets

Make Decisions 📊 Excel 2003+ ✓ Google Sheets Same syntax in both apps
Purpose
Reverse a logical value — convert TRUE to FALSE and FALSE to TRUE
Return value
FALSE when the argument is TRUE, TRUE when the argument is FALSE or zero
NOT is the simplest logical function in the library and one I reach for constantly — not because spreadsheet logic is backwards, but because exclusion conditions are often easier to express as negations. Is this field NOT blank? Is this status NOT cancelled? Is this value NOT a number? In each case, wrapping the natural positive test in NOT gives you the reverse instantly. NOT becomes especially powerful when combined with ISBLANK, ISNUMBER, ISERROR, and other IS functions — pairing an IS function with NOT creates a clean natural-language exclusion test. NOT also applies cleanly to arrays in Excel 365 and Google Sheets, making it useful inside FILTER formulas where you want to exclude a condition across an entire column rather than cell by cell.
Syntax
✓ Excel 2003+ ✓ Google Sheets = Same syntax
=NOT(logical)
Arguments
ArgumentRequiredDescription
logical Required The single condition to reverse. Must be an expression that evaluates to TRUE or FALSE — a comparison, logical function, cell reference containing a boolean, or a number where zero is FALSE and any non-zero number is TRUE. NOT accepts exactly one argument.
How it works
NOT evaluates its single argument, gets a TRUE or FALSE result, and returns the opposite. Zero evaluates as FALSE so NOT(0) returns TRUE. Any non-zero number evaluates as TRUE so NOT(5) returns FALSE. Error values such as #N/A or #DIV/0! are not TRUE or FALSE and will cause NOT to return #VALUE! — if the argument might produce an error, wrap it in IFERROR first. NOT is almost always used inside IF as the logical_test: =IF(NOT(ISBLANK(A2)),"Has entry","") shows a label whenever the cell has content. The equivalent using <> would be =IF(A2<>"","Has entry","") — both produce the same result. NOT is more natural when the inner test is an IS function because there is no single operator for the opposite. For arrays in Excel 365 and Google Sheets, NOT applied to a range returns an array of reversed booleans that FILTER uses as its include argument.
Examples
1
Identify which employees have a note filled in by checking whether the Notes column is not blank.
fx =NOT(ISBLANK(B2))
A B C
1 Employee Notes Has Note
2 Alice Excellent work =NOT(ISBLANK(B2))
3 Bob FALSE
4 Carol Needs improvement TRUE
5 Dan FALSE
6 Ella Good progress TRUE
7 Finn FALSE
Row 2: TRUE — B2 contains text so ISBLANK returns FALSE, and NOT reverses it to TRUE — Alice has a note on file.
Bob, Dan, and Finn have empty Notes cells. ISBLANK returns TRUE for those rows and NOT flips it to FALSE. The result reads naturally: NOT blank means there is content.
2
Show Active for any order whose status is not Cancelled, and Inactive only for Cancelled orders.
fx =IF(NOT(B2="Cancelled"),"Active","Inactive")
A B C
1 Order Status Label
2 ORD-001 Pending =IF(NOT(B2="Cancelled"),"Active","Inactive")
3 ORD-002 Cancelled Inactive
4 ORD-003 Complete Active
5 ORD-004 Cancelled Inactive
6 ORD-005 Pending Active
Row 2: Active — Pending is not Cancelled so NOT returns TRUE and IF outputs Active.
This formula is exactly equivalent to =IF(B2<>"Cancelled","Active","Inactive"). NOT is useful here when an exclusion reads more naturally than a direct inequality.
3
Flag pricing entries that are not numeric so they can be cleaned before analysis.
fx =NOT(ISNUMBER(B2))
A B C
1 Product Price Non-numeric
2 PRD-001 29.99 =NOT(ISNUMBER(B2))
3 PRD-002 N/A TRUE
4 PRD-003 89.50 FALSE
5 PRD-004 TBC TRUE
6 PRD-005 12.99 FALSE
Row 2: FALSE — B2 contains 29.99 which is a number so ISNUMBER returns TRUE and NOT flips it to FALSE — the price is numeric and needs no cleaning.
PRD-002 has the text N/A and PRD-004 has TBC — ISNUMBER returns FALSE for both, so NOT returns TRUE, flagging them for review. This is a standard data-quality audit pattern.
Common use cases
1. Find rows where a required field has been filled in before allowing the row to proceed in a workflow
=IF(NOT(ISBLANK(C2)),"Ready","Incomplete")
2. Exclude cancelled orders from an active-pipeline count by reversing the status check
=COUNTIF(B2:B100,"<>Cancelled")
3. Flag price cells that contain text rather than numbers for a data-quality audit column
=NOT(ISNUMBER(B2))
4. Filter a table to non-blank rows in Excel 365 or Google Sheets using FILTER with NOT
=FILTER(A2:C100,NOT(ISBLANK(A2:A100)))
5. Confirm a lookup succeeded rather than errored by reversing an ISERROR check
=NOT(ISERROR(VLOOKUP(A2,$D:$E,2,FALSE)))
Common errors
#VALUE! error
The argument to NOT is an error value such as #N/A or #DIV/0! rather than TRUE or FALSE. NOT cannot reverse an error.
Fix: Wrap the inner formula in IFERROR before passing it to NOT: NOT(IFERROR(formula,TRUE)) converts any error to TRUE which NOT then flips to FALSE, cleanly handling the failing case.
Formula always returns TRUE
The inner condition is always evaluating to FALSE so NOT is always flipping it to TRUE. The test may be the wrong way around.
Fix: Test the inner expression without NOT in a separate cell to confirm what it returns for sample rows before wrapping it in NOT.
NOT behaves unexpectedly with quoted text
Passing text like NOT("FALSE") does not evaluate the word FALSE as a boolean — quoted text is a string, not the boolean value.
Fix: Remove the quotes: NOT(FALSE) uses the actual boolean. To test a cell, use NOT(A1=FALSE) or NOT(A1="some text") depending on what the cell contains.
Tips and variations
Use NOT(ISBLANK) as the standard has-content check
NOT(ISBLANK(A2)) is the clearest way to express this cell has something in it — more readable than A2<>"" in formulas shared with others. It is the pattern I use in every data-quality check column.
=IF(NOT(ISBLANK(A2)),"Filled","Empty")
Combine NOT with AND or OR to invert compound conditions
NOT(AND(A1>0,B1>0)) returns TRUE when at least one inner value is not positive. This is De Morgan's law applied to spreadsheet logic and is handy when the inverted form of a compound condition reads more clearly than the direct negative comparison.
=NOT(AND(B2>0,C2>0))
Use NOT in FILTER to exclude a condition across a whole column
In Excel 365 and Google Sheets, pass NOT around a range-based condition as the FILTER include argument. This is the cleanest way to show all rows that do not match a specific value without adding a helper column.
=FILTER(A2:C100,NOT(B2:B100="Cancelled"))
Excel vs Google Sheets
Excel vs Google Sheets
NOT works identically in Excel 2003 and newer and every version of Google Sheets. The single-argument syntax and boolean-reversal behaviour are the same in both applications. The array behaviour used in FILTER formulas is consistent across Excel 365 and modern Google Sheets.
Related reading
Frequently asked questions
NOT reverses a logical value — it returns FALSE when the argument is TRUE, and TRUE when the argument is FALSE or zero. It is used to express exclusion conditions cleanly, such as NOT(ISBLANK(A1)) for has content, or NOT(ISNUMBER(A1)) for non-numeric, where there is no single operator that expresses the opposite directly.
They produce identical results. NOT(A1="Cancelled") evaluates the equality first then reverses the boolean. A1<>"Cancelled" tests inequality directly. Both are interchangeable. NOT is useful when the inner condition is a function call like ISBLANK or ISNUMBER where there is no operator equivalent for the negative.
No. NOT accepts exactly one argument. To reverse a compound test, wrap AND or OR inside NOT: NOT(AND(A1>0,B1>0)) returns TRUE when at least one value is not positive, equivalent to OR(A1<=0,B1<=0).
Use NOT when it makes the formula's intent clearer than the equivalent operator. NOT(ISBLANK(A1)) communicates has content more explicitly than A1<>"". NOT(ISNUMBER(A1)) is clearer than searching for an ISTEXT equivalent. For simple equality checks, the <> operator is usually more compact.
Yes. NOT applied to a range reverses each element, returning an array of the same size. This is useful in FILTER formulas: =FILTER(A2:A100,NOT(ISBLANK(A2:A100))) returns only non-blank rows. The array behaviour is consistent in both Excel 365 and modern Google Sheets.