Excel Return All Values That MATCH Criteria

This guide treats “excel return all values that match criteria” the way busy spreadsheet users actually want it: answer first, a live tool to prove it on your own data, then the reasoning. It is written for Excel but calls out every place Google Sheets differs, and the platform toggle at the top switches all shortcuts between Windows and Mac so nothing here assumes the keyboard you are not on.

Exact answer

In Excel: use =MATCH(lookup_value, lookup_array, 0) — it returns the POSITION of a value in a row or column, not the value itself; match_type 0 forces an exact match, while the default 1 assumes ascending data and returns an approximate match.

On this page8

Syntax

=MATCH(lookup_value, lookup_array, [match_type])

Arguments

Argumentrequired / optionalDescription
lookup_valuerequiredThe value to find.
lookup_arrayrequiredA single row or column to search. MATCH returns a position within it, not a value.
match_typeoptional0 exact (use this), 1 largest value ≤ lookup_value on ascending data (the default), -1 smallest value ≥ lookup_value on descending data.

Related functions

INDEX/MATCHXLOOKUPVLOOKUP
ƒxCompare Two ListsLive
Values in both lists
2

Only in A: 2 · Only in B: 1

=COUNTIF(B:B,A2)>0
Ctrl+CthenCtrl+Shift+V+Cthen+Ctrl+VPaste values · WindowsMac

What this does

MATCH answers "where is this?" rather than "what is this?". Given a value and a single row or column, it returns the ordinal position of the first match — 1 for the first cell of the range, 3 for the third, and #N/A when nothing matches. That position is rarely the final answer, which is why MATCH almost always feeds another function: INDEX to return a value from that position, VLOOKUP as its col_index_num so the formula survives inserted columns, or a comparison to test whether a value exists at all. The optional third argument is the trap: omitted, it defaults to 1, which assumes the data is sorted ascending and quietly returns the wrong position when it is not. Type 0 explicitly, every time. Most people learn this as a sequence of clicks and forget it by next week; learning it as a pattern instead is what lets you apply it to the next, slightly different version of the problem without starting from scratch. That is the difference this page is trying to make. Treat “excel return all values that match criteria” as a small repeatable workflow rather than a one-off click you hope to remember next time. Use a small test block before the live file, so any surprise in the affected cells shows up while it is still harmless. When a formula is involved, keep the inputs labelled beside it, reference cells instead of typing values, and apply number formatting only after the result checks out. That turns a data step that keeps your analysis trustworthy into a method you can reuse, explain, and defend when the workbook leaves your screen.

A worked example

Month names sit in A2:A13. =MATCH("Apr", A2:A13, 0) returns 4, because April is the fourth cell of that range — not row 4 of the sheet. Combined with INDEX to fetch the matching revenue from B2:B13: =INDEX(B2:B13, MATCH("Apr", A2:A13, 0)) returns 41,200. To test existence rather than fetch a value, wrap it: =IF(ISNUMBER(MATCH(E2, A2:A13, 0)), "found", "not in list"). MATCH is the position engine behind flexible lookups: it is what lets INDEX fetch from any column, what stops VLOOKUP breaking when someone inserts a column, and the cheapest way to ask whether a value exists in a list at all. One habit worth forming early: name the cells that hold your inputs, so the formula reads in plain language instead of a string of cell addresses. A reviewer — or you in three months — can then follow the logic without decoding what B7 and D2 were supposed to mean, which is most of what makes a sheet maintainable.

In Google Sheets

Everything above works in Google Sheets too. Excel and Sheets share the formula syntax used here; only the surrounding menus are arranged differently. That portability is deliberate — learn it once and it follows you between the two tools and across Windows and Mac. The aim was to get you unstuck fast and leave you a little more capable than a copy-paste would. The answer is at the top, the tool proves it, and the detail above shows why it holds — so the next time a colleague asks, you can answer without reaching for search. Treat “excel return all values that match criteria” as a small building block rather than a chore. Once the inputs sit in their own cells and the formula reads from them, the same setup answers a dozen related questions with a tweak, and Excel keeps every dependent figure current as the data changes. The tool above is there so you can rehearse and verify before committing anything to a real workbook; the steps and worked example are there so the logic sticks. Get it right once and it stops costing you time — it starts saving it, every time the question comes back around.

Common mistakes

  • Omitting the third argument, so match_type defaults to 1 and returns a plausible but wrong position on unsorted data.
  • Reading the result as a sheet row number — it is a position within the selected range, so a range starting at A2 returns 1 for row 2.
  • Passing a two-dimensional range as lookup_array; MATCH takes one row or one column only.
  • Comparing a number against a column where the numbers are stored as text, which returns #N/A even though the values look identical.
  • Leaving the range relative so it drifts when the formula is filled down.

Frequently asked questions

What does the MATCH function do in Excel?

It returns the position of a value within a single row or column — 1 for the first cell of the range, 2 for the second, and #N/A if the value is not there. It does not return the value itself.

Why does MATCH return the wrong number?

Almost always because match_type was omitted. The default is 1, which expects ascending data and returns the last value less than or equal to yours. Add 0 as the third argument to force an exact match.

What is the difference between MATCH and VLOOKUP?

VLOOKUP returns a value; MATCH returns a position. They are often used together: =VLOOKUP(E2, A:D, MATCH("Price", A1:D1, 0), FALSE) keeps working when a column is inserted, because the column number is looked up rather than hard-coded.

Can MATCH search on two criteria?

Yes, in Microsoft 365: =MATCH(1, (A2:A100="North")*(B2:B100="Q3"), 0) multiplies the two conditions and finds the first row where both are TRUE. In older versions, enter it with Ctrl+Shift+Enter.

Other ways people ask this

On the way here you may have searched this as “excel find all values that match criteria”, “excel return all values that match”, “excel return list of values based on criteria” and “return all values that match criteria - excel” — it is all the same task, and this page is the single, complete answer to it.

Why do people search for this in so many different ways?

Because the same task has many names. “excel find all values that match criteria”, “excel return all values that match”, “excel return list of values based on criteria” all point at the one operation explained on this page, which is why they all lead here.