HomeDocumentation

Function Reference

Complete documentation for all 25+ Unlimited Sheets functions with examples and expected outputs.

Quick Start

1

Install Add-on

Get Unlimited Sheets from the Google Workspace Marketplace

2

Connect Account

Enter your API key via Extensions β†’ Unlimited Sheets β†’ Connect

3

Add AI Key

For AI functions, add your OpenAI key in Settings

⚑

AI Functions

SUPERPOWER

Your AI superpower in Google Sheets. Transform, analyze, and generate anything.

πŸš€ Your AI Superpower β€” Do ANYTHING with this function
UNLIMITED_AI(prompt, [model], [maxTokens])

THE most powerful function in Unlimited Sheets. Ask anything, transform any data, generate any content. Powered by GPT-4 and Claude. With your own API key, usage is UNLIMITED.

Input
=UNLIMITED_AI("Summarize this article in 3 bullet points: " & A1)
Output in Sheets
β€’ Global temperatures rose 1.2Β°C above pre-industrial levels β€’ Renewable energy investments hit record $500B β€’ 50+ countries committed to net-zero by 2050
AI_EXTRACT(text, schema)

Extract structured data from any text. Just describe what you want - names, emails, prices, dates, anything.

Input
=AI_EXTRACT(A1, "company, revenue, year")
Output in Sheets
2D Array3 rows Γ— 3 cols
[0]Apple$394B2023
[1]Microsoft$211B2023
[2]Google$307B2023
AI_TABLE(prompt, [rows], [cols])

Generate entire tables of data from a description. Perfect for creating datasets, comparisons, and structured content.

Input
=AI_TABLE("Top 5 programming languages with pros and cons", 5, 3)
Output in Sheets
2D Array6 rows Γ— 3 cols
[0]LanguageProsCons
[1]PythonEasy to learn, versatileSlower execution
[2]JavaScriptWeb native, huge ecosystemType coercion issues
[3]TypeScriptType safety, better toolingLearning curve
[4]GoFast, simple concurrencyLess libraries
... +1 more row
AI_FILL(examples, newInput)

Learn from examples and apply the same transformation. Show it 2-3 examples, and it figures out the pattern.

Input
=AI_FILL(A1:B3, C1)
Output in Sheets
Based on pattern: "john@gmail.com" β†’ "John" ... "sarah.smith@yahoo.com" β†’ "Sarah Smith"
AI_CLASSIFY(text, categories)

Automatically categorize text into your defined categories. Perfect for sorting feedback, tickets, or leads.

Input
=AI_CLASSIFY(A1, "Bug, Feature Request, Question, Complaint")
Output in Sheets
Feature Request
AI_KEYWORDS(seedKeyword, [count])

Generate related keyword ideas from a seed keyword. Returns keywords with type and difficulty estimates.

Input
=AI_KEYWORDS("running shoes", 10)
Output in Sheets
2D Array3 rows Γ— 3 cols
[0]KeywordTypeDifficulty
[1]best running shoes 2024long_tailmedium
[2]running shoes for flat feetlong_taillow
AI_SCRAPE(url, description)

Extract data from any webpage using AI. Just describe what you want to extract and AI figures out the rest.

Input
=AI_SCRAPE("https://store.com/products", "product names and prices")
Output in Sheets
2D Array3 rows Γ— 2 cols
[0]Nike Air Max$129.99
[1]Adidas Ultra$149.99
[2]New Balance 990$119.99
AI_SEO_ANALYZE(content, targetKeyword, [url])

Analyze content for SEO optimization. Returns score, keyword density, and improvement suggestions.

Input
=AI_SEO_ANALYZE(A1, "seo tools")
Output in Sheets
2D Array3 rows Γ— 2 cols
[0]score72
[1]keywordDensity1.8%
[2]improvements[Add more headings, Include target keyword in first paragraph]

πŸ’‘ What can you do with UNLIMITED_AI()?

✍️

Content Generation

  • "Write a product description for: "...
  • "Create a catchy headline for: " & ...
  • "Write 3 tweet variations: " & A1
πŸ”„

Data Transformation

  • "Convert to JSON: " & A1
  • "Translate to Spanish: " & A1
  • "Summarize in 1 sentence: " & A1
πŸ“Š

Data Extraction

  • "Extract all emails from: " & A1
  • "Extract names and phones: " & A1
  • "List all prices mentioned: " & A1
🧠

Analysis & Insights

  • "Sentiment analysis: " & A1
  • "Rate this review 1-5: " & A1
  • "Find issues in this code: " & A1
πŸš€

SEO & Marketing

  • "Generate meta description: " & A1
  • "Create 5 ad headlines for: " & A1
  • "Suggest related keywords: " & A1
✨

Formatting & Cleanup

  • "Fix grammar and spelling: " & A1
  • "Format as bullet points: " & A1
  • "Convert to title case: " & A1

Pro tip: The UNLIMITED_AI() function can do almost anything β€” just describe what you want in plain English. Combine it with cell references like UNLIMITED_AI("Translate to French: " & A1) to process your data.

πŸ“Š

SERP Functions

PRO

Search engine ranking data and keyword metrics powered by DataForSEO

getKeywordPosition(keyword, domain, [country], [device])

Find your ranking position for any keyword. Returns position 1-100 or "Not found".

Input
=getKeywordPosition("seo tools", "example.com")
Output in Sheets
3
getOrganicPagesFromSERP(keyword, [limit], [country])

Get organic search results for a keyword. Returns URLs, titles, and positions.

Input
=getOrganicPagesFromSERP("best seo tools", 10)
Output in Sheets
2D Array2 rows Γ— 3 cols
[0]1https://ahrefs.comBest SEO Tools
[1]2https://moz.comTop SEO Software
getPaidPagesFromSERP(keyword, [limit], [country])

Get paid/sponsored search results for a keyword.

Input
=getPaidPagesFromSERP("crm software", 5)
Output in Sheets
2D Array2 rows Γ— 2 cols
[0]https://salesforce.comSalesforce CRM
[1]https://hubspot.comHubSpot CRM
getAllPagesFromSERP(keyword, [limit], [country])

Get all search results including organic, paid, and featured snippets.

Input
=getAllPagesFromSERP("project management", 20)
Output in Sheets
2D Array3 rows Γ— 4 cols
[0]organic1https://asana.comAsana Project Management
[1]paid-https://monday.comMonday.com CRM
[2]organic2https://trello.comTrello Boards
getSearchVolumeFromGoogle(keywords, [country])

Get monthly search volume for keywords. Accepts single keyword or range.

Input
=getSearchVolumeFromGoogle(A1:A10)
Output in Sheets
2D Array3 rows Γ— 2 cols
[0]running shoes110000
[1]best running shoes49500
[2]nike running shoes33100
🌐

Scraping Functions

PRO

Extract data from any website using CSS selectors, XPath, or regex patterns

scrapeByCssPath(url, cssSelector, [attribute])

Scrape content using CSS selectors. Optionally extract specific attributes.

Input
=scrapeByCssPath("https://example.com", "h1.title")
Output in Sheets
Welcome to Example.com
scrapeByXPath(url, xpathExpression)

Scrape content using XPath expressions for complex DOM traversal.

Input
=scrapeByXPath("https://example.com", "//div[@class='price']")
Output in Sheets
$49.99
scrapeByRegex(url, regexPattern)

Extract content matching a regex pattern from the page HTML.

Input
=scrapeByRegex("https://example.com", "\$[0-9]+\.?[0-9]*")
Output in Sheets
2D Array3 rows Γ— 1 col
[0]$29.99
[1]$49.99
[2]$99.99
checkRedirectChain(url)

Follow all redirects and return the complete redirect chain with status codes.

Input
=checkRedirectChain("https://example.com/old")
Output in Sheets
2D Array3 rows Γ— 2 cols
[0]301https://example.com/old
[1]302https://example.com/temp
[2]200https://example.com/new
indexNow(url, [searchEngine])

Submit URLs to search engines for immediate indexing via IndexNow protocol.

Input
=indexNow("https://example.com/new-page")
Output in Sheets
Submitted successfully
πŸ”

SEO Functions

FREE

Essential SEO utilities for technical audits and content optimization

getStatusCode(url)

Get the HTTP status code for any URL. Useful for finding broken links.

Input
=getStatusCode("https://example.com")
Output in Sheets
200
getUrlsFromSitemap(sitemapUrl, [limit])

Extract all URLs from an XML sitemap. Handles nested sitemaps automatically.

Input
=getUrlsFromSitemap("https://example.com/sitemap.xml")
Output in Sheets
2D Array3 rows Γ— 1 col
[0]https://example.com/
[1]https://example.com/about
[2]https://example.com/blog
suggestQueries(query, [country])

Get Google autocomplete suggestions for a query. Great for keyword research.

Input
=suggestQueries("how to")
Output in Sheets
2D Array5 rows Γ— 1 col
[0]how to tie a tie
[1]how to screenshot
[2]how to lose weight
[3]how to make money
[4]how to cook rice
slugify(text)

Convert text to a URL-friendly slug. Removes special characters and spaces.

Input
=slugify("Hello World! This is a Test")
Output in Sheets
hello-world-this-is-a-test
getLocaleBySubdomain(url)

Extract the locale/language code from a subdomain URL.

Input
=getLocaleBySubdomain("https://es.example.com/page")
Output in Sheets
es
πŸ› οΈ

Utility Functions

FREE

Powerful spreadsheet utilities that extend Google Sheets capabilities

unlimitedVlookup(value, range, returnCol, [value2], [col2], ...)

VLOOKUP with unlimited criteria. Match on multiple columns simultaneously.

Input
=unlimitedVlookup("John", A:D, 4, "Sales", 2)
Output in Sheets
$75,000
v2lookup(value1, value2, range, returnCol)

VLOOKUP with exactly two criteria. Simpler syntax for common use case.

Input
=v2lookup("2024", "Q1", A:E, 5)
Output in Sheets
125000
combineAll(range1, [range2], ...)

Combine multiple ranges into a single column. Removes empty cells.

Input
=combineAll(A1:A10, C1:C10, E1:E10)
Output in Sheets
2D Array5 rows Γ— 1 col
[0]apple
[1]banana
[2]cherry
[3]date
[4]elderberry
groupByCell(range, [separator])

Combine all cell values into a single string with a separator.

Input
=groupByCell(A1:A5, ", ")
Output in Sheets
apple, banana, cherry, date, elderberry
clusterize(keywords)

Cluster keywords by their root stems. Groups similar keywords together.

Input
=clusterize(A1:A100)
Output in Sheets
2D Array2 rows Γ— 2 cols
[0]runningrunning shoes, running gear, running tips
[1]marathonmarathon training, marathon shoes
myReplace(text, search, replacement)

Replace all occurrences of a string. Works with special characters.

Input
=myReplace("Hello World", "World", "Claude")
Output in Sheets
Hello Claude
existsInColumn(value, range)

Check if a value exists anywhere in a range. Returns TRUE or FALSE.

Input
=existsInColumn("Product A", A1:A100)
Output in Sheets
TRUE
returnLastCell(range)

Return the last non-empty cell value from a range.

Input
=returnLastCell(A1:A100)
Output in Sheets
Last non-empty value
splitInColumns(text, [separator])

Split text into horizontal columns using a separator.

Input
=splitInColumns("a,b,c", ",")
Output in Sheets
2D Array1 row Γ— 3 cols
[0]abc
getAvgDailyTrafficFromWeek(weeklyValue)

Calculate daily average from weekly data.

Input
=getAvgDailyTrafficFromWeek(7000)
Output in Sheets
1000
getRunRateCurrentMonth(valueToDate, [dayOfMonth])

Project month-end total based on current run rate.

Input
=getRunRateCurrentMonth(5000, 15)
Output in Sheets
10333
getRunRateNextMonth(currentValue, [growthRate])

Project next month value with optional growth rate.

Input
=getRunRateNextMonth(10000, 0.1)
Output in Sheets
11000
selectRandomCell(range)

Return a random cell value from a range.

Input
=selectRandomCell(A1:A10)
Output in Sheets
Random value
returnCellInversed(range, inverseIndex)

Return cell from end of range using inverse index (1 = last, 2 = second to last).

Input
=returnCellInversed(A1:A10, 1)
Output in Sheets
Last value

Bring Your Own Key (BYOK)

All AI functions support your own OpenAI or Anthropic API keys. Pay the providers directly at their rates β€” no markup from us.Add your key in Extensions β†’ Unlimited Sheets β†’ Settings.

Need Help?

Can't find what you're looking for? Our support team is ready to help.