How to Extract Structured Lists from Text with AI in Google Sheets
BackGuides

How to Extract Structured Lists from Text with AI in Google Sheets

Phil
Phil
6 min read

You have 500 customer reviews in column A. You need to pull out the top complaint from each one, categorize it, and put the results into separate cells you can filter and sort. With =AITEXT(), you would get a block of text back in one cell. That is useful, but it is not structured.

=AILIST() and =AILISTH() fix this. Instead of returning one blob of text, they split the AI's response into individual cells. One item per cell, spread vertically or horizontally. The output is already structured. No parsing, no =SPLIT(), no regex.


AILIST vs AILISTH: vertical and horizontal

The two formulas do the same thing. They generate a list from a prompt. But they spread the results in different directions.

Formula
=AILIST("List the 5 most common complaints in this batch of reviews:", A2)

Returns 5 items vertically, one per cell, spreading downward from the formula cell.

Formula
=AILISTH("List the 5 most common complaints in this batch of reviews:", A2)

Returns 5 items horizontally, spreading across columns in a single row.

When to use which:

FormulaDirectionBest for
=AILIST()Vertical (down)Lists you want to filter, sort, or process further in a column
=AILISTH()Horizontal (across)Headers, categories, or data that belongs in a single row

Extracting structured data from unstructured text

This is the main use case. You have messy, unstructured text and you need clean, structured fields out of it.

Customer reviews to categorized insights

You have reviews in column A. You want each review broken into three parts: sentiment, main topic, and a one-line summary. Each one goes in its own cell.

Formula
=AILISTH("Analyze this customer review. Return exactly 3 items: 1) Sentiment (Positive/Neutral/Negative), 2) Main topic in 2-3 words, 3) One-sentence summary. No labels, just the values.", A2)

Returns 3 values horizontally in B2, C2, and D2. Each review gets its own row of structured data.

What A2 might contain:

"Loved the app but the onboarding was confusing. Took me 20 minutes to figure out where to find my API key. Once I got past that, everything worked great and saved me hours."

What appears in B2, C2, D2:

B2C2D2
PositiveOnboarding UXUser loved the product but struggled to locate API key settings during initial setup.

Drag the formula from B2 down to B500 and every review gets the same structured treatment. No manual reading. No tagging. No spreadsheet of checkboxes.

Use =AILISTH() when you want each extracted field in its own column (like the example above). Use =AILIST() when you want a single review broken into a vertical list of bullet points or themes.

Support tickets to action items

Support tickets are messy by nature. Customers describe problems in paragraphs, mix multiple issues together, and bury the actual request in the middle. =AILISTH() pulls out exactly what your team needs.

Formula
=AILISTH("From this support ticket, extract: 1) Product area (Billing/Technical/Account/Other), 2) Urgency (Low/Medium/High), 3) The specific action the customer is requesting. Return only the 3 values.", A2)

Turns a rambling support ticket into three clean fields: category, urgency, and action requested.

Emails to contact records

Parsing emails for names, companies, and phone numbers is a classic regex headache. With =AILISTH(), you skip the regex entirely.

Formula
=AILISTH("Extract from this email: 1) Sender full name, 2) Company name, 3) Phone number (or N/A if not found), 4) Main request in under 10 words. Return only the values.", A2)

Extracts structured contact data from raw email text. Each field lands in its own cell.

Compare this to the regex approach:

Name:    =REGEXEXTRACT(A2, "(?:From|Best|Regards|Cheers),?\s*\n?\s*([A-Z][a-z]+ [A-Z][a-z]+)")
Phone:   =REGEXEXTRACT(A2, "(\+?\d[\d\s\-\(\)]{7,}\d)")
Company: =REGEXEXTRACT(A2, "(?:at|@)\s+([A-Z][A-Za-z\s&]+?)(?:\s*[,\.\n]|$)")

Three brittle regex patterns that break whenever the email format changes. One =AILISTH() formula handles all three fields and adapts to any email format automatically.


Generating lists from scratch

=AILIST() is not just for extraction. It is just as useful for generating structured lists from a prompt alone. No input data required.

Content ideation

Formula
=AILIST("Generate 10 blog post titles about email marketing for e-commerce brands. Focus on specific, actionable topics. No generic titles.")

Returns 10 titles in separate cells, ready to be assigned, prioritized, or turned into content briefs.

Each title lands in its own cell. Add a column next to it with =AITEXT("Write a 2-sentence content brief for this blog post:", B2) and you have a content calendar with briefs in minutes.

Keyword research expansion

Formula
=AILIST("List 15 long-tail keyword variations for: "&A2&". Focus on buyer-intent phrases. One keyword per line, no numbering.")

A2 contains your seed keyword. Returns 15 variations you can feed into SERP analysis.

Follow up with =SERP() on each keyword to check search volume and competition. See the complete guide to AI formulas for how to chain these together.

Competitive feature comparison

Formula
=AILIST("List the top 8 features that users care about when comparing "&A2&" tools. Be specific -- no generic items like price or support.")

Generates a feature comparison framework from a product category. Use the output as column headers for a comparison matrix.


Batch processing: structured extraction at scale

The pattern for processing hundreds of rows is the same as any SheetMagic formula. Write it once, drag it down.

1

Put your raw data in column A

Paste your reviews, tickets, emails, or any unstructured text into column A. One item per row.

2

Write your AILISTH formula in B2

Design your extraction prompt. Be clear about the number of fields, their order, and format rules. Test on a single row first.

Formula
=AILISTH("Extract from this text: 1) Category, 2) Sentiment, 3) Key issue in under 10 words. Return only the 3 values, no labels.", A2)

Test this on row 2 first. Check that the output spreads into B2, C2, D2 correctly.

3

Review the output

Check that each field landed in the right column. If the AI is adding labels ("Category: Technical") or combining fields, tighten your prompt. Try adding "Return only the raw values, no labels, no prefixes."

4

Drag down to cover all rows

Grab the fill handle on B2 and drag it down to B500 (or however many rows you have). Each row processes on its own using its own data from column A.

5

Add headers and filter

Add headers in B1, C1, D1 matching your extracted fields. Turn on Google Sheets filters (Data > Create a filter) and you can now sort and filter 500 reviews by category, sentiment, or any other field you extracted.

Each =AILISTH() call uses AI tokens. Processing 500 rows fits easily within paid plan limits (Solo gets 3M tokens/month). The free tier's 3,000 one-time tokens will cover a handful of test extractions so you can see how it works. Test your prompt on a few rows first, then pick a plan when you are ready to scale.


Tips for clean list output

Specify the exact number of items. "List 5 items" gives more consistent results than "list some items." The AI knows exactly how many cells to fill.

Say "no labels, no numbering." Without this, the AI often returns "1. First item" or "Category: Technical." That adds noise to your cells. Be clear: "Return only the values."

Use AILISTH for fixed-width extraction. When every row should produce the same number of fields (like sentiment + topic + summary), =AILISTH() keeps your columns aligned. If the AI returns 4 items instead of 3, it pushes into an extra column. Catch this early by testing on one row.

Combine with AITEXT for follow-up analysis. Extract the data with =AILISTH(), then use =AITEXT() on the extracted fields for deeper analysis. For example, extract sentiment with =AILISTH(), then use =COUNTIF() on the sentiment column to tally the distribution. No AI tokens needed for the aggregation part.

Add fallback instructions. "If no phone number is found, return N/A" prevents the AI from guessing or leaving cells empty. This keeps your data consistent across hundreds of rows.


What to build next

You now know how to turn unstructured text into structured, filterable spreadsheet data with a single formula. The next step is combining list extraction with other SheetMagic features:

You can try all of this on the free tier. You get 3,000 AI tokens and 10 integration credits (one-time trial) to get started. That is enough to test list extraction and see how it fits your workflow. No credit card needed. Install SheetMagic free and try =AILIST("List 5 ways to use AI in a spreadsheet") in any cell.


Have questions? Visit the FAQ for answers about AI formulas, list extraction, and billing.