# 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.

- Language: English
- Web page: https://plumevisuals.com/en/tutorials/barre-de-filtres-multichamps
- Published: 2026-10-01
- Visual: Filter Bar Plume, technical reference: https://plumevisuals.com/ai/visuals/filter-bar.md
- If an option name in this tutorial differs from the technical reference, the reference is right (it is generated from the visual's code).

## At 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](/en/tutorials/bien-demarrer-visuels-plume)), 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](/en/tutorials/bien-demarrer-visuels-plume#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](/en/tutorials/bien-demarrer-visuels-plume#glossary)). The bar does not do partial highlighting.
- **Bookmarks and slicer sync restore all the bar's filters** (see the [how-to guides](/en/tutorials/filter-bar-plume-cas-pratiques)).

## The data to provide

The visual needs:

- **1 to 8 columns to filter** (see the [glossary](/en/tutorials/bien-demarrer-visuels-plume#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](/en/tutorials/bien-demarrer-visuels-plume#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 | 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 |

The same dataset, ready to paste: **Modeling › New table**, then paste the formula.

```dax
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:** **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):

```dax
// 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. Use `COUNTROWS` or `SUM`.
- **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 `COUNTROWS` measure 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 `Year` column of type whole number filters very well; if you derive it from a date, create a column `Year = YEAR ( Tickets[Open date] )`.

## Step by step: your first Filter Bar Plume in 12 minutes

1. In the ribbon, **Modeling › New table**: paste the `Tickets = DATATABLE(...)` formula from the ["The data to provide"](#the-data-to-provide) section and confirm. The `Tickets` table appears in the **Data** pane.
2. Select the `Tickets` table, then **Modeling › New measure**: paste `Ticket count = COUNTROWS ( Tickets )` and confirm.
3. In the **Visualizations** pane, insert a native **Card** and drag `Ticket count` into it. It shows 12: this is the check that will show the effect of the filters.
4. 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.
5. 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.
6. Drag `Team` into the **Fields** well. A first "Team" menu appears.
7. Drag `Channel` into the **Fields** well, below `Team`.
8. Drag `Priority` into the **Fields** well, below `Channel`. The bar now has three menus, in the order of the well.
9. Drag `Ticket count` into the **Count (e.g. COUNTROWS)** well. The menus show a number next to each value.
10. In the **Format** pane (paintbrush icon in the Visualizations pane), **Active filters summary** card, type `tickets` in **Total unit (e.g. orders)**.

11. Open the **Channel** menu and check **Phone**. A "Channel" chip appears under the bar, followed by the total "→ 5 tickets"; the card shows 5.
12. Open the **Priority** menu. The counts take the chosen channel into account: 3 · High 2, 2 · Normal 2, 1 · Low 1.

13. 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…)](/en/tutorials/filter-bar-plume-cas-pratiques): recipes for common needs.
- [Filter Bar Plume: all fields and settings explained](/en/tutorials/filter-bar-plume-champs-et-reglages): every field well and every setting.
- [Getting started with Plume visuals](/en/tutorials/bien-demarrer-visuels-plume): installation, license, styles and settings shared by all visuals.
- The visual's page: [Filter Bar Plume](/en/visuals/filter-bar). A question? [Support](/en/support).
