Bird
Raised Fist0
Excelspreadsheet~15 mins

MATCH function in Excel - Deep Dive

Choose your learning style10 modes available
Overview - MATCH function
What is it?
The MATCH function in Excel helps you find the position of a specific value within a range of cells. Instead of returning the value itself, it tells you where that value is located by giving its relative position number. This is useful when you want to know the order or place of an item in a list without searching manually.
Why it matters
Without the MATCH function, finding the position of a value in a list would require manual searching or complex formulas. MATCH saves time and reduces errors by quickly locating items, which is essential for organizing data, creating dynamic formulas, and automating tasks. It makes spreadsheets smarter and more interactive.
Where it fits
Before learning MATCH, you should understand basic Excel formulas and how ranges work. After MATCH, you can learn how to combine it with other functions like INDEX for powerful lookups, or use it in conditional formulas and data validation.
Mental Model
Core Idea
MATCH tells you the position number of a value inside a list or range, like counting steps until you find it.
Think of it like...
Imagine a bookshelf with numbered slots. MATCH is like asking, 'In which slot is my favorite book?' Instead of giving you the book, it tells you the slot number where the book sits.
List: [Apple, Banana, Cherry, Date, Elderberry]
Value to find: Cherry
MATCH result: 3 (because Cherry is the third item in the list)
Build-Up - 7 Steps
1
FoundationBasic MATCH usage with exact match
šŸ¤”
Concept: Learn how to find the exact position of a value in a list using MATCH with exact match mode.
Syntax: MATCH(lookup_value, lookup_array, 0) - lookup_value: the value you want to find. - lookup_array: the range or list where you search. - 0 means exact match only. Example: =MATCH("Banana", A1:A5, 0) If A1:A5 contains [Apple, Banana, Cherry, Date, Elderberry], this returns 2.
Result
Returns 2 because Banana is the second item in the list.
Understanding exact match mode is key because it finds the precise value's position, which is the most common use case.
2
FoundationUnderstanding lookup_array and relative position
šŸ¤”
Concept: Learn that MATCH returns the position relative to the start of the lookup_array, not the cell address.
If your lookup_array is B2:B6, and the value is in B4, MATCH returns 3 because B4 is the third cell in that range. Example: =MATCH(50, B2:B6, 0) If B2:B6 = [10, 50, 30, 40, 20], result is 2 because 50 is second in the range.
Result
Returns 2, the relative position inside the range, not the absolute row number.
Knowing MATCH returns relative position helps avoid confusion when combining with other functions like INDEX.
3
IntermediateUsing MATCH with approximate match
šŸ¤”Before reading on: Do you think MATCH with approximate match finds the closest smaller or larger value? Commit to your answer.
Concept: Learn how MATCH can find the closest match when exact value is missing, using approximate match mode (1 or -1).
Syntax: MATCH(lookup_value, lookup_array, 1) or MATCH(lookup_value, lookup_array, -1) - 1 finds largest value less than or equal to lookup_value; list must be sorted ascending. - -1 finds smallest value greater than or equal to lookup_value; list must be sorted descending. Example: =MATCH(35, A1:A5, 1) If A1:A5 = [10, 20, 30, 40, 50], returns 3 because 30 is largest <= 35.
Result
Returns 3, the position of 30, the closest smaller value to 35.
Understanding approximate match unlocks powerful uses like range lookups and grading scales.
4
IntermediateMATCH with text and wildcards
šŸ¤”Before reading on: Can MATCH find partial text matches using wildcards? Commit to yes or no.
Concept: Learn how MATCH can find text values using wildcards like * and ? for flexible matching.
Use wildcards in lookup_value with exact match mode (0). - * matches any number of characters. - ? matches exactly one character. Example: =MATCH("B*", A1:A5, 0) If A1:A5 = [Apple, Banana, Cherry, Date, Elderberry], returns 2 because Banana matches B*.
Result
Returns 2, position of Banana which matches the pattern.
Using wildcards with MATCH allows searching for patterns, not just exact values.
5
IntermediateCombining MATCH with INDEX for lookups
šŸ¤”
Concept: Learn how MATCH works with INDEX to find and return values dynamically.
INDEX returns a value at a position; MATCH finds that position. Example: =INDEX(B1:B5, MATCH("Cherry", A1:A5, 0)) If A1:A5 = [Apple, Banana, Cherry, Date, Elderberry] and B1:B5 = [100, 200, 300, 400, 500], this returns 300. MATCH finds Cherry at position 3; INDEX returns 3rd value in B1:B5.
Result
Returns 300, the value paired with Cherry.
Combining MATCH and INDEX creates powerful dynamic lookups without needing VLOOKUP.
6
AdvancedUsing MATCH for two-way lookups
šŸ¤”Before reading on: Can MATCH be used to find both row and column positions for a value? Commit to yes or no.
Concept: Learn how to use MATCH twice to find row and column positions for a value in a table.
Example: To find the value at intersection of 'Banana' in A1:A5 and 'Price' in B1:E1: =INDEX(B2:E5, MATCH("Banana", A2:A5, 0), MATCH("Price", B1:E1, 0)) MATCH finds row and column numbers; INDEX returns the intersecting value.
Result
Returns the value at the intersection of Banana row and Price column.
Using MATCH for both dimensions enables flexible table lookups beyond simple lists.
7
ExpertMATCH with dynamic arrays and spill ranges
šŸ¤”Before reading on: Does MATCH support dynamic arrays and spill ranges in modern Excel? Commit to yes or no.
Concept: Learn how MATCH behaves with dynamic arrays and how it can be combined with new Excel functions for advanced formulas.
In Excel with dynamic arrays, MATCH can work with spill ranges (formulas that output multiple values). Example: =MATCH(5, SORT(A1:A10), 0) MATCH finds position in the sorted spill range. You can also combine with FILTER or UNIQUE for complex lookups.
Result
Returns the position of 5 in the sorted list dynamically generated by SORT.
Understanding MATCH with dynamic arrays unlocks modern, efficient spreadsheet designs.
Under the Hood
MATCH scans the lookup_array from start to end (or end to start for -1 mode) comparing each item to the lookup_value. For exact match (0), it stops when it finds the first exact match. For approximate match (1 or -1), it relies on the list being sorted and uses a binary search-like method internally for speed, returning the closest match according to the mode.
Why designed this way?
MATCH was designed to provide a fast, simple way to find positions without returning values, enabling flexible formulas. The choice of match types balances ease of use (exact match) with powerful approximate lookups needed for ranges and thresholds. Sorting requirements for approximate match ensure predictable results and efficient searching.
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│ lookup_value  │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
       │
       ā–¼
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│ lookup_array (list/range)   │
│ ā”Œā”€ā”€ā”€ā”€ā”€ā” ā”Œā”€ā”€ā”€ā”€ā”€ā” ā”Œā”€ā”€ā”€ā”€ā”€ā”     │
│ │ val │ │ val │ │ val │ ... │
│ ā””ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”˜ ā””ā”€ā”€ā”€ā”€ā”€ā”˜     │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”¬ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
       │
       ā–¼
ā”Œā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”
│ MATCH compares values        │
│ Stops when match found       │
│ Returns relative position   │
ā””ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”€ā”˜
Myth Busters - 4 Common Misconceptions
Quick: Does MATCH always return the cell address of the found value? Commit yes or no.
Common Belief:MATCH returns the actual cell address or reference of the found value.
Tap to reveal reality
Reality:MATCH returns the relative position number within the lookup_array, not the cell address.
Why it matters:Confusing position with address leads to errors when combining MATCH with other functions expecting positions.
Quick: Can MATCH with approximate match work on unsorted lists? Commit yes or no.
Common Belief:MATCH approximate match works correctly on any list, sorted or not.
Tap to reveal reality
Reality:Approximate match requires the lookup_array to be sorted ascending (for 1) or descending (for -1) to work correctly.
Why it matters:Using approximate match on unsorted data causes wrong or unpredictable results, leading to wrong decisions.
Quick: Does MATCH with wildcards work with approximate match mode? Commit yes or no.
Common Belief:MATCH wildcards can be used with approximate match modes (1 or -1).
Tap to reveal reality
Reality:Wildcards only work with exact match mode (0). Approximate match ignores wildcards.
Why it matters:Trying to use wildcards with approximate match causes formulas to fail or return wrong positions.
Quick: Does MATCH return the first or last occurrence when duplicates exist? Commit first or last.
Common Belief:MATCH returns the last occurrence of a value if duplicates exist.
Tap to reveal reality
Reality:MATCH always returns the position of the first occurrence of the lookup_value.
Why it matters:Expecting the last occurrence can cause wrong data retrieval or logic errors in reports.
Expert Zone
1
MATCH's approximate match uses a binary search internally, making it very fast on large sorted lists compared to scanning each item.
2
When combining MATCH with INDEX, the relative position returned by MATCH must align exactly with the INDEX range to avoid off-by-one errors.
3
MATCH can be combined with array formulas and newer dynamic array functions to create powerful, flexible lookup solutions that adapt to changing data.
When NOT to use
MATCH is not suitable when you need to return the actual value directly; use XLOOKUP or INDEX/MATCH instead. Also, avoid approximate match on unsorted data; use FILTER or other lookup functions for complex criteria.
Production Patterns
Professionals use MATCH combined with INDEX for two-way lookups in dashboards, dynamic reports, and data validation. MATCH is also used in conditional formatting formulas to highlight rows or columns based on position. Advanced users embed MATCH inside LET functions for readability and performance.
Connections
INDEX function
MATCH provides position input to INDEX to retrieve values dynamically.
Understanding MATCH's position output is essential to use INDEX effectively for flexible lookups.
Binary search algorithm
MATCH approximate match mode uses a binary search-like method internally for efficiency.
Knowing MATCH relies on sorted data and binary search explains why sorting is critical for approximate match.
Library cataloging systems
Both MATCH and cataloging systems locate items by position or code rather than content itself.
Recognizing that MATCH finds 'where' something is, not 'what' it is, parallels how libraries organize books by shelf position.
Common Pitfalls
#1Using approximate match on unsorted data causes wrong results.
Wrong approach:=MATCH(35, A1:A5, 1) where A1:A5 = [40, 10, 50, 20, 30]
Correct approach:=MATCH(35, SORT(A1:A5), 1)
Root cause:Approximate match requires sorted data; unsorted data breaks the search logic.
#2Expecting MATCH to return cell address instead of position.
Wrong approach:Using MATCH result directly as a cell reference like =MATCH("Banana", A1:A5, 0) + 1 to get cell B2 (wrong).
Correct approach:Use INDEX with MATCH: =INDEX(B1:B5, MATCH("Banana", A1:A5, 0))
Root cause:Confusing position number with actual cell reference.
#3Using wildcards with approximate match mode.
Wrong approach:=MATCH("B*", A1:A5, 1)
Correct approach:=MATCH("B*", A1:A5, 0)
Root cause:Wildcards only work with exact match mode.
Key Takeaways
MATCH finds the position of a value in a list, not the value itself or its cell address.
Exact match mode (0) finds the precise value; approximate match (1 or -1) finds closest matches but requires sorted data.
MATCH works well with wildcards for flexible text searches but only in exact match mode.
Combining MATCH with INDEX enables powerful dynamic lookups beyond simple searches.
Understanding MATCH's behavior with dynamic arrays and sorting is key for advanced, efficient spreadsheet formulas.

Practice

(1/5)
1. What does the MATCH function do in Excel?
easy
A. Adds numbers in a range
B. Sorts data alphabetically
C. Finds the position of a value in a list or range
D. Deletes duplicate values

Solution

  1. Step 1: Understand the purpose of MATCH

    The MATCH function searches for a value in a range and returns its position number.
  2. Step 2: Compare with other options

    Options A, C, and D describe different functions (SUM, SORT, Remove Duplicates), not MATCH.
  3. Final Answer:

    Finds the position of a value in a list or range -> Option C
  4. Quick Check:

    MATCH locates position [OK]
Hint: MATCH returns position, not the value itself [OK]
Common Mistakes:
  • Confusing MATCH with SUM or LOOKUP
  • Thinking MATCH returns the value found
  • Assuming MATCH sorts data
2. Which of these is the correct syntax for the MATCH function to find an exact match?
easy
A. MATCH(range, value, 1)
B. MATCH(value, range, 0)
C. MATCH(value, range)
D. MATCH(range, value, -1)

Solution

  1. Step 1: Recall MATCH syntax

    The correct syntax is MATCH(lookup_value, lookup_array, match_type). For exact match, match_type is 0.
  2. Step 2: Check options

    MATCH(value, range, 0) uses correct order and match_type 0. Others have wrong order or missing match_type.
  3. Final Answer:

    MATCH(value, range, 0) -> Option B
  4. Quick Check:

    Exact match uses 0 as third argument [OK]
Hint: Exact match always uses 0 as third argument [OK]
Common Mistakes:
  • Swapping value and range arguments
  • Omitting the match_type argument
  • Using 1 or -1 for exact match
3. Given the list {10, 20, 30, 40, 50} in cells A1:A5, what is the result of =MATCH(30, A1:A5, 0)?
medium
A. 3
B. 2
C. 30
D. Error

Solution

  1. Step 1: Identify the position of 30 in the list

    The list is 10 (pos 1), 20 (pos 2), 30 (pos 3), 40 (pos 4), 50 (pos 5). 30 is at position 3.
  2. Step 2: Understand MATCH with exact match

    MATCH returns the position number, so it returns 3.
  3. Final Answer:

    3 -> Option A
  4. Quick Check:

    Position of 30 in list = 3 [OK]
Hint: MATCH returns position, not the value itself [OK]
Common Mistakes:
  • Returning the value 30 instead of position
  • Confusing position with index starting at 0
  • Getting error due to wrong match_type
4. What is wrong with this formula: =MATCH(25, A1:A5, 0) if A1:A5 contains {10, 20, 30, 40, 50}?
medium
A. No error, returns 3
B. Syntax error due to missing parentheses
C. Returns 2 because 20 is closest
D. Returns #N/A because 25 is not found

Solution

  1. Step 1: Check if 25 exists in the list

    The list has 10, 20, 30, 40, 50. 25 is not present.
  2. Step 2: Understand MATCH with exact match

    With match_type 0, if value not found, MATCH returns #N/A error.
  3. Final Answer:

    Returns #N/A because 25 is not found -> Option D
  4. Quick Check:

    Exact match missing value returns #N/A [OK]
Hint: Exact match returns #N/A if value missing [OK]
Common Mistakes:
  • Assuming MATCH returns closest value position
  • Thinking MATCH returns syntax error
  • Ignoring #N/A error handling
5. You have a sorted list of prices in A1:A10. Which MATCH formula finds the position of the largest price less than or equal to 75?
hard
A. MATCH(75, A1:A10, 1)
B. MATCH(75, A1:A10, 0)
C. MATCH(75, A1:A10, -1)
D. MATCH(A1:A10, 75, 1)

Solution

  1. Step 1: Understand match_type for approximate match

    match_type 1 finds largest value less than or equal to lookup_value in ascending sorted list.
  2. Step 2: Check options for correct match_type

    MATCH(75, A1:A10, 1) uses 1, correct for this case. MATCH(75, A1:A10, -1) is for descending order, MATCH(75, A1:A10, 0) is exact match, MATCH(A1:A10, 75, 1) has wrong argument order.
  3. Final Answer:

    MATCH(75, A1:A10, 1) -> Option A
  4. Quick Check:

    Approximate match ascending uses 1 [OK]
Hint: Use 1 for largest value ≤ lookup in ascending list [OK]
Common Mistakes:
  • Using 0 for approximate match
  • Using -1 for ascending sorted list
  • Omitting match_type argument
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard