# A search box that filters the report: getting started with Text Plume

> Get started with Text Plume: type a few letters to filter the report, accents ignored, highlighted suggestions, and pick the column to search with chips.

- Language: English
- Web page: https://plumevisuals.com/en/tutorials/text-plume-prise-en-main
- Published: 2026-10-20
- Visual: Text Plume, technical reference: https://plumevisuals.com/ai/visuals/text-slicer.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).

## In short

- **What the visual does.** Text Plume is a **search box** slicer: you type a few letters, and the report keeps only the values that contain them. Think of the search bar in your email app: "dupre" finds "Dupré Bakery", whatever the capitals or accents. With two columns, **chips** under the box pick the one to search (Customer or City).
- **When to use it.**
  - When the list of values is too long to tick: thousands of customers, order numbers or product codes.
  - To find a value when you only know part of it ("lyon" in "Lyonnais Workshop" and "Café de Lyon").
  - To search one column, then another, without two slicers side by side.
- **When to use something else.** To tick values in a list or a menu, use Basic Slicer Plume; to see how much each value weighs with bars, Bar Slicer Plume; for a range of numbers or dates, Range Plume, Period Plume or Date Picker Plume.
- **By the end of this tutorial, you will know how to:**
  - filter the report by typing in the box;
  - use the suggestions with the keyboard;
  - search two columns with the chips;
  - read the information line and the header count;
  - understand what the slicer filters, and when.
- **What you need.** A recent Power BI Desktop, the Text Plume visual installed (see [the shared basics](/en/tutorials/bien-demarrer-visuels-plume)), one or two text columns to search.

### 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 that is taken into account: if you type "cafe" in the box, every chart on the page only calculates the orders of the customers whose name contains "café". With an empty box, the page shows everything.

What to remember about how Text Plume behaves:

- **It filters the columns placed in Fields to search.** The filter keeps the values of the column that match the typed text; the other visuals are recalculated on those values.
- **It compares like a person would.** By default, case (capital and small letters) and accents are ignored: "Rosch" finds "Rösch", "peri" finds "Périgueux".
- **It picks the sturdiest filter by itself.** When it can, it sends Power BI a **condition** ("contains cafe") that holds for every row of the model. Otherwise (accents that change the result, "Ends with", several columns at once…), it sends the **list of matching values** found in the loaded rows, up to 100,000. There is nothing to set: the result is the same.
- **Other visuals filter it.** If another slicer picks the city "Paris", the suggestions only offer Paris customers. This is **cross-filtering** (see the [glossary](/en/tutorials/bien-demarrer-visuels-plume#glossary)).
- **The typed text is saved with the filter.** A bookmark, coming back to the page or reopening the report brings the text back as you typed it (see the [how-to guides](/en/tutorials/text-plume-cas-pratiques)).

## The data you need

The visual needs **one column** (see the [glossary](/en/tutorials/bien-demarrer-visuels-plume#glossary)), or **two** to pick where to search with the chips. They must be real table columns, not measures: that's what the filter applies to. The columns can come from the same table or from related tables (a Customers table related to the Orders table, for example). Numbers and dates are accepted: the visual then compares the text with their label.

No measure is needed: Text Plume doesn't calculate anything, it searches. Your table can have one row per order: the visual groups identical values itself.

Sample dataset: the orders of a wholesaler (fictitious data), one row per order.

| Order | Customer | City | Amount |
|---|---|---|---|
| FR-1042-2026 | Dupré Bakery | Périgueux | 420 |
| FR-1043-2026 | Harbor Café | Nantes | 180 |
| FR-1051-2026 | Rösch and Sons | Strasbourg | 960 |
| FR-1052-2026 | Lyonnais Workshop | Lyon | 310 |
| BE-2001-2026 | Liège Brewery | Liège | 540 |
| FR-1060-2026 | North Grocery | Lille | 275 |
| FR-1061-2026 | Hôtel Saint-Front | Périgueux | 1200 |
| CH-3005-2026 | Lake Geneva Creamery | Geneva | 640 |
| FR-1070-2026 | Café de Lyon | Paris | 150 |
| FR-1071-2026 | Parisian Bookshop | Paris | 390 |

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

```dax
Orders =
DATATABLE (
    "Order", STRING,
    "Customer", STRING,
    "City", STRING,
    "Amount", INTEGER,
    {
        { "FR-1042-2026", "Dupré Bakery", "Périgueux", 420 },
        { "FR-1043-2026", "Harbor Café", "Nantes", 180 },
        { "FR-1051-2026", "Rösch and Sons", "Strasbourg", 960 },
        { "FR-1052-2026", "Lyonnais Workshop", "Lyon", 310 },
        { "BE-2001-2026", "Liège Brewery", "Liège", 540 },
        { "FR-1060-2026", "North Grocery", "Lille", 275 },
        { "FR-1061-2026", "Hôtel Saint-Front", "Périgueux", 1200 },
        { "CH-3005-2026", "Lake Geneva Creamery", "Geneva", 640 },
        { "FR-1070-2026", "Café de Lyon", "Paris", 150 },
        { "FR-1071-2026", "Parisian Bookshop", "Paris", 390 }
    }
)
```

> **Warning:** **Warning**: Depending on your regional settings, Power BI Desktop may expect `;` instead of `,` between DAX arguments. If it rejects the formula, replace the commas with semicolons, or change the DAX separators setting in the Power BI Desktop options.

The measure to create to see the effect of the filter (**Modeling › New measure**, with the `Orders` table selected):

```dax
// Revenue: the revenue of the orders kept by the filter.
// SUM adds up the Amount column of the visible rows:
// type "cafe" and only Harbor Café (180) and Café de Lyon (150) remain, that is 330.
Revenue = SUM ( Orders[Amount] )
```

Preparation pitfalls:

- **A measure in Fields to search**: Power BI refuses it; only columns go there.
- **A number or date column**: accepted, but the visual compares the text with the displayed label ("1200", "3/15/2026") and always sends the list of matching values.
- **Many rows**: beyond 100,000 loaded rows, a search that has to go through the list of values says so ("Search limited to the first N rows loaded"). A simple "contains" or "starts with" search on a single text column has no such limit.
- **Blank values**: an empty cell shows as "(Blank)" in the suggestions (label set in **Format › Results**).
- **Two columns that aren't related**: if `Customer` and `City` come from two tables without a relationship, Power BI can't cross them; put them in the same table or relate the tables.

## Step by step: your first Text Plume in 10 minutes

1. On the ribbon, select **Modeling › New table**: paste the `Orders = DATATABLE(...)` formula from ["The data you need"](#the-data-you-need) and confirm. The `Orders` table appears in the **Data** pane.
2. Select the `Orders` table, then **Modeling › New measure**: paste `Revenue = SUM ( Orders[Amount] )` and confirm.
3. In the **Visualizations** pane, insert a native **Table** and drop `Order`, `Customer`, `City` and `Amount` into it. This is the check table: it shows the ten orders.
4. Click an empty area of the page, then the **Text Plume** icon. A frame appears, with a landing page asking you to drop one or several columns.
5. Drop `Customer` into the **Fields to search** well. The visual shows the title "Customer", the count "10 values" and a box that reads "Search in Customer…".
6. Click in the box and type `cafe`. The check table keeps only **Harbor Café** and **Café de Lyon**: accents are ignored. Under the box, the information line reads "2 value(s) found", and the header "2 of 10".
7. Click the clear (×) button in the box. The check table gets its ten rows back.
8. Type `lyo`. The **suggestions** open under the box, with "lyo" highlighted: Lyonnais Workshop and Café de Lyon. Press ↓ until **Café de Lyon** is selected, then **Enter** (clicking the suggestion does the same). The value replaces the typed text and the check table keeps only that order.
9. Clear the box, then drop `City` into **Fields to search**, below `Customer`. **Chips** appear under the box: "All fields", "Customer" and "City"; "Customer" is selected.
10. Type `lyon`. The table keeps Lyonnais Workshop and Café de Lyon (the customers whose name contains "lyon").
11. Click the **City** chip. The same text is applied to the `City` column: the table now keeps only the order delivered to **Lyon**, from Lyonnais Workshop. The placeholder becomes "Search in City…".

Result: a search box that filters the whole report, on the column of your choice, with suggestions. To clear the filter, click the clear (×) button in the box or the **Clear** button in the header.

> **Note:** **Good to know**: the **All fields** chip searches `Customer` **and** `City` at once; it's a ★ feature. Clicking it works without a license, with a watermark. To remove it, turn off **Format › Fields › "All fields" chip ★**.

## Troubleshooting

| What you see | Likely cause | Solution |
|---|---|---|
| The check table is empty and the line reads "No value matches" | No value of the chosen column contains the text (chip on the wrong column, typo). | Check the selected chip and the text. To leave the report unfiltered when nothing matches: **Format › Results › When nothing matches** = *Do not filter*. |
| Nothing happens while typing; "Press Enter to filter" shows under the box | **Format › Input › Filter** is set to *With Enter or the button*. | Press **Enter** or click **Filter**, or go back to *As you type*. |
| "Type at least n characters" under the box | **Format › Search › Minimum characters** is higher than the number of letters typed. | Type more letters, press **Enter** (the minimum is then ignored), or lower the setting. |
| "Rosch" doesn't find "Rösch" | **Ignore accents (é = e)** is off in **Format › Search**. | Turn it back on. |
| No chips under the box | Only one column in **Fields to search**, or **Format › Fields › With several fields** is set to *Search all fields*. | Add a second column, or go back to *Pick the field (chips under the box)*. |
| "Search limited to the first N rows loaded" under the box | The search goes through the list of matching values, and the model has more rows than the visual loads. | A simple search on a single text column (*Contains*, *Starts with* or *Is exactly*) has no such limit; otherwise, filter the page first with another slicer. |
| Sync slicers has no effect | The visual has two columns or more: Power BI then turns off slicer sync for it. | Keep a single column in the slicer you want to sync. |
| The "Premium preview" watermark appears | A ★ feature is used without a valid key: several terms separated by `;`, a `*` or `?` wildcard, an exclusion `-term`, a regular expression, the **All fields** chip, or 3 columns or more. | Paste a key in **Plume Studio License › License key**, or go back to a single term, without wildcards, on 1 or 2 columns. |

## Key takeaways

- Text Plume filters the report with the typed text; case and accents are ignored by default.
- Suggestions are picked with the keyboard (↓ ↑ then **Enter**) or the mouse.
- With two columns, the chips pick where to search; the text follows when you switch chips.
- The visual sends a Power BI condition when it gives exactly the same result, otherwise the list of matching values.
- The typed text comes back with bookmarks, when you return to the page and when the report is reopened.

## Learn more

- [Text Plume: 9 how-to guides (pasted list, wildcards, bookmarks…)](/en/tutorials/text-plume-cas-pratiques): recipes for common needs.
- [Text Plume: every field and setting explained](/en/tutorials/text-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: [Text Plume](/en/visuals/text-slicer). Have a question? [Support](/en/support).
