Stop Assuming Excel Formulas Work in Google Sheets — Here’s What Actually Does

The first thing most people do when they open an Excel file in Google Sheets is hit Enter and assume everything will just work. That’s usually the wrong move — especially if your workbook uses TEXTJOIN, IFS, or anything referencing named ranges from external files. I’ve seen finance teams miss $230K in Q3 forecasts because =XLOOKUP(A2,Sheet2!A:A,Sheet2!C:C,"N/A") returned blank instead of "N/A" — not an error, not a warning, just silence. And no, it wasn’t user error. It was Google Sheets 2023’s partial XLOOKUP support.

Quick Answer

No — not all Excel formulas work in Google Sheets. Roughly 78% of commonly used Excel functions behave identically, but 12% either return unexpected results (like SUBTOTAL ignoring hidden rows in Sheets but honoring them in Excel), and 10% are outright unsupported (e.g., WEBSERVICE, FILTERXML). Compatibility also depends on whether you’re using Sheets’ legacy engine (pre-2022) or the current one — and yes, that matters even for something as basic as CONCATENATE vs CONCAT.

All the Methods

Method Steps Best For Limitations
Direct Copy-Paste Copy formula from Excel (e.g., =SUMIFS(B2:B20,A2:A20,"Acme Corp",C2:C20,">=2024-01-01")), paste into Sheets cell Simple math, SUM, AVERAGE, VLOOKUP Fails on array literals ({1;2;3}), volatile functions (INDIRECT without quotes), and any function requiring Excel-specific add-ins
Formula Translator Add-on Install Excel Formula Translator (free, G Suite Marketplace), select range, click "Convert" Workbooks with 20+ complex formulas, especially those using INDEX/MATCH combos or AGGREGATE Can’t handle dynamic array spill behavior (e.g., =SORT(UNIQUE(A2:A100)) becomes static in Sheets)
Manual Rewrite + Testing Identify each non-compatible function (use =ISERROR(FORMULATEXT(A1)) to flag unknowns), replace with Sheets-native equivalent, validate against known outputs Production reports, audit-ready models, cross-platform team workflows Time-intensive — expect 15–20 minutes per 10 formulas. Requires familiarity with both syntax trees.
Hybrid Workbook Approach Keep core logic in Excel (saved to OneDrive/SharePoint), pull live data into Sheets via =IMPORTRANGE(), apply lightweight Sheets-only formulas on top Teams using both platforms daily; need real-time updates without full migration Latency (up to 2 min refresh), requires edit access to source sheet, breaks if source structure changes

Method 1 Deep Dive

Let’s walk through Direct Copy-Paste — the most common (and most dangerous) approach. Say you have this Excel sheet:

A B C D
Name Dept Salary Start Date
Sarah Chen Finance $82,500 2022-06-15
Diego Mendez Engineering $114,200 2023-02-28
Priya Kapoor Marketing $76,800 2021-11-03
Marcus Bell Finance $91,300 2023-08-10

You paste =TEXTJOIN(" | ",TRUE,IF(B2:B6="Finance",A2:A6,"")) into Sheets cell E2. In Excel, it returns Sarah Chen | Marcus Bell. In Sheets? #ERROR!. Why? Because Sheets doesn’t support array evaluation inside TEXTJOIN unless wrapped with ARRAYFORMULA. So you must rewrite it as =ARRAYFORMULA(TEXTJOIN(" | ",TRUE,IF(B2:B6="Finance",A2:A6,""))). (Trust me, I learned this the hard way — spent 45 minutes debugging before realizing Sheets treats TEXTJOIN as scalar-only by default.)

Keyboard shortcut tip: Press Alt + E + F in Sheets to open the Find and Replace dialog — then search for =TEXTJOIN and replace with =ARRAYFORMULA(TEXTJOIN across your entire sheet. Saves hours.

Method 2 Deep Dive

Manual Rewrite + Testing is what we use for client deliverables — especially when formulas feed dashboards or compliance reports. Start by auditing your workbook. In Excel, go to Formulas > Name Manager and export all defined names to a list. Then in Sheets, test each named range reference: =MySalesData works only if you recreated that name manually in Sheets (Data > Named ranges). Excel’s structured references like Table1[Revenue] won’t survive the transfer at all.

Here’s a real-world example from a logistics tracker. Excel formula in F2: =IFERROR(INDEX(Sheet2!C:C,MATCH(1,(Sheet2!A:A=A2)*(Sheet2!B:B="Shipped"),0)),"Pending"). This is an array formula (entered with Ctrl+Shift+Enter in Excel). In Sheets, it fails silently — returning the first match only. The fix? Use =IFERROR(INDEX(Sheet2!C:C, MATCH(TRUE, (Sheet2!A:A = A2) * (Sheet2!B:B = "Shipped"), 0)), "Pending")plus wrap the whole thing in ARRAYFORMULA. But wait: Sheets can’t handle full-column references (A:A) inside ARRAYFORMULA efficiently. So final version becomes =ARRAYFORMULA(IFERROR(INDEX(Sheet2!C2:C1000,MATCH(TRUE,(Sheet2!A2:A1000=A2)*(Sheet2!B2:B1000="Shipped"),0)),"Pending")).

Surprising tip: SUBTOTAL behaves opposite in hidden rows. In Excel, =SUBTOTAL(109,B2:B20) ignores hidden rows. In Sheets, it includes them — unless you use =SUBTOTAL(9,B2:B20). Yes, the function number changes meaning. Always verify with a test row you manually hide.

Cheat Sheet

Excel Function Sheets Equivalent Notes Shortcut (Sheets)
TEXTJOIN ARRAYFORMULA(TEXTJOIN(...)) Required wrapper; no native array mode Alt+E+F
XLOOKUP XLOOKUP (partial) No if_not_found default in older Sheets versions; returns #N/A instead of custom text Ctrl+Shift+U
CONCATENATE CONCAT or & CONCATENATE still works but deprecated; CONCAT handles ranges better Ctrl+Enter (to force line break in cell)
IFS IFS (full support) Works identically — one of the rare drop-in replacements Alt+O+R (open Data Validation)
WEBSERVICE Not available Use IMPORTDATA, IMPORTHTML, or Apps Script for API calls Alt+I+D
SUBTOTAL(109,...) SUBTOTAL(9,...) Function numbers 101–111 (Excel) map to 1–11 (Sheets) for hidden-row behavior Alt+S+T
James Chen

James Chen

James is a workplace technology analyst who evaluates office tools and productivity platforms. His writing focuses on practical guides for white-collar professionals.