A filter is a decision you make for the viewer. A control is a decision you hand to them. Most “my filter isn’t working” problems turn out to be someone reaching for one when they meant the other.
This covers both, all the control types — there are more than the six most guides list — how to scope a control so it only touches what you want, and a diagnostic list for the two things that go wrong most: a control that shows no values, and a control that filters the wrong charts.
Filters and filter controls
Google’s own framing is the cleanest: to filter data before viewers see it, use a filter. To let viewers do the filtering, use a control.
| Filter | Filter control | |
|---|---|---|
| Who decides | You, at build time | The viewer, at read time |
| Visible on the report? | No | Yes — it’s a widget on the canvas |
| Set on | A chart, a page, or the report | Its own component |
| Use for | Excluding internal traffic, restricting to one brand, removing bots | Letting people pick a country, campaign or device |
One consequence of how filters work that saves real time: filters are applied at the data source level, not the chart level, so the field you filter on doesn’t have to appear in the chart. People routinely add a dimension to a table purely so they can filter by it. You don’t need to.
The control types, and what each is for
The Insert menu splits these into two groups, and the split is meaningful: the first group filters your data, the second changes what the report is looking at.
Filter controls
| Control | Use it for | Watch out for |
|---|---|---|
| Drop-down list | The default. Any dimension with more than a handful of values. | Nothing much — this is the workhorse. |
| Fixed-size list | Three to six values you want permanently visible — device category, brand. | Long lists. It doesn’t collapse. |
| Input box | Free-text search across a dimension, like landing pages. | Matching is case-sensitive by default. |
| Advanced filter | Contains / starts with / regex matching. The one to use for “any URL under /blog/”. | Viewers may not be able to see applied advanced filters, depending on an admin setting. |
| Slider | A numeric range — but see the note below. | It filters numeric dimensions, not metrics. |
| Tickbox (Checkbox in US English) | A single true/false dimension. | Needs a genuine boolean field. |
| Preset filter | One-click views — “Paid only”, “Branded only”. | Needs a boolean field; up to five per page, and selecting one deselects the others. |
| Viewer filter bar | Letting readers build their own filters, without you placing a control for each. | More freedom than most client reports want. |
The other controls
- Date range control — the calendar widget. It has enough going on to deserve its own post.
- Data control — lets a viewer swap the underlying account. This is how one report serves several GA4 properties without you duplicating it, and it’s the most under-used thing in the list.
- Dimension control — lets a viewer change which dimension a chart breaks down by, without edit access. One table becomes “by channel / by campaign / by landing page” at the reader’s choice. Almost no guide mentions it exists.
- Button — including a reset button to clear the filters someone has set. Worth adding to any report with three or more controls.
The slider, specifically
Several widely-read posts say the slider filters metrics. It doesn’t. A slider filters a range of values in a numeric dimension, or selects a single value from a numeric parameter.
That’s why “let viewers filter to campaigns with spend over £1,000” doesn’t work the way people expect — spend is a metric. If you need that, the usual route is a calculated field bucketing the metric into a dimension, then filter on the bucket.
The slider itself has four modes — a range, a single value, a locked minimum or a locked maximum — plus step size and tick marks.
Where a control applies
By default, a control affects as many charts on the page as it can. That’s usually what you want and occasionally exactly what you don’t.
Scoping a control to specific charts
Select the control and the charts it should affect, then Arrange → Group (Cmd/Ctrl+G). A grouped control only touches its own group.
This is the answer to the most-asked scoping question — how do I stop this scorecard being affected by the control? Group the control with everything except the scorecard. There’s no per-chart “ignore this control” setting; grouping is the mechanism.
Making a control cover every page
Arrange → Make report-level. The control appears on every page in the same position and the viewer’s selection carries across pages — the same mechanism as report-level date controls. For any report of more than three pages, do this rather than copying controls onto each page.
Filtering charts from two different data sources
This is where the widely-repeated advice is now out of date. You’ll still read that a control can only filter charts using the same data source. That hasn’t been true for a while.
Controls match on field IDs, not on display names. So a control fails to reach a chart from another source not because of the source, but because the two fields have different internal IDs — even when both are called “Country” on screen.
The fix is Resource → Manage field names and IDs → Add field override. Give the fields in each source a matching New ID and the same data type, and one control will filter across both.
Two things before you do it:
- It’s available on free accounts. This isn’t a Pro feature, despite how rarely it’s written about.
- Changing a field ID that’s already in use breaks the charts using it. Do this early in a build, not on a live client report on a Friday.
The reason field IDs work this way at all — and why you can rename a field safely but not remove one — is covered in data sources vs datasets.
Cross-filtering
Cross-filtering is clicking a chart to filter everything else on the page — click “Organic Search” in a channel table and the whole page narrows to organic. It makes a report feel like a tool rather than a printout, and it costs nothing to enable.
Four things worth knowing:
- It’s on by default for most connectors, but off for the ads connectors, for performance reasons. That’s the actual answer to “cross-filtering doesn’t work on my Google Ads report” — enable it on the chart, in Setup, under Chart interactions.
- It isn’t available on scorecards or bullet charts.
- You can’t cross-filter on an “Others” row, since it isn’t a real category — see the row limits section for why that row exists.
- To clear it: click the selection again to deselect, click the chart’s border, right-click and choose Reset action, or clear it from the filter bar.
Why your filter control shows no values
An empty drop-down is the most common control problem and there’s no good answer anywhere for it. In order of likelihood:
- The control’s own date range excludes everything. Controls have their own date range property, separate from the page’s. If it’s set to a period with no data, the list is empty.
- A filter on the control itself is excluding the values. Check the control’s Setup tab for a filter you added and forgot.
- “Show top N” is set, so everything beyond the limit is collapsed into “All others”.
- Field ID mismatch — the control is bound to a different data source than you think. See the section above.
- The field’s names changed upstream. Edit the data source and use Refresh fields.
- The dimension has no non-null values in the current scope. Nothing to list.
- Viewer’s credentials, and whoever’s looking has no access to the underlying data. It’ll look empty to them and fine to you — which is the most confusing version of this.
- Case sensitivity. Text matching is case-sensitive by default; a regex prefixed with
(?i)matches case-insensitively.
Controls filter each other, which is usually what you want
Controls filter other controls, not just charts. Pick a country and the city drop-down narrows to cities in that country. That cascading behaviour is genuinely useful and it’s on by default.
It’s also the ninth reason a control looks empty: another control upstream has narrowed it to nothing. If a drop-down is empty and you’ve been through the list above, check what else is selected on the page before you go any further.
Managing filters before they manage you
Resource → Manage filters lists every filter in the report. Filters are reusable objects, so the same trap applies as with reusable data sources: edit a filter that’s used in several places and you change all of them.
Two habits worth adopting on any report you’ll maintain:
- Name filters for what they do — “Exclude internal IPs”, not “Filter 3”. Six months later this is the difference between a two-minute change and a twenty-minute one.
- Check Manage filters before debugging a number. A report-level filter someone added last quarter explains a surprising share of “these numbers look wrong” tickets.
How many controls, depending on who’s reading
A client report: two or three controls, maximum — a date range, and one or two dimensions that matter. Every control is a thing that can be set wrong and then reported as a bug. Add a reset button. Use preset filters instead of drop-downs where the choices are genuinely binary; they’re easier to use and harder to get wrong.
An internal dashboard for a team that knows the data: be more generous. Cross-filtering on, a dimension control on the main table, and a viewer filter bar if people genuinely want to slice things themselves. The failure mode here is under-building, not over-building.
A report serving several accounts: this is what a data control is for. One report, a control that swaps the account, and no duplicates to keep in sync. For agencies it’s the single biggest maintenance saving available in the tool, and it’s the alternative to copying a template per client — worth considering before you make the fifteenth copy.
Frequently asked questions
What’s the difference between a filter and a filter control?
A filter is applied by you at build time and is invisible to viewers. A control is a widget on the report that lets viewers filter for themselves. Use a filter to decide something on their behalf, a control to hand them the decision.
Why does my filter control show no values?
Most often the control’s own date range excludes all the data — controls have a date range property separate from the page’s. Also check for a filter on the control itself, a “Show top N” setting, a field-ID mismatch with the data source, or another control upstream that has narrowed it to nothing.
Why doesn’t my control filter every chart on the page?
Either the control is grouped with a subset of charts, or the charts use a different data source whose field IDs don’t match. Ungroup to widen the scope, or set matching field IDs under Resource → Manage field names and IDs.
How do I stop one chart being affected by a control?
Group the control with the charts it should affect, using Arrange → Group. There’s no per-chart opt-out — grouping is the mechanism.
Can one control filter charts from two different data sources?
Yes. Controls match on field IDs rather than display names, so give the equivalent fields in each source the same ID and data type under Resource → Manage field names and IDs → Add field override. It works on free accounts. Note that changing an ID already in use breaks charts using that field.
Drop-down list or fixed-size list — which should I use?
Drop-down for anything with more than a handful of values; it’s the default for good reason. Fixed-size when there are three to six options and you want them permanently visible, like device category.
Can I filter by a metric with a slider?
No. Sliders filter numeric dimensions, or select a value from a numeric parameter — not metrics. To filter on a metric, build a calculated field that buckets it into a dimension and filter on that.
Why isn’t cross-filtering working on my Google Ads charts?
Cross-filtering is off by default for ads connectors, for performance. Turn it on per chart in Setup, under Chart interactions. It’s also unavailable on scorecards and bullet charts.
How do I clear a cross-filter?
Click the selected value again to deselect, click the chart’s border, right-click and choose Reset action, or clear it from the filter bar.
How do I add a reset button for my filters?
Insert a Button control and set it to reset filters. Worth doing on any report with three or more controls — otherwise people leave a filter set and think the data is wrong.
Do I need to add a field to a chart to filter by it?
No. Filters are applied at the data source level, so the field you filter on doesn’t have to appear in the chart at all.

