Can I use these functions without a license? ▼
Yes. Every function in this add-on works on ranges of 30 cells or fewer without a license — no sign-up required.
For ranges larger than 30 cells, an active license is required. New users automatically receive a 7-day free trial with full access to all functions on unlimited ranges.
If a formula exceeds the free limit, the cell will show an error message explaining how to activate a license.
How do I get autocomplete and formula hints for these functions? ▼
These functions support Google Sheets' built-in formula
autocomplete. Start typing
= followed by the function name —
matching suggestions appear in a dropdown automatically.
Once you select a function and type the opening parenthesis
(, a tooltip appears showing the
expected arguments in order.
For the full description and parameter list, open the formula help panel:
PC Shift + F1 | Mac Shift + Fn + F1
If autocomplete doesn't show the add-on functions, the add-on may not be installed or enabled for this spreadsheet.
Why do ranges have to be typed as strings? ▼
Reading cell colors requires a Range object (e.g.
range.getBackgrounds()). The only
way to pass a range to a custom function is as a quoted string
— without quotes, Google Sheets passes the values of
that range instead, making it impossible to read formatting.
The formula doesn't recalculate when I change a cell. ▼
These functions use memoization: as long as the arguments stay the same, the spreadsheet engine returns cached results without re-running the function.
The easiest fix is the Recalculate all formulas button in the sidebar (Functions tab → bottom of the page). It forces an immediate refresh of all custom functions across all sheets — useful after any formatting change.
To trigger recalculation automatically when a value in the range changes, pass the range a second time as an extra argument without quotes. The function ignores it, but its presence triggers re-evaluation:
=COUNTBACKGROUNDCOLOR("B2:B21", "B2", B2:B21)
Note: there is currently no automatic way to trigger recalculation when a color (background or font) changes — this is a Google Sheets limitation. Use the Recalculate button instead.
I'm getting a #NAME? error. ▼
A #NAME? error means Google Sheets can't find the function. Double-check the spelling. Use the formula help box to verify the function is recognized:
PC Shift + F1 | Mac Shift + Fn + F1
If the function never appears in autocomplete, the add-on may not be installed or enabled for this spreadsheet.
A formula shows a timeout error or takes very long to calculate ▼
Google imposes a 30-second execution limit per custom function call. If a formula exceeds this, it returns an error like "Service Spreadsheets timed out" or "Exceeded maximum execution time".
Common causes:
-
Whole-column ranges —
"A:A"scans every row in the sheet (up to 10 million cells). Always use a bounded range like"A1:A500". -
Cross-sheet functions on large workbooks —
SUMALLSHEETSetc. read the same range on every sheet. Exclude irrelevant sheets using theexcludedargument, or reduce the number of sheets. - Many formulas recalculating simultaneously — see the tip above about consolidating with SUMPRODUCT.
See also: Google Apps Script quotas and best practices for custom functions.
I can't drag formulas so ranges update automatically. ▼
Because ranges are passed as strings, they don't update when
you fill down or across. You can work around this with
ROW() to fill
vertically:
=SUMSTYLE("A"&ROW()&":J"&ROW(), "bold")
To fill horizontally, use
CELL("address", ...):
=COUNTBACKGROUNDCOLOR(CELL("address",A13)&":"&CELL("address",A25),
"A14")
See also this example spreadsheet.
My sheet has many formulas — or I need style/color checks across different columns ▼
Each formula requires a separate round-trip to the Apps Script server to read cell formatting. The IS* boolean functions (ISFONTSTYLE, ISBGCOLOR, ISFONTCOLOR, ISCOLORANDSTYLE) are useful in two situations:
1. Style/color check and values are in different columns. The scalar functions (SUMSTYLE, SUMFONTCOLOR…) can only sum the styled cells' own values. The IS* functions let you apply a style/color check from one column to values from another:
=SUMPRODUCT(ISFONTSTYLE("A2:A200","bold")*1)
=SUMPRODUCT(ISBGCOLOR("A2:A200","C1")*B2:B200)
=SUMPRODUCT(ISCOLORANDSTYLE("A2:A200","C1","bg","bold")*B2:B200)
2. Consolidating many separate formulas on the same range. If you have many COUNTSTYLE/SUMSTYLE/… formulas covering the same range, you can replace them with one ISFONTSTYLE formula:
Other tips:
-
Use specific ranges (
"A1:A100") rather than whole columns ("A:A") — whole columns force the function to scan thousands of empty cells. - Avoid placing the same range formula in dozens of cells — consolidate into one formula where possible.
- Use the Recalculate button in the sidebar rather than relying on automatic recalculation after formatting changes.
See also: Google Apps Script quotas.
Can I pass a hex color directly instead of a cell reference? ▼
Yes. All color functions accept either a cell reference
or a hex color string as the
colorSource argument. Pass the
hex value as a quoted string starting with
#:
=SUMFONTCOLOR("A1:A100", "#ff0000")
=COUNTBACKGROUNDCOLOR("A1:A100", "#46bdc6")
This is useful when you know the exact color and don't want to maintain a reference cell in your sheet.
Can I use these functions inside MAP, BYROW or other LAMBDA functions? ▼
No. Google Sheets
does not allow custom functions to be called from within
LAMBDA-based functions
such as MAP,
BYROW,
BYCOL, or
REDUCE.
The reason is architectural: LAMBDA functions run entirely inside the Sheets calculation engine, which has no access to the Apps Script runtime. Custom functions need the Apps Script runtime to read cell formatting (colors, font styles), so the two environments are fundamentally incompatible.
There is currently no workaround for this limitation.
How do I cancel or manage my subscription? ▼
Open the sidebar's Account tab and click "Manage subscription →" — this opens Stripe's self-serve billing portal. See the pricing FAQ for details.
I uninstalled the add-on — does that cancel my subscription? ▼
No. Uninstalling only removes the add-on from your account — it doesn't cancel any active subscription or free up a team seat. Monthly and yearly plans keep renewing until you cancel them yourself via the Account tab's "Manage subscription" (or ask your domain admin to remove your seat for team licenses).
Do you offer licensing for a whole team or domain? ▼
Yes. Individual licenses are per user — installing the add-on domain-wide from the Google Workspace Marketplace does not give every domain user full access on its own.
If you want to cover a whole team or organization, see the team pricing — €10.99/seat/yr, minimum 5 seats (€54.95/yr total to start), billed yearly. Or contact us first if you have questions.
For domain admins, here's the full process:
- Purchase a team license first — this links a number of seats to your domain.
- Then install the add-on domain-wide from the Google Workspace Marketplace admin console — this gives people access to open the add-on itself.
- Seats are assigned automatically: the first people on your domain to open the add-on each claim a seat until they're all used. As the buyer, you can also pre-assign or remove specific teammates via "Manage team seats" in the sidebar's Account tab.
⚠ Order matters: this also applies if you roll out the add-on domain-wide from the admin console before buying seats. Anyone who opens it first starts their own individual 7-day trial instead — and won't be picked up by the team license until that trial runs out. Buy the seats first, then roll out the install.
Tip: the email address you use on the Stripe payment page becomes the domain admin — make sure it matches the Google account you'll use to manage seats afterward via "Manage team seats".
Tip: to control who even sees the add-on in step 2, install it for specific organizational units or groups instead of the whole domain — pick this in the Google Admin console when installing (Apps → Google Workspace Marketplace apps → select the app → Install for specific OUs/groups).
Can I give up my Team seat myself? ▼
Yes — on the sidebar's Account tab, click Give up my seat. No admin involvement needed. Getting a seat back afterwards does require the domain admin to re-add you via "Manage team seats" — it's not automatic just by reopening the add-on again.