Function Reference
Complete documentation for all 25+ Unlimited Sheets functions with examples and expected outputs.
Quick Start
Install Add-on
Get Unlimited Sheets from the Google Workspace Marketplace
Connect Account
Enter your API key via Extensions β Unlimited Sheets β Connect
Add AI Key
For AI functions, add your OpenAI key in Settings
AI Functions
SUPERPOWERYour AI superpower in Google Sheets. Transform, analyze, and generate anything.
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.
=UNLIMITED_AI("Summarize this article in 3 bullet points: " & A1)β’ Global temperatures rose 1.2Β°C above pre-industrial levels
β’ Renewable energy investments hit record $500B
β’ 50+ countries committed to net-zero by 2050AI_EXTRACT(text, schema)Extract structured data from any text. Just describe what you want - names, emails, prices, dates, anything.
=AI_EXTRACT(A1, "company, revenue, year")| [0] | Apple | $394B | 2023 |
| [1] | Microsoft | $211B | 2023 |
| [2] | $307B | 2023 |
AI_TABLE(prompt, [rows], [cols])Generate entire tables of data from a description. Perfect for creating datasets, comparisons, and structured content.
=AI_TABLE("Top 5 programming languages with pros and cons", 5, 3)| [0] | Language | Pros | Cons |
| [1] | Python | Easy to learn, versatile | Slower execution |
| [2] | JavaScript | Web native, huge ecosystem | Type coercion issues |
| [3] | TypeScript | Type safety, better tooling | Learning curve |
| [4] | Go | Fast, simple concurrency | Less libraries |
AI_FILL(examples, newInput)Learn from examples and apply the same transformation. Show it 2-3 examples, and it figures out the pattern.
=AI_FILL(A1:B3, C1)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.
=AI_CLASSIFY(A1, "Bug, Feature Request, Question, Complaint")Feature RequestAI_KEYWORDS(seedKeyword, [count])Generate related keyword ideas from a seed keyword. Returns keywords with type and difficulty estimates.
=AI_KEYWORDS("running shoes", 10)| [0] | Keyword | Type | Difficulty |
| [1] | best running shoes 2024 | long_tail | medium |
| [2] | running shoes for flat feet | long_tail | low |
AI_SCRAPE(url, description)Extract data from any webpage using AI. Just describe what you want to extract and AI figures out the rest.
=AI_SCRAPE("https://store.com/products", "product names and prices")| [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.
=AI_SEO_ANALYZE(A1, "seo tools")| [0] | score | 72 |
| [1] | keywordDensity | 1.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
PROSearch 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".
=getKeywordPosition("seo tools", "example.com")3getOrganicPagesFromSERP(keyword, [limit], [country])Get organic search results for a keyword. Returns URLs, titles, and positions.
=getOrganicPagesFromSERP("best seo tools", 10)| [0] | 1 | https://ahrefs.com | Best SEO Tools |
| [1] | 2 | https://moz.com | Top SEO Software |
getPaidPagesFromSERP(keyword, [limit], [country])Get paid/sponsored search results for a keyword.
=getPaidPagesFromSERP("crm software", 5)| [0] | https://salesforce.com | Salesforce CRM |
| [1] | https://hubspot.com | HubSpot CRM |
getAllPagesFromSERP(keyword, [limit], [country])Get all search results including organic, paid, and featured snippets.
=getAllPagesFromSERP("project management", 20)| [0] | organic | 1 | https://asana.com | Asana Project Management |
| [1] | paid | - | https://monday.com | Monday.com CRM |
| [2] | organic | 2 | https://trello.com | Trello Boards |
getSearchVolumeFromGoogle(keywords, [country])Get monthly search volume for keywords. Accepts single keyword or range.
=getSearchVolumeFromGoogle(A1:A10)| [0] | running shoes | 110000 |
| [1] | best running shoes | 49500 |
| [2] | nike running shoes | 33100 |
Scraping Functions
PROExtract data from any website using CSS selectors, XPath, or regex patterns
scrapeByCssPath(url, cssSelector, [attribute])Scrape content using CSS selectors. Optionally extract specific attributes.
=scrapeByCssPath("https://example.com", "h1.title")Welcome to Example.comscrapeByXPath(url, xpathExpression)Scrape content using XPath expressions for complex DOM traversal.
=scrapeByXPath("https://example.com", "//div[@class='price']")$49.99scrapeByRegex(url, regexPattern)Extract content matching a regex pattern from the page HTML.
=scrapeByRegex("https://example.com", "\$[0-9]+\.?[0-9]*")| [0] | $29.99 |
| [1] | $49.99 |
| [2] | $99.99 |
checkRedirectChain(url)Follow all redirects and return the complete redirect chain with status codes.
=checkRedirectChain("https://example.com/old")| [0] | 301 | https://example.com/old |
| [1] | 302 | https://example.com/temp |
| [2] | 200 | https://example.com/new |
indexNow(url, [searchEngine])Submit URLs to search engines for immediate indexing via IndexNow protocol.
=indexNow("https://example.com/new-page")Submitted successfullySEO Functions
FREEEssential SEO utilities for technical audits and content optimization
getStatusCode(url)Get the HTTP status code for any URL. Useful for finding broken links.
=getStatusCode("https://example.com")200getUrlsFromSitemap(sitemapUrl, [limit])Extract all URLs from an XML sitemap. Handles nested sitemaps automatically.
=getUrlsFromSitemap("https://example.com/sitemap.xml")| [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.
=suggestQueries("how to")| [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.
=slugify("Hello World! This is a Test")hello-world-this-is-a-testgetLocaleBySubdomain(url)Extract the locale/language code from a subdomain URL.
=getLocaleBySubdomain("https://es.example.com/page")esUtility Functions
FREEPowerful spreadsheet utilities that extend Google Sheets capabilities
unlimitedVlookup(value, range, returnCol, [value2], [col2], ...)VLOOKUP with unlimited criteria. Match on multiple columns simultaneously.
=unlimitedVlookup("John", A:D, 4, "Sales", 2)$75,000v2lookup(value1, value2, range, returnCol)VLOOKUP with exactly two criteria. Simpler syntax for common use case.
=v2lookup("2024", "Q1", A:E, 5)125000combineAll(range1, [range2], ...)Combine multiple ranges into a single column. Removes empty cells.
=combineAll(A1:A10, C1:C10, E1:E10)| [0] | apple |
| [1] | banana |
| [2] | cherry |
| [3] | date |
| [4] | elderberry |
groupByCell(range, [separator])Combine all cell values into a single string with a separator.
=groupByCell(A1:A5, ", ")apple, banana, cherry, date, elderberryclusterize(keywords)Cluster keywords by their root stems. Groups similar keywords together.
=clusterize(A1:A100)| [0] | running | running shoes, running gear, running tips |
| [1] | marathon | marathon training, marathon shoes |
myReplace(text, search, replacement)Replace all occurrences of a string. Works with special characters.
=myReplace("Hello World", "World", "Claude")Hello ClaudeexistsInColumn(value, range)Check if a value exists anywhere in a range. Returns TRUE or FALSE.
=existsInColumn("Product A", A1:A100)TRUEreturnLastCell(range)Return the last non-empty cell value from a range.
=returnLastCell(A1:A100)Last non-empty valuesplitInColumns(text, [separator])Split text into horizontal columns using a separator.
=splitInColumns("a,b,c", ",")| [0] | a | b | c |
getAvgDailyTrafficFromWeek(weeklyValue)Calculate daily average from weekly data.
=getAvgDailyTrafficFromWeek(7000)1000getRunRateCurrentMonth(valueToDate, [dayOfMonth])Project month-end total based on current run rate.
=getRunRateCurrentMonth(5000, 15)10333getRunRateNextMonth(currentValue, [growthRate])Project next month value with optional growth rate.
=getRunRateNextMonth(10000, 0.1)11000selectRandomCell(range)Return a random cell value from a range.
=selectRandomCell(A1:A10)Random valuereturnCellInversed(range, inverseIndex)Return cell from end of range using inverse index (1 = last, 2 = second to last).
=returnCellInversed(A1:A10, 1)Last valueBring 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.