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.