What Most People Miss About Does Not Include Excel

No, Excel doesn’t have a built-in does not include function. But that doesn’t mean you can’t test for absence — it just means you have to flip the logic.

Quick Answer

Excel has no does not include operator or function. You simulate it by combining ISERROR(SEARCH()), NOT(COUNTIFS()), or FILTER() with logical negation — and yes, it works reliably if you avoid the #VALUE! trap in SEARCH.

All the Methods

Method Steps Best For Limitations
ISERROR + SEARCH =ISERROR(SEARCH("text",A2)) Single-cell text exclusion (case-insensitive) Fails on #VALUE! if A2 is blank or numeric
NOT + COUNTIFS =NOT(COUNTIFS(A2:A20,"*text*")) Checking if *any* cell in range contains text Slow on >10k rows; wildcard-only, no regex
FILTER + ISERROR =FILTER(A2:C20,ISERROR(SEARCH("Corp",B2:B20))) Dynamic array exclusion (Excel 365/2021) Spills — won’t work in older Excel versions
XLOOKUP with NOT =NOT(ISNUMBER(XLOOKUP("*text*",A2:A20,A2:A20,,2))) Exact match + partial text check in one formula XLOOKUP wildcard search only works with match_mode = 2
Power Query Text.Contains + NOT Add Column → Custom Column → not Text.Contains([Company], "LLC") Large datasets, reusable transformations Requires refresh; no real-time recalc

Method 1 Deep Dive

Use ISERROR(SEARCH()) when you need to flag cells that do not include a substring — like excluding vendors with "Inc" in their name.

Here’s what’s in A1:C7:

ID Company Revenue
101 Acme Corp $45,200
102 Beta Inc $32,800
103 Delta LLC $61,400
104 Gamma Partners $29,100
105 Omega Inc $53,700

In D2, enter:
=ISERROR(SEARCH("Inc",B2))

This returns TRUE if "Inc" is *not found*. Drag down to D7. You’ll see TRUE for Acme Corp, Delta LLC, Gamma Partners — and FALSE for Beta Inc and Omega Inc.

Surprising tip: Wrap it in IF for clarity: =IF(ISERROR(SEARCH("Inc",B2)),"Exclude","Keep"). But don’t skip the error check — if B2 is blank or numeric, SEARCH throws #VALUE!, and ISERROR catches it cleanly.

Keyboard shortcut: To quickly select the entire column of results (D2:D7), click D2 then press Ctrl+Shift+Down.

Method 2 Deep Dive

Use NOT(COUNTIFS()) when your goal is binary: “Does *any* cell in this range include X?” — like confirming a report excludes all entries tagged "Draft".

Assume E1:E12 holds status labels:

  • E1: Approved
  • E2: Pending
  • E3: Draft
  • E4: Final
  • E5: Draft
  • E6: Reviewed
  • E7: Draft
  • E8: Approved
  • E9: Pending
  • E10: Final
  • E11: Draft
  • E12: Archived

In F1, type:
=NOT(COUNTIFS(E1:E12,"*Draft*"))

This returns FALSE — because “Draft” appears 4 times. Change one “Draft” to “Sent”, and it flips to TRUE.

Why *Draft*? Wildcards let you catch “Draft v2”, “Re-Draft”, etc. But be warned: COUNTIFS is case-insensitive and *only* supports * and ?. No regex. No lookahead.

If you want to exclude *rows where column E includes “Draft”*, pair this with FILTER:
=FILTER(A1:C12,NOT(COUNTIFS(E1:E12,"*Draft*"))) — nope, that’s wrong. That checks the *entire range* once. To filter row-by-row, use:
=FILTER(A1:C12,ISERROR(SEARCH("Draft",E1:E12))).

That’s the counterintuitive part: COUNTIFS answers “is it anywhere?”, but row-level exclusion needs element-wise logic — so go back to SEARCH.

Cheat Sheet

Goal Formula Shortcut / Tip
Cell does NOT contain "test" =ISERROR(SEARCH("test",A1)) Alt+M, V to toggle formula view
Filter rows where B2:B20 does NOT include "LLC" =FILTER(A2:C20,ISERROR(SEARCH("LLC",B2:B20))) Press Ctrl+Shift+Enter only in pre-365 Excel (not needed now)
Count entries that do NOT include "Jan" in C2:C100 =SUMPRODUCT(--ISERROR(SEARCH("Jan",C2:C100))) SUMPRODUCT handles arrays natively — no Ctrl+Shift+Enter
Highlight cells NOT containing "@alibaba.com" Conditional Formatting → New Rule → Use formula:
=ISERROR(SEARCH("@alibaba.com",A1))
Apply to A1:A1000 — relative reference matters
Rachel Torres

Rachel Torres

Rachel coaches teams on email management and digital communication best practices. She has trained over 5