A multi-field filter bar in a single visual
Get started with Filter Bar Plume: put several fields in one bar, with faceted counts and active filter chips. Build your first filter bar in about 12 minutes.
Lire en françaisAt a glance
- What the visual does. Filter Bar Plume combines up to 8 slicers in a single visual: a bar of dropdown menus across the top of the page, or a panel of expandable sections down the side. Think of the filter bar on an online store: brand, size, color, each in its own menu, with the number of items left next to each option, and the active filters shown as tags you remove with one click.
- When to use it.
- When five slicers side by side take up half the page.
- When readers need to know, before they check an option, how many rows they will have left (faceted counts).
- To keep what is filtered visible at all times (chips and total after filters).
- For a mobile layout: below a certain width, the bar turns into a "Filters" button.
- When to use something else. For a hierarchy (Category › Product), use Basic Slicer Plume. For a field with a very large number of values where you want to see the weight of each one, use Bar Slicer Plume. For a range of numbers or dates, use Range Plume or Period Plume.
- By the end of this tutorial, you will know how to:
- prepare suitable columns and a count measure;
- build a bar of three filters with counts and chips;
- understand how filters on several fields combine;
- sync the bar across several pages and save filter "views" in bookmarks;
- adapt the bar to a side panel or a phone.
- What you need. A recent version of Power BI Desktop, the Filter Bar Plume visual installed (see the common basics), and columns to filter in a single fact table or in tables related to it.
What is a slicer?
A slicer is a visual that doesn't show numbers: its job is to filter the other visuals on the page. A filter (see the glossary) limits the data taken into account: if you pick the "Chat" channel, every chart on the page only counts tickets that came in by chat. Filter Bar Plume is several slicers packed into a single visual.
What to remember about how Filter Bar Plume behaves:
- One filter per field. Each field where you check something sends its own filter; a field with nothing checked sends nothing.
- Within a field, values add up; across fields, they combine. Checking "Chat" and "Email" under Channel, then "3 · High" under Priority gives you: tickets that came in by chat or by email, and with high priority.
- All filters are sent together. On every click (or when you click Apply ★), the bar sends the filters for all its fields at once.
- Counts are "faceted". The number shown next to a value takes into account the choices made in the other fields of the bar: after you pick "Phone" under Channel, the Priority menu shows how many phone tickets are left for each priority.
- Other visuals filter it. If another slicer on the page picks the year 2026, the bar's lists and counts are recalculated for 2026. This is cross-filtering (see the glossary). The bar does not do partial highlighting.
- Bookmarks and slicer sync restore all the bar's filters (see the how-to guides).
The data to provide
The visual needs:
- 1 to 8 columns to filter (see the glossary), ideally in the same fact table (one row per ticket, per order…) or in dimension tables related to it. They must be real columns, not measures: the filters apply to them.
- A count measure (see the glossary), optional but strongly recommended: it feeds the numbers next to the values and the total after filters. It must be additive (
COUNTROWS,SUM), because the visual adds up the counts itself.
The visual reads one row per existing combination of the fields (Tier 1 + Chat + Low, Tier 1 + Phone + Normal…) with the count for each combination, and derives the value lists and the faceted counts from them. The measure has a second role: without it, Power BI may return every possible combination, even ones that don't exist in the data.
Sample dataset: customer support tickets (fictitious data), one row per ticket.
| Year | Team | Channel | Priority | Status |
|---|---|---|---|---|
| 2025 | Tier 1 | Phone | 2 · Normal | Resolved |
| 2025 | Tier 1 | Chat | 1 · Low | Resolved |
| 2025 | Tier 2 | 3 · High | In progress | |
| 2025 | Tier 2 | Phone | 3 · High | Resolved |
| 2025 | Billing | 2 · Normal | Resolved | |
| 2025 | Billing | Chat | 1 · Low | Closed, no action |
| 2026 | Tier 1 | Chat | 2 · Normal | In progress |
| 2026 | Tier 1 | Phone | 1 · Low | Resolved |
| 2026 | Tier 2 | Chat | 3 · High | In progress |
| 2026 | Tier 2 | Phone | 2 · Normal | Resolved |
| 2026 | Billing | Phone | 3 · High | Resolved |
| 2026 | Billing | 1 · Low | In progress |
The same dataset, ready to paste: Modeling › New table, then paste the formula.
Tickets =
DATATABLE (
"Year", INTEGER,
"Team", STRING,
"Channel", STRING,
"Priority", STRING,
"Status", STRING,
{
{ 2025, "Tier 1", "Phone", "2 · Normal", "Resolved" },
{ 2025, "Tier 1", "Chat", "1 · Low", "Resolved" },
{ 2025, "Tier 2", "Email", "3 · High", "In progress" },
{ 2025, "Tier 2", "Phone", "3 · High", "Resolved" },
{ 2025, "Billing", "Email", "2 · Normal", "Resolved" },
{ 2025, "Billing", "Chat", "1 · Low", "Closed, no action" },
{ 2026, "Tier 1", "Chat", "2 · Normal", "In progress" },
{ 2026, "Tier 1", "Phone", "1 · Low", "Resolved" },
{ 2026, "Tier 2", "Chat", "3 · High", "In progress" },
{ 2026, "Tier 2", "Phone", "2 · Normal", "Resolved" },
{ 2026, "Billing", "Phone", "3 · High", "Resolved" },
{ 2026, "Billing", "Email", "1 · Low", "In progress" }
}
)
Warning: Depending on your regional settings, Power BI Desktop may expect ; instead of , between DAX arguments.
The measure to create (Modeling › New measure, with the Tickets table selected):
// Ticket count: the count for each value and the total after filters.
// COUNTROWS counts the rows of the table: here, one row = one ticket.
// It is a count, so an additive measure: the visual can add up
// the counts of the combinations without getting it wrong.
Ticket count = COUNTROWS ( Tickets )
Preparation pitfalls:
- Non-additive count:
DISTINCTCOUNT, an average or a percentage give wrong faceted counts. UseCOUNTROWSorSUM. - Fields from unrelated tables, with no measure: combinations that don't exist show up and the visual slows down. Relate the tables to the fact table and add a
COUNTROWSmeasure on the fact table. Reminder: two dimensions only filter each other through the fact table. - Too many combinations: the number of rows read is the number of combinations, which multiplies with each field (customer × product × day grows fast). Above 100,000 combinations, a warning icon appears. Use less detailed fields, or a dedicated Bar Slicer Plume for a field with a very large number of values.
- Logical order of values: prefix them ("1 · Low", "2 · Normal", "3 · High") so that a Label A → Z sort follows their order without a sort column.
- Year as a number: a
Yearcolumn of type whole number filters very well; if you derive it from a date, create a columnYear = YEAR ( Tickets[Open date] ).
Step by step: your first Filter Bar Plume in 12 minutes
-
In the ribbon, Modeling › New table: paste the
Tickets = DATATABLE(...)formula from the "The data to provide" section and confirm. TheTicketstable appears in the Data pane. -
Select the
Ticketstable, then Modeling › New measure: pasteTicket count = COUNTROWS ( Tickets )and confirm. -
In the Visualizations pane, insert a native Card and drag
Ticket countinto it. It shows 12: this is the check that will show the effect of the filters. -
Click an empty area of the page, then the Filter Bar Plume icon. A frame appears, with a welcome screen inviting you to add fields.
-
Stretch the frame across the full width of the top of the page (more than 420 px), about 100 px high. Below 420 px wide, the bar would collapse into a "Filters" button.
-
Drag
Teaminto the Fields well. A first "Team" menu appears. -
Drag
Channelinto the Fields well, belowTeam. -
Drag
Priorityinto the Fields well, belowChannel. The bar now has three menus, in the order of the well. -
Drag
Ticket countinto the Count (e.g. COUNTROWS) well. The menus show a number next to each value. -
In the Format pane (paintbrush icon in the Visualizations pane), Active filters summary card, type
ticketsin Total unit (e.g. orders). -
Open the Channel menu and check Phone. A "Channel" chip appears under the bar, followed by the total "→ 5 tickets"; the card shows 5.
-
Open the Priority menu. The counts take the chosen channel into account: 3 · High 2, 2 · Normal 2, 1 · Low 1.
-
Click Clear all. The chips disappear, all filters are removed and the card goes back to 12.
Result: a single bar that replaces three slicers and tells you at all times what is filtered and how many tickets are left.
Troubleshooting
| What you see | Likely cause | Fix |
|---|---|---|
| No numbers next to the values, no total | The Count (e.g. COUNTROWS) well is empty, or Value lists › Counts next to values is turned off. | Add a COUNTROWS measure and check the setting. |
| The counts look wrong | The measure is not additive (DISTINCTCOUNT, average…). | Use COUNTROWS or SUM. |
| The counts don't change when you filter another field | The two fields are in tables that don't filter each other (missing relationship, or one in the wrong direction). | Relate each dimension table to the fact table. |
| Values that never occur together show up, the visual is slow | Fields from unrelated tables and no count measure: Power BI returns every combination. | Relate the tables and add a COUNTROWS measure on the fact table. |
| A warning icon says only the first n values are loaded | More than 100,000 field combinations. | Use fewer fields or less detailed ones; a very detailed field is better suited to a Bar Slicer Plume. |
| The bar is replaced by a "Filters" button | The fields don't fit in the frame (or the visual is narrower than the chosen collapse width). | Make it bigger, or set Layout › Collapse into a "Filters" button to Never. |
| A menu fills the whole visual | The visual is too short to show the menu below the bar; this is by design. | Make the visual taller if you prefer a classic dropdown menu. |
| "Single-selection fields" has no effect | The name doesn't match the field name shown in the well (renamed field, typo, wrong separator). | Copy the name exactly as shown; separate fields with ;. |
| A menu doesn't show all values | Maximum values shown (300 by default) has been reached. | Use search, or increase the value. |
| The "Premium preview" watermark appears | More than 3 fields, the "Apply" button ★, or a style ★ / Theme JSON ★, without a valid key. | Paste a key in Plume Studio License › License key, or go back to the free features. |
Key takeaways
- Filter Bar Plume is up to 8 slicers in a single visual: one filter per field, combined across fields.
- An additive count measure (
COUNTROWS) gives you faceted counts and the total after filters, and avoids combinations that don't exist. - Layout and Collapse into a "Filters" button adapt the bar to the top of the page, a side column or a phone.
- Bookmarks and slicer sync restore all the bar's filters; bookmarks also work as saved "views".
- Chips and the total show at all times what is filtered and what is left.
Learn more
- Filter Bar Plume: 9 how-to guides (Apply button, mobile, views…): recipes for common needs.
- Filter Bar Plume: all fields and settings explained: every field well and every setting.
- Getting started with Plume visuals: installation, license, styles and settings shared by all visuals.
- The visual's page: Filter Bar Plume. A question? Support.