Overview

Frequently Asked Questions

Common questions about how the functions work and how to get the most out of them.

No questions match “”.

Getting started

Can I use these functions without a license? ▼

Some of them. COUNTSTYLE is free on any range, and ISFONTCOLOR, ISBGCOLOR, ISFONTSTYLE and ISCOLORANDSTYLE are free when they point at a single cell — no sign-up required.

Every other function — counting or summing by colour, the averages / max / min / median, cross-sheet, and the FILTER functions — needs an active plan. New users can start a 14-day free trial — no card needed — from the sidebar (Extensions → Custom Count & Sum → Open sidebar), which unlocks all 38 functions.

If a formula needs a plan you don't have, the cell shows an error message explaining how to start the trial or activate a plan.

Every formula runs on Google's servers as a custom function; the paid plans cover the running costs and keep the add-on maintained.

A formula that used to work now shows an error asking for a plan. ▼

The free tier is now function-based rather than range-size based. COUNTSTYLE stays free on any range, and ISFONTCOLOR, ISBGCOLOR, ISFONTSTYLE and ISCOLORANDSTYLE stay free on a single cell.

Every other function — counting or summing by colour, the averages / max / min / median, cross-sheet, and the FILTER functions — now needs an active plan after a 14-day free trial. If you were relying on the old 30-cell free limit, that limit is gone: those functions now need the trial or a plan at any size.

To get the formula working again: open the sidebar (Extensions → Custom Count & Sum → Open sidebar) and click Start free trial — no card needed. If your trial has already ended, pick a plan from the same panel.

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.

I share this sheet with colleagues — do they need to install Custom Count & Sum too? ▼

Yes — unlike an add-on that runs on a trigger, this is a custom function (=COUNTBACKGROUNDCOLOR(...) and the rest), and custom functions are evaluated separately for each person viewing the sheet, in their own account's set of installed add-ons. A colleague who opens the sheet without having installed Custom Count & Sum themselves will see #NAME? instead of a result — installing it (and having an active free-tier use, trial, or licence) is what makes the formula resolve for them specifically.

The one exception: a domain admin can install the add-on domain-wide from the Google Workspace Marketplace admin console, which makes the functions available to everyone on that Workspace domain without each person installing it by hand — see team & domain licensing for what that does and doesn't cover.

Troubleshooting

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.

Watch a short video walkthrough of both fixes →

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.

I'm getting a formula parse error — the formula won't be accepted. ▼

The most common cause is the argument separator, which depends on your spreadsheet's locale. Spreadsheets set to a locale that uses a comma as the decimal mark (most of continental Europe) separate function arguments with a semicolon ;, not a comma ,. Formulas copied from the add-on or this website are written with commas, so they fail to parse until you swap them.

=COUNTBACKGROUNDCOLOR("A1:A40", "A1") → parse error
=COUNTBACKGROUNDCOLOR("A1:A40"; "A1") → correct

Fix: replace the commas between arguments with semicolons. You can also change the file's locale under File → Settings → Locale, but that changes number and date formatting for the whole file too, so swapping the separators is usually simpler.

I'm getting "<range> cannot be coerced to a range-object." ▼

This means the range argument isn't a valid A1 reference on this spreadsheet anymore. The most common cause is a renamed or deleted sheet tab — the formula still points at the old tab name.

Fix: open the formula and update the sheet name in the range to match the current tab name, e.g. 'New tab name'!A1:B10.

This can also happen if the range argument accidentally contains plain text instead of a cell reference (e.g. a value copy-pasted into the formula instead of an actual A1 range).

Two other common causes, both from typing or pasting the formula: a stray space inside the range (e.g. "B: B" instead of "B:B", often introduced by autocorrect), or curly/smart quotes ('/') around a sheet name instead of a straight apostrophe ' — common when pasting from Word or Google Docs. Both look correct at a glance but Apps Script rejects them.

I'm getting "…refers to more than one cell. The color-source argument must be a single reference cell or a hex color string." ▼

The color functions (COUNTBACKGROUNDCOLOR, SUMFONTCOLOR, AVERAGEBACKGROUNDCOLOR, …) take two things: the range to scan as the first argument, and which color to match as the second. That second argument must be a single reference cell or a hex color string — not a range.

This error means you passed a multi-cell range like "C3:C20" as the second argument. Point it at one cell that already has the color you want to count:

=COUNTBACKGROUNDCOLOR("C3:C20", "C3")

…or pass the color directly as a 6-digit hex code:

=COUNTBACKGROUNDCOLOR("C3:C20", "#ffff00")

The add-on rejects a multi-cell reference on purpose — Google Sheets would otherwise silently use only the top-left cell's color and give you a wrong count with no warning.

I'm getting "You do not have permission to access the requested document." ▼

This is a Google Sheets sharing/permission error, not an add-on bug. It usually means the person the formula is running for only has Viewer access to the spreadsheet, or their access was recently changed or removed.

Fix: ask the file owner to grant Editor (or at least Commenter) access, or check whether sharing settings changed recently.

I'm getting "the JavaScript engine reported an unexpected error. Error code INTERNAL." ▼

This is a generic, transient error from Google's own Apps Script runtime infrastructure — not something the add-on's code causes or can catch. It shows no stack trace pointing into any add-on file.

Fix: it usually resolves itself. Use the Recalculate all formulas button in the sidebar, or just try again — if it persists on the same formula, contact us.

I'm getting "We are sorry, but you do not have access to this Addon." ▼

This message comes from Google itself, before the add-on even loads — it's not something the add-on controls. It means your Google Workspace organization is blocking access to it.

Fix: contact your Google Workspace administrator and ask them to approve or install Custom Count and Sum via Admin console → Apps → Google Workspace Marketplace apps, for your organizational unit or the whole domain.

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 — SUMALLSHEETS etc. read the same range on every sheet. Exclude irrelevant sheets using the excluded argument, 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.

My *ALLSHEETS formula still includes sheets I put in the excluded list. ▼

The excluded argument of SUMALLSHEETS, COUNTALLSHEETS, AVERAGEALLSHEETS, MAXALLSHEETS, MINALLSHEETS and MEDIANALLSHEETS is a comma-separated list of sheet names. Each name must match the tab name exactly and is case-sensitive:

=SUMALLSHEETS("B2:B50", "Summary,Archive")

The most common reason a name doesn't match: on a non-English spreadsheet the default tabs are localised — Blad1 (Dutch), Feuille1 (French), Hoja1 (Spanish), Tabelle1 (German)… — not Sheet1. Copy the name straight from the tab at the bottom of the sheet.

If a name matches no sheet, that one name is skipped. If you list two or more names and none of them match, the formula returns an error instead of silently aggregating every sheet.

I'm getting "There are too many scripts running simultaneously for this Google user account." ▼

Google limits how many Apps Script executions one Google account can run at the same time (roughly 30). It's a Google account limit — not something the add-on sets, and it can't be raised.

Every custom-function cell is its own execution, so a sheet packed with COUNTSTYLE, SUMFONTCOLOR and similar formulas can hit the ceiling all at once — when you open the file, change a value, or press Recalculate.

It's temporary and only affects your account: the cells show #ERROR! or a loading state and clear on the next recalculation once the other executions finish. Other people's spreadsheets are unaffected.

How to avoid it:

  • Consolidate — one formula over a whole range instead of the same formula repeated in dozens of cells (use the SUMPRODUCT / IS* pattern above — note that IS… on a multi-cell range is a paid feature; a single-cell IS… is free).
  • Freeze finished results — copy the cells and paste them back as Values only when they no longer need to stay live.
  • Bounded ranges and the excluded argument on cross-sheet functions, same as for timeouts.
  • Wait a few seconds and recalculate — short spikes clear on their own.
Advanced & performance

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)

Note that IS… on a multi-cell range is a paid feature; a single-cell IS… is free.

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.

Billing & plans

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, for Google Workspace domains — this requires a Workspace admin console; a personal @gmail.com account has no domain to install across, so the team plan isn't available to it. 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:

  1. Purchase a team license first — this links a number of seats to your domain.
  2. Then install the add-on domain-wide from the Google Workspace Marketplace admin console — this gives people access to open the add-on itself.
  3. 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 — and tick "Email them the install link" to send a new teammate the link straight away.

Need more (or fewer) seats later? Change the count under Seats on your plan in "Manage team seats". It shows the prorated amount before you confirm; the difference is added to (or credited on) your next invoice, and the new rate applies from then on.

⚠ 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 14-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).

On a shared spreadsheet, whose plan counts? ▼

The paid functions unlock per spreadsheet, based on who last opened the sidebar or a menu item in that file with a plan. A custom function can't tell who is reading the cell, so the add-on records one verdict for the whole document.

On a sheet several people edit:

  • When someone with an active trial or plan opens the sidebar (or an add-on menu item), the paid formulas compute for everyone editing that sheet — for as long as that plan runs (subscriptions get a 14-day margin after each billing date).
  • A colleague without a plan opening the add-on there does not switch it off.
  • When that plan ends, the paid formulas show #ERROR. Any plan holder then opens the sidebar once in that file — that re-licenses the document — and uses Recalculate all formulas at the bottom of the sidebar's Functions tab.

If you want every collaborator covered on their own plan rather than one person's, that's what the team plan is for.

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.

Still have questions?

Can't find what you're looking for? We're happy to help.

Email us