Bird
Raised Fist0
Google Sheetsspreadsheet~15 mins

REGEXMATCH and REGEXEXTRACT in Google Sheets - Real Business Scenario

Choose your learning style10 modes available
Scenario Mode
👤 Your Role: You are a customer support analyst at an online store.
📋 Request: Your manager wants you to identify orders that include a specific product code pattern and extract the product code from the order descriptions.
📊 Data: You have a list of order descriptions. Each description may contain a product code in the format 'PROD' followed by 3 digits, like PROD123.
🎯 Deliverable: Create a new column that shows TRUE if the order description contains a product code and another column that extracts the product code from the description.
Progress0 / 3 steps
Sample Data
Order IDOrder Description
1001Customer bought PROD123 and PROD456
1002Order includes item PROD789
1003No product code here
1004Special offer on PROD234
1005Multiple items: PROD111, PROD222
1006Just a regular order
1
Step 1: Create a new column named 'Has Product Code' next to the 'Order Description' column.
In cell C2, enter the formula: =REGEXMATCH(B2, "PROD\\d{3}")
Expected Result
TRUE for rows 2, 3, 5, 6, and FALSE for rows 4 and 7 based on sample data.
2
Step 2: Create another column named 'Extracted Product Code' next to 'Has Product Code'.
In cell D2, enter the formula: =IFERROR(REGEXEXTRACT(B2, "PROD\\d{3}"),"")
Expected Result
Extracts 'PROD123' for row 2, 'PROD789' for row 3, 'PROD234' for row 4, 'PROD111' for row 5, and blank for rows without a product code.
3
Step 3: Copy the formulas in C2 and D2 down to all rows of your data.
Drag the fill handle from C2 and D2 down to row 7.
Expected Result
All rows show TRUE/FALSE in 'Has Product Code' and the first product code found in 'Extracted Product Code' or blank if none.
Final Result
Order ID | Order Description                 | Has Product Code | Extracted Product Code
-----------------------------------------------------------------------------------------
1001     | Customer bought PROD123 and PROD456 | TRUE            | PROD123
1002     | Order includes item PROD789         | TRUE            | PROD789
1003     | No product code here                 | FALSE           | 
1004     | Special offer on PROD234             | TRUE            | PROD234
1005     | Multiple items: PROD111, PROD222    | TRUE            | PROD111
1006     | Just a regular order                 | FALSE           | 
✓Rows with product codes show TRUE in 'Has Product Code'.
✓The first product code in each description is extracted correctly.
✓Rows without product codes show FALSE and blank extraction.
Bonus Challenge

Modify the extraction formula to extract all product codes from each order description separated by commas.

Show Hint
Use REGEXEXTRACT combined with TEXTJOIN and ARRAYFORMULA to capture multiple matches.

Practice

(1/5)
1. What does the formula =REGEXMATCH("apple123", "\d+") return in Google Sheets?
easy
A. TRUE
B. FALSE
C. apple123
D. Error

Solution

  1. Step 1: Understand REGEXMATCH function

    REGEXMATCH checks if the text contains a pattern and returns TRUE or FALSE.
  2. Step 2: Analyze the pattern "\d+" on "apple123"

    "\d+" means one or more digits. "apple123" contains digits "123", so it matches.
  3. Final Answer:

    TRUE -> Option A
  4. Quick Check:

    Digits found = TRUE [OK]
Hint: REGEXMATCH returns TRUE if pattern exists anywhere in text [OK]
Common Mistakes:
  • Thinking REGEXMATCH extracts text instead of TRUE/FALSE
  • Confusing \d+ with matching letters
  • Expecting the whole text to match pattern
2. Which of these formulas correctly extracts the first sequence of digits from cell A1 using REGEXEXTRACT?
easy
A. =REGEXMATCH(A1, "\d+")
B. =REGEXEXTRACT(A1, "[a-zA-Z]+")
C. =REGEXEXTRACT(A1, "\w+")
D. =REGEXEXTRACT(A1, "\d+")

Solution

  1. Step 1: Identify the goal - extract digits

    We want to extract digits, so the pattern should match digits: "\d+".
  2. Step 2: Check each option

    =REGEXEXTRACT(A1, "\d+") uses REGEXEXTRACT with "\d+" which extracts digits correctly. Others extract letters or use REGEXMATCH which returns TRUE/FALSE.
  3. Final Answer:

    =REGEXEXTRACT(A1, "\d+") -> Option D
  4. Quick Check:

    Digits extraction = =REGEXEXTRACT(A1, "\d+") [OK]
Hint: Use \d+ inside REGEXEXTRACT to get digits [OK]
Common Mistakes:
  • Using REGEXMATCH instead of REGEXEXTRACT to get text
  • Using letter patterns when digits are needed
  • Wrong pattern syntax like missing escape \
3. Given cell A1 contains "Order #12345: shipped", what is the result of =REGEXEXTRACT(A1, "#(\d+)")?
medium
A. Order
B. #12345
C. 12345
D. Error

Solution

  1. Step 1: Understand the pattern "#(\d+)"

    The pattern looks for a '#' followed by digits. The parentheses capture only the digits.
  2. Step 2: Apply REGEXEXTRACT on "Order #12345: shipped"

    The formula extracts the digits after '#', which is "12345".
  3. Final Answer:

    12345 -> Option C
  4. Quick Check:

    Captured digits after # = 12345 [OK]
Hint: Parentheses capture only the part you want extracted [OK]
Common Mistakes:
  • Expecting the # symbol to be included in output
  • Not using parentheses to capture group
  • Confusing REGEXMATCH output with REGEXEXTRACT
4. Why does the formula =REGEXEXTRACT("abc123", "[0-9]") return only "1" instead of "123"? How to fix it?
medium
A. REGEXEXTRACT cannot extract digits; use REGEXMATCH instead
B. Pattern matches only one digit; use "[0-9]+" to match all digits
C. Formula syntax is wrong; remove quotes around pattern
D. The text "abc123" has no digits; change text input

Solution

  1. Step 1: Analyze the pattern "[0-9]"

    This pattern matches exactly one digit character, so REGEXEXTRACT returns only the first digit "1".
  2. Step 2: Fix pattern to match all digits

    Adding + quantifier as "[0-9]+" matches one or more digits, extracting "123".
  3. Final Answer:

    Pattern matches only one digit; use "[0-9]+" to match all digits -> Option B
  4. Quick Check:

    Use + to match multiple characters [OK]
Hint: Add + to match multiple characters, not just one [OK]
Common Mistakes:
  • Using REGEXMATCH instead of REGEXEXTRACT to get text
  • Removing quotes around pattern causing syntax error
  • Assuming pattern matches all digits without +
5. You have a list of emails in column A. Which formula extracts the username (text before @) from cell A2, assuming usernames can have letters, digits, dots, and underscores?
hard
A. =REGEXEXTRACT(A2, "^[\w\.]+")
B. =REGEXEXTRACT(A2, "@.+")
C. =REGEXMATCH(A2, "^[\w\.]+@")
D. =REGEXEXTRACT(A2, "[a-z]+")

Solution

  1. Step 1: Understand the username pattern

    Usernames include letters, digits, dots (.), and underscores (_). The pattern "[\w\.]" matches letters, digits, underscores (\w) and dots (\.).
  2. Step 2: Use REGEXEXTRACT with pattern "^[\w\.]+"

    The ^ anchors to start of text, and + matches one or more allowed characters before @. This extracts the username correctly.
  3. Final Answer:

    =REGEXEXTRACT(A2, "^[\w\.]+") -> Option A
  4. Quick Check:

    Extract username before @ with ^ and character class [OK]
Hint: Use ^ to anchor start and [\w\.] to match username chars [OK]
Common Mistakes:
  • Extracting text after @ instead of before
  • Using REGEXMATCH which returns TRUE/FALSE, not text
  • Not escaping dot or missing underscore in pattern
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