Here's what's actually available, what it's worth using for, and where it falls apart.
How ChatGPT Gets Into Google Sheets
There are 3 practical paths, as of June 2026:
GPT for Sheets and Docs (by Talarian) is the dominant add-on with over 2 million installs on the Google Workspace Marketplace. It gives you cell functions like =GPT(prompt), =GPT_FILL(range), and =GPT_TABLE(prompt, headers). You connect your own OpenAI API key or buy credits from Talarian directly.
Apps Script with the OpenAI REST API is the DIY version. You write a custom function that calls https://api.openai.com/v1/chat/completions, pass in a prompt, and return the text. Takes about 30 lines of code and gives you more control over model, temperature, and context.
Third-party wrappers like SheetAI and Rows.com exist but add a pricing layer on top of OpenAI's own pricing for marginal additional convenience.
What all 3 have in common: they call an external API from a cell formula. That framing explains both what they can do and exactly where they crack.
What ChatGPT in Sheets Is Actually Good At
For text-heavy tasks within a cell or column, the add-on approach genuinely earns its keep.
GL code classification. You have 2,400 exported transactions with free-text descriptions like "AWS EC2 - us-east-1 Nov charge" and "Salesforce Enterprise Annual." A formula like:
=GPT("Classify into: SaaS, Infrastructure, Headcount, Travel, Other. Return only the category. Description: " & A2)
...dragged down 2,400 rows will categorize them faster than any manual process, at roughly $0.80 total cost using GPT-4o mini (at $0.60 per million output tokens as of June 2026).
Vendor name normalization. "Microsoft Corp.", "MSFT", "Microsoft Corporation", "Microsoft Azure" all need to resolve to one canonical name before you can SUMIFS across them. GPT handles this well.
Extracting numbers from messy text cells. Board notes, contract summaries, unstructured emails pasted into a sheet - if you need to pull "Q3 renewal value: $847K" into a number column, a targeted GPT prompt on 50 rows is faster than writing regex.
Formula drafting. Asking GPT "write a SUMIFS that sums 'Revenue'!D:D where 'Revenue'!B:B matches this region and 'Revenue'!C:C is >= start date" and pasting the result is a legitimate use of the add-on's chat interface.
These are all single-column, text-in/text-out workflows. That's the natural habitat.
Where It Breaks for FP&A Work
No tab awareness. This is the fundamental problem. When you write =GPT("What's our Q3 gross margin?"), the model has no idea what's in your P&L tab. Zero. It can only process text you explicitly pass into the function argument. For a prompt to reference 'P&L'!C:C, you'd have to serialize that entire column into a string and inject it - which hits token limits fast and is slow.
A model with 128,000-token context sounds like a lot until you realize that a modestly sized P&L tab with 3 years of monthly data across 40 line items is already 15,000+ characters of raw text, before you've touched your Balance Sheet or FCFF tab.
The recalculation trap. Google Sheets recalculates whenever any dependent cell changes. If you've put =GPT(B2) in 500 rows and B2 is a date input on your Assumptions tab, editing that date fires 500 API calls simultaneously. The GPT for Sheets documentation notes this behavior and recommends copying results as plain values - which is the right call, but means you've now broken the live link and have a snapshot, not a formula.
According to the Talarian add-on's own support documentation: "To avoid unnecessary API calls, consider copying and pasting your GPT results as values once you're satisfied with the output." That's good advice, but it means the cell functions are more of a one-shot generation tool than a live spreadsheet layer.
Cost at scale is nonlinear. 500 rows at 150 tokens per response = 75,000 output tokens per run. At GPT-4o rates ($2.50 per million output tokens), that's $0.19. Sounds fine. But if that sheet recalculates 3 times per work session across 10 analysts, you're at $5.70/day before anyone's done anything unusual. A poorly designed model with volatile references can balloon this.
It can't write to your sheet. The add-on reads from cells and returns text to cells. It doesn't open a sidebar, read your active selection, execute write_range operations, or update formulas across tabs. There's no agent loop. You get a text response, full stop.
The Apps Script Route: More Flexible, Same Ceiling
Writing your own =OPENAI(prompt) custom function in Apps Script removes the dependency on Talarian's infrastructure and gives you model control. But the ceiling is identical: you're passing text in, getting text back, with no spreadsheet awareness beyond what you explicitly serialize into the prompt.
The one genuine advantage is that Apps Script lets you write non-formula code - triggered functions, time-based jobs, sidebar UIs. If you want to build a button that fires a GPT analysis of your current sheet and writes results to a summary tab, Apps Script can do that. It's a meaningful step up from cell formulas, but it also requires actually writing and maintaining code.
A minimal custom function that handles the most common FP&A use case (batch classification):
// Run from Tools > Script editor
// Call as =CLASSIFY_EXPENSE(A2) in any cell
function CLASSIFY_EXPENSE(description) {
const apiKey = PropertiesService.getScriptProperties().getProperty('OPENAI_KEY');
const payload = {
model: "gpt-4o-mini",
messages: [{
role: "user",
content: `Classify this expense into one of: SaaS, Infrastructure, Headcount, Facilities, Travel, Other.
Return only the category name.
Expense: ${description}`
}],
max_tokens: 20,
temperature: 0
};
const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", {
method: "post",
contentType: "application/json",
headers: { "Authorization": "Bearer " + apiKey },
payload: JSON.stringify(payload)
});
return JSON.parse(response.getContentText()).choices[0].message.content.trim();
}
Set temperature: 0 for classification tasks. You want deterministic output, not creative variation.
What the Add-On Can't Replace
A quarterly board pack lives across 8+ linked tabs. Your FCFF model pulls from Assumptions, references P&L for EBIT, hits Balance Sheet for D&A and capex, and feeds into a Returns Analysis that a deal team is going to pick apart. ChatGPT cell functions don't see any of that structure.
What you actually need for that workflow is something that understands the whole file - which tabs exist, what's in each one, how they reference each other - and can take action across them based on a plain-language instruction. "Update the revenue growth assumption in B3 and show me the impact on levered FCF in year 5" requires tab-aware agents, not cell formulas.
ModelMonkey works exactly that way: it sits in your sidebar, reads your active spreadsheet's full structure, and can execute changes across tabs with your approval. Ask it to "pull YTD actuals from the P&L tab and write variance vs. budget to the Board Summary tab" and it executes the whole thing - it's not returning text to a cell. Try ModelMonkey free for 14 days - it works in both Google Sheets and Excel.