Filters & Slicers
Filtering is the mechanism that determines which data appears in your visuals. Power BI provides a layered filtering system — from individual visuals up to the entire report — plus interactive slicers, drillthrough pages, and bookmarks. This chapter covers every layer in depth so you can build reports where users see exactly the data they need.
Understanding Filters in Power BI
How Filters Flow in the Data Model
Filters in Power BI follow the relationships in your data model. When a filter is applied to a dimension table, it flows through relationships to filter the related fact table.
Example: If a slicer filters the Region table to "West", this filter:
- Restricts the Region table to rows where Region = "West".
- Flows through the relationship to the Sales fact table.
- Keeps only Sales rows related to the "West" region.
- All visuals connected to Sales now show only West region data.
This is called filter context — the set of active filters that determine which rows of data are visible for any calculation or visual.
Filter Direction
| Relationship Type | Filter Direction | Behavior |
|---|---|---|
| Single (default) | From dimension to fact | Filtering a dimension filters the fact table |
| Both (bidirectional) | Both directions | Filtering either table filters the other. Use with caution — can cause ambiguity. |
The Filters Pane
The Filters pane is located on the right side of the Power BI Desktop canvas (it may be collapsed). It has three sections:
| Section | Scope | When Applied |
|---|---|---|
| Filters on this visual | Only the currently selected visual | When you select a specific visual |
| Filters on this page | All visuals on the current page | Always active on this page |
| Filters on all pages | All visuals on every page in the report | Always active throughout the entire report |
The Filters pane is always available in edit mode. In reading view (or in Power BI Service for consumers), it can be shown or hidden based on report settings.
Filter Types
Comparison Table
| Filter Type | Scope | Set By | Visible to Users | Use Case |
|---|---|---|---|---|
| Visual-level | One visual | Author or user | In Filters pane if not hidden | Restrict a specific chart to a subset of data |
| Page-level | All visuals on one page | Author or user | In Filters pane if not hidden | Ensure an entire page focuses on one segment |
| Report-level | All visuals on all pages | Author or user | In Filters pane if not hidden | Apply a global restriction (e.g., exclude test data) |
| Drillthrough | Target page only | Author (setup) and user (activation) | Visible as filter context on the drillthrough page | Navigate to a detail page for a specific item |
| Slicer | Depends on sync settings | User (interactive) | Always visible on canvas | Give users interactive control over filtering |
| Cross-filter | Depends on interactions | User (by clicking visuals) | Temporary — resets on click elsewhere | Explore data by clicking on chart elements |
| URL filter | Report-level | External link | Not visible in Filters pane | Pre-filter a report via a URL parameter |
Visual-Level Filters
Visual-level filters apply to a single visual. They are useful when you want one chart to show a specific subset while the rest of the page shows all data.
Example: On a page showing company-wide sales, you want one bar chart to show only the top 5 products. Apply a Top N visual-level filter to that chart alone.
How to apply:
- Select the visual.
- In the Filters pane, expand Filters on this visual.
- Drag a field into the filter area (or use a field already assigned to the visual).
- Configure the filter (select values, set conditions).
Page-Level Filters
Page-level filters apply to every visual on the current page. They are useful for creating focused pages — for example, a "West Region" page that only shows western data.
How to apply:
- Make sure no visual is selected (click the canvas background).
- In the Filters pane, expand Filters on this page.
- Drag a field into the filter area.
- Configure the filter.
Report-Level Filters
Report-level filters apply across all pages. Common uses:
- Exclude test or dummy data from the entire report.
- Restrict the report to a specific time period.
- Filter out inactive customers or discontinued products.
How to apply:
- In the Filters pane, expand Filters on all pages.
- Drag a field into the filter area.
- Configure the filter.
Drillthrough Filters
Drillthrough filters are applied when a user right-clicks a data point in one visual and selects Drillthrough to navigate to a detail page. The drillthrough page receives the selected value as a filter. This is covered in detail later in this chapter.
The Filters Pane
Adding Fields to Filters
There are two ways to add a field to a filter:
- Drag and drop — Drag a field from the Data pane directly into the desired filter section.
- From a visual — When a field is already in a visual's field wells, it automatically appears in the "Filters on this visual" section. You can then configure filter conditions.
Filter Types Available in the Filters Pane
When you add a field to the Filters pane, you can choose from several filter types depending on the data type:
| Filter Type | Available For | Description |
|---|---|---|
| Basic filtering | Text, numbers | Select specific values from a list |
| Advanced filtering | Text, numbers | Define conditions (contains, starts with, is, is not, etc.) |
| Top N | Numbers | Show only the top or bottom N values by a measure |
| Relative date | Dates | Filter to relative time periods (last 7 days, this month, etc.) |
| Relative time | DateTime | Filter to relative time periods with time granularity (last 5 minutes, etc.) |
To switch filter types, click the filter type dropdown at the top of each filter card.
Locking Filters
You can lock a filter to prevent report consumers from changing it:
- Hover over the filter card in the Filters pane.
- Click the lock icon.
- The filter value is now fixed — users cannot modify it in reading view.
This is useful for report-level filters that enforce data boundaries (e.g., always exclude test data).
Hiding Filter Cards
You can hide individual filter cards from end users while keeping them active:
- Hover over the filter card.
- Click the eye icon to hide it.
- The filter still applies, but users do not see it in the Filters pane.
You can also hide the entire Filters pane:
- Go to View > Filters pane.
- Toggle visibility on or off.
Basic Filtering
Basic filtering lets you select specific values from a list.
How to Use Basic Filtering
- Add a field to the Filters pane (e.g., Region).
- The filter type defaults to Basic filtering.
- A list of all unique values appears.
- Check the values you want to include (e.g., check "West" and "East").
- Unchecked values are excluded.
Search in Filter
For fields with many values, use the search box at the top of the filter card:
- Type a partial value (e.g., "Cal" to find "California").
- The list filters to matching values.
- Check the desired values.
- Clear the search to see all values again.
Select All / None
- Select All — Click "Select all" to check every value, then uncheck the ones you want to exclude.
- Clear filter — Click the eraser icon to remove all selections and show all data.
Invert Selection
There is no built-in "invert" button, but you can achieve inversion by:
- Clicking Select all (to check everything).
- Unchecking the values you previously had checked.
This effectively inverts your selection.
Advanced Filtering
Advanced filtering lets you define conditions using operators, providing more flexible filtering than basic selection.
Available Operators
For text fields:
| Operator | Description | Example |
|---|---|---|
| Contains | Value includes the text | Contains "Tech" matches "TechCorp", "HighTech" |
| Does not contain | Value excludes the text | Does not contain "test" filters out test records |
| Starts with | Value begins with the text | Starts with "A" matches "Apple", "Amazon" |
| Does not start with | Value does not begin with text | Filters out values starting with specific text |
| Is | Exact match | Is "California" matches only "California" |
| Is not | Not an exact match | Is not "Unknown" excludes the value "Unknown" |
| Is blank | Value is empty or null | Finds records with missing data |
| Is not blank | Value is not empty | Filters out records with missing data |
For numeric fields:
| Operator | Description |
|---|---|
| Is less than | Value < specified number |
| Is less than or equal to | Value <= specified number |
| Is greater than | Value > specified number |
| Is greater than or equal to | Value >= specified number |
| Is | Value = specified number |
| Is not | Value != specified number |
| Is blank | Value is null |
| Is not blank | Value is not null |
AND / OR Logic
You can combine two conditions using AND or OR:
- AND — Both conditions must be true. Example: "Starts with 'A' AND Contains 'Corp'" matches "ACorp" but not "Apple" or "BCorp".
- OR — Either condition can be true. Example: "Is 'California' OR Is 'Texas'" includes both states.
Step-by-Step Example
Scenario: Filter a text field to show only values that start with "North" or "South".
- In the Filters pane, click the filter type dropdown and select Advanced filtering.
- Set the first condition: Starts with = "North".
- Select the Or radio button.
- Set the second condition: Starts with = "South".
- Click Apply filter.
Result: Only values beginning with "North" or "South" appear (e.g., "North America", "South America", "North Dakota", "South Carolina").
Top N Filtering
Top N filtering shows only the top or bottom N values based on a measure. This is powerful for focusing on the most (or least) significant items.
How to Apply Top N Filtering
- Add a field to the visual-level filter (e.g., Product Name).
- Change the filter type to Top N.
- Choose Top or Bottom.
- Set the number (e.g., 10).
- Drag a measure to the By value area (e.g., Revenue).
- Click Apply filter.
The visual now shows only the top 10 products by revenue.
Configuration Options
| Setting | Description |
|---|---|
| Show items: Top | Show the highest N values |
| Show items: Bottom | Show the lowest N values |
| N value | The number of items to show (e.g., 5, 10, 20) |
| By value | The measure used to rank items |
Dynamic Top N with a Slicer
You can let users choose how many items to see:
- Create a separate table with values 5, 10, 15, 20 (using Enter Data or a calculated table).
- Create a slicer from this table.
- Create a DAX measure that captures the selected slicer value.
- Use this measure as the N value in your visual logic.
This approach requires DAX measures and is more advanced, but it gives users dynamic control over the number of items displayed.
Practical Example
Scenario: Executive dashboard showing top 5 salespeople.
- Create a bar chart with Salesperson on the Y-axis and Total Sales on the X-axis.
- In Filters on this visual, add the Salesperson field.
- Set to Top N = 5 by Total Sales.
- The chart automatically updates to show only the top 5 sellers.
- When a slicer for Region is changed, the top 5 recalculates for the selected region.
Relative Date Filters
Relative date filters dynamically adjust based on the current date. Instead of selecting fixed dates, you define rules like "last 30 days" or "this quarter."
Relative Date Filter Options
| Option | Description | Example (if today is March 24, 2026) |
|---|---|---|
| Last N days | Previous N calendar days | Last 7 days = March 17-24, 2026 |
| Last N weeks | Previous N complete weeks | Last 4 weeks = Feb 24 - March 23, 2026 |
| Last N months | Previous N complete months | Last 3 months = Jan-Mar 2026 |
| Last N years | Previous N complete years | Last 2 years = 2024-2025 |
| This week | Current calendar week | March 23-29, 2026 (depending on week start) |
| This month | Current calendar month | March 1-31, 2026 |
| This quarter | Current calendar quarter | Jan 1 - March 31, 2026 |
| This year | Current calendar year | Jan 1 - Dec 31, 2026 |
| To date | From the start of the period to today | Year to date = Jan 1 - March 24, 2026 |
How to Apply
- Add a date field to the Filters pane.
- Change the filter type to Relative date.
- Configure the rule:
- Show items when the value is in the last / is in this / is in the next.
- Number of days, weeks, months, quarters, or years.
- Include today toggle — whether the current day is included.
- Click Apply filter.
Relative Date in Slicers
You can also configure a slicer as a relative date slicer:
- Create a slicer with a date field.
- Click the dropdown arrow in the visual header.
- Select Relative date (or Relative time for datetime fields).
- Configure the relative date range.
This is extremely useful for dashboards that should always show "the last 30 days" without manual adjustment.
Combining Relative Dates
For complex ranges, use advanced filtering with AND logic:
- Condition 1: Date is on or after [relative: 30 days ago].
- AND
- Condition 2: Date is on or before [relative: today].
Slicers
Slicers are interactive filter controls placed directly on the report canvas. Unlike the Filters pane (which can be hidden), slicers are always visible and immediately accessible to users.
Slicer Types
| Type | Appearance | Best For | Supported Data Types |
|---|---|---|---|
| List | Vertical checkboxes | Categorical fields with 5-20 values | Text, numbers |
| Dropdown | Collapsible dropdown | Categorical fields with many values (saves space) | Text, numbers |
| Between (range) | Two text boxes or a slider | Numeric or date ranges | Numbers, dates |
| Relative date | Preset relative options | Dynamic date filtering | Dates |
| Hierarchy | Expandable tree | Multi-level categories | Hierarchical fields |
| Tile (horizontal) | Horizontal buttons | Quick selection from few options | Text, numbers |
Creating a Slicer — Step by Step
- Click an empty area on the canvas.
- Select the Slicer icon from the Visualizations pane.
- Drag a field to the Field well (e.g., Product Category).
- Power BI creates a list slicer by default for text fields.
Changing Slicer Style
- Select the slicer.
- Click the small dropdown arrow in the slicer's visual header (top-right corner of the slicer).
- Choose from available styles:
- List — checkboxes in a vertical list.
- Dropdown — collapsed dropdown that opens on click.
- Between — available for numeric and date fields; shows a range slider.
- Less than or equal to / Greater than or equal to — single-bound range for numeric/date fields.
- Relative date / Relative time — available only for date/datetime fields.
Slicer Formatting Options
| Setting | Location | Description |
|---|---|---|
| Single select | Format > Selection controls | Force users to select only one value at a time |
| Select all | Format > Selection controls | Show a "Select all" checkbox at the top |
| Multi-select with Ctrl | Format > Selection controls | Require Ctrl+click for multi-select (default: on) |
| Search | Click the search icon in the slicer header | Enable text search within the slicer values |
| Orientation | Format > General > Orientation | Switch between vertical and horizontal layout |
| Responsive | Format > General > Responsive | Automatically switch between list and dropdown when resized |
| Header | Format > Slicer header | Show/hide the slicer title, change text, font, size, color |
| Items | Format > Slicer items | Font, size, color, background for list items |
| Background | Format > Background | Fill color behind the slicer |
| Border | Format > Border | Add a border around the slicer |
Date Slicer Configuration
When you use a date field in a slicer, additional options become available:
| Style | Description |
|---|---|
| Between | Shows two date pickers — select a start and end date |
| Before | Shows one date picker — all dates on or before the selected date |
| After | Shows one date picker — all dates on or after the selected date |
| List | Shows individual dates as checkboxes (rarely useful) |
| Dropdown | Shows individual dates in a dropdown (rarely useful) |
| Relative date | Shows relative options (last N days/weeks/months, this week/month, etc.) |
Hierarchy Slicer
For hierarchical data (e.g., Country > State > City), you can create a hierarchy slicer:
- Create a slicer.
- Drag a hierarchy to the Field well (e.g., Geography hierarchy).
- The slicer displays expandable tree nodes.
- Users can expand a country to see states, expand a state to see cities.
- Selecting a parent automatically selects all children.
Slicer Best Practices
| Practice | Rationale |
|---|---|
| Place slicers consistently (top or left) | Users expect filters in predictable locations |
| Use dropdown for many values | Saves canvas space; users can search |
| Add a "Select All" option | Makes it easy to reset or start fresh |
| Label slicers clearly | Use the slicer header to describe what it filters |
| Use single-select when only one choice makes sense | Prevents confusing multi-select scenarios |
| Group related slicers | Place date slicers together, category slicers together |
| Add a reset button | Create a bookmark that resets all slicers (covered in Bookmarks section) |
Slicer Sync
Slicer sync allows you to use the same slicer across multiple report pages, keeping the selection consistent as users navigate between pages.
The Sync Slicers Pane
- Select a slicer on the canvas.
- Go to View > Sync slicers (or find it in the Format pane under some versions).
- The Sync Slicers pane opens, showing all pages in the report.
- For each page, you see two columns:
| Column | Icon | Purpose |
|---|---|---|
| Sync | Chain link icon | When checked, the slicer value syncs to this page (same selection appears) |
| Visible | Eye icon | When checked, the slicer is visible on this page |
Sync vs Visible Options
| Sync | Visible | Result |
|---|---|---|
| Yes | Yes | The slicer appears on the page and its selection is synchronized |
| Yes | No | The slicer selection applies to the page but the slicer is not shown (hidden filter) |
| No | No | The slicer has no effect on this page |
| No | Yes | Not typically used — the slicer would appear but act independently |
Step-by-Step Example
Scenario: You have a Year slicer on Page 1. You want it to also filter Pages 2 and 3, but you only want it visible on Page 1.
- Select the Year slicer on Page 1.
- Open the Sync Slicers pane.
- Check Sync for Page 1, Page 2, and Page 3.
- Check Visible only for Page 1.
- Now, when a user selects "2025" on Page 1 and navigates to Page 2, the data on Page 2 is filtered to 2025 even though the slicer is not shown.
Advanced Sync — Slicer Groups
In newer versions of Power BI, you can create slicer groups:
- Open the Sync Slicers pane.
- Click Add to group or create a new group.
- Multiple slicers across pages can belong to the same group.
- All slicers in a group stay in sync.
This is useful when different pages have differently styled slicers (e.g., a list slicer on one page and a dropdown on another) but they should share the same selection.
Visual Interactions
When you click a data point in one visual, other visuals on the same page respond. This response is called a visual interaction. By default, Power BI uses cross-highlight (dims non-related data), but you can change this.
Interaction Types
| Type | Behavior | Visual Effect |
|---|---|---|
| Cross-highlight (default) | Shows all data but dims non-matching data | Non-matching bars become lighter/faded |
| Cross-filter | Removes non-matching data entirely | Only matching data points are visible |
| None | No interaction | The visual does not respond to clicks in other visuals |
How to Edit Interactions
- Select the visual whose clicks you want to configure (the source visual).
- Go to Format > Edit interactions (in the ribbon).
- Every other visual on the page now shows interaction icons in its header.
- Click the desired icon on each target visual:
- Filter icon (funnel) — cross-filter.
- Highlight icon (bar chart with highlight) — cross-highlight.
- None icon (circle with line) — no interaction.
- Click Edit interactions again to exit the mode.
When to Change Default Behavior
| Scenario | Recommended Change |
|---|---|
| Clicking a bar chart should filter a table to show matching rows | Change table interaction from highlight to filter |
| A KPI card should not change when clicking other visuals | Set the card's interaction to none |
| Clicking a map region should filter line chart to show only that region's trend | Change line chart interaction from highlight to filter |
| A summary card (e.g., "Grand Total") should always show the total | Set to none so it does not respond to clicks |
Practical Example
Page layout: A bar chart showing Sales by Region, a line chart showing Sales trend, and a table showing order details.
Desired behavior:
- Clicking a region in the bar chart should filter the table to show only that region's orders.
- Clicking a region should highlight the line chart to show the region's trend in context.
- Clicking the line chart should not affect the bar chart (set to none).
Steps:
- Select the bar chart.
- Click Edit interactions.
- On the table, click the filter icon.
- On the line chart, click the highlight icon (default).
- Select the line chart.
- On the bar chart, click the none icon.
- Exit Edit interactions mode.
Drillthrough
Drillthrough lets users navigate from a summary visual to a detail page that is pre-filtered to the selected data point. It is one of the most powerful navigation features in Power BI.
How Drillthrough Works
- Summary page: User sees a bar chart showing Sales by Region.
- User right-clicks on the "West" bar.
- Drillthrough menu appears with available drillthrough pages.
- User clicks the drillthrough page name (e.g., "Region Details").
- Detail page opens, automatically filtered to Region = "West".
- A Back button appears on the detail page to return to the summary.
Setting Up a Drillthrough Page — Step by Step
- Create a new report page for the detail view (e.g., name it "Product Details").
- Add the drillthrough field: On the new page, drag the field you want to drillthrough by (e.g., Product Name) into the Drillthrough well in the Visualizations pane (expand the Drillthrough section in the Filters pane on this page).
- Design the detail page: Add visuals showing detailed information about the drilled-through item (e.g., sales trend, customer breakdown, order table for that specific product).
- Back button: Power BI automatically adds a back button. You can reposition and format it.
- Test: Go to a summary page, right-click a data point that has the drillthrough field, and select the drillthrough page.
Drillthrough Configuration Options
| Option | Description |
|---|---|
| Keep all filters | When enabled, all other active filters (slicers, page filters) carry over to the drillthrough page |
| Cross-report drillthrough | Allow drillthrough from one report to another (must be in the same workspace) |
| Multiple drillthrough fields | Add multiple fields to the drillthrough well — users can drillthrough by any of them |
| Drillthrough page visibility | Right-click the page tab and select Hide page to prevent users from navigating to it directly (they can only reach it via drillthrough) |
Cross-Report Drillthrough
Cross-report drillthrough enables navigation from a visual in Report A to a detail page in Report B.
Setup in Report B (target):
- Create a drillthrough page as described above.
- In the drillthrough field settings, enable Cross-report drillthrough (toggle in the drillthrough filter card).
Setup in Report A (source):
- Ensure both reports are in the same Power BI workspace.
- Ensure the drillthrough field exists in both data models.
- In Report A, right-click a data point — the drillthrough menu shows pages from Report B.
Back Button Formatting
The automatic back button can be customized:
- Select the back button.
- In the Format pane, modify:
- Button text — Change from "Back" to something descriptive.
- Fill — Background color.
- Outline — Border style.
- Icon — Change the arrow icon.
- Shape — Change the button shape (rounded rectangle, pill, etc.).
Drill Down / Drill Up
Drill down and drill up navigate through hierarchical data within a single visual. This is different from drillthrough (which navigates between pages).
How Hierarchy Drilling Works
When a visual has a hierarchy in its axis (e.g., Year > Quarter > Month), drill icons appear in the visual header:
| Icon | Action | Description |
|---|---|---|
| Single down arrow | Drill down | Click a data point, then this icon, to drill into that specific item |
| Double down arrow | Expand to next level | Show the next level of the hierarchy for ALL items |
| Up arrow | Drill up | Return to the previous hierarchy level |
| Forked arrow | Expand all down one level | Show the current AND next level simultaneously |
Drill Down vs. Expand Next Level
| Action | What Happens | Example |
|---|---|---|
| Drill down on "2025" | Shows only Q1-Q4 of 2025 | Year bar chart > drills to quarters of 2025 only |
| Expand next level | Shows Q1-Q4 for ALL years | Year bar chart > shows all quarters for all years |
Step-by-Step Example
- Create a bar chart with a date hierarchy (Year > Quarter > Month) on the X-axis.
- The chart initially shows data by Year.
- Drill down: Click on the "2025" bar, then click the single down arrow. The chart now shows Q1-Q4 of 2025 only.
- Drill down again: Click on "Q3", then the single down arrow. Now showing months of Q3 2025 (July, August, September).
- Drill up: Click the up arrow to go back to quarters.
Show Data as Table
Any visual can show its underlying data:
- Click the ellipsis (...) in the visual header.
- Select Show as a table.
- A data table appears below the visual showing the exact values.
- You can also Export data from this menu to get a CSV/Excel file.
Bookmarks
Bookmarks capture the current state of a report page — including filter selections, slicer values, visual visibility, and sort orders — and let you return to that state with a single click.
Creating a Bookmark
- Set up the page exactly as you want it (select slicer values, scroll position, etc.).
- Go to View > Bookmarks pane.
- Click Add in the Bookmarks pane.
- Name the bookmark descriptively (e.g., "West Region - 2025").
What a Bookmark Captures
| Element | Captured by Default | Can Be Excluded |
|---|---|---|
| Filters and slicers | Yes | Yes (uncheck "Data") |
| Visual visibility (show/hide) | Yes | Yes (uncheck "Display") |
| Sort order | Yes | No |
| Drill state | Yes | No |
| Page selection | Yes | Yes (uncheck "Current page") |
| Spotlight | Yes | No |
Bookmark Properties
Right-click a bookmark to access properties:
| Property | Options | Purpose |
|---|---|---|
| Data | On/Off | Whether slicer and filter selections are captured |
| Display | On/Off | Whether visual show/hide states are captured |
| Current page | On/Off | Whether selecting the bookmark navigates to the page it was created on |
| All visuals / Selected visuals | Choice | Whether the bookmark affects all visuals or only currently selected ones |
Bookmark Navigator
A bookmark navigator is a set of buttons that lets users cycle through bookmarks:
- Create multiple bookmarks (e.g., one per region).
- In the Bookmarks pane, select all the bookmarks you want in the navigator.
- Insert > Buttons > Navigator > Bookmark navigator.
- Power BI creates a row of buttons, one per bookmark.
- Users click a button to jump to that bookmark's state.
Using Bookmarks for Page Navigation
Bookmarks are not just for filtering — they can control which visuals are visible:
Toggle between chart and table view:
- Place a bar chart and a table in the same position on the canvas.
- Use the Selection pane (View > Selection pane) to hide the table.
- Create a bookmark called "Chart View" with the chart visible and table hidden.
- Show the table and hide the chart.
- Create a bookmark called "Table View" with the table visible and chart hidden.
- Add two buttons ("Show Chart" / "Show Table") and assign each to its respective bookmark.
Report Page Tooltips with Bookmarks
You can use bookmarks to create interactive tooltip experiences:
- Create a tooltip page (see the Dashboards & Reports chapter).
- Create bookmarks that highlight different aspects of the tooltip.
- Use buttons to switch between tooltip states.
Page Navigation with Buttons
Power BI buttons provide interactive navigation and actions within reports.
Button Types
| Type | Action | Use Case |
|---|---|---|
| Back | Navigates to the previous page | Return from drillthrough pages |
| Bookmark | Applies a specific bookmark | Toggle views, reset filters |
| Page navigation | Navigates to a specific page | Custom navigation menus |
| Web URL | Opens a URL in a browser | Link to external resources |
| Q&A | Opens the Q&A dialog | Let users ask natural language questions |
| Drillthrough | Triggers a drillthrough action | Custom drillthrough buttons |
| Blank | No default action (assign via bookmark) | Custom-designed buttons |
Creating a Navigation Button
- Go to Insert > Buttons.
- Select the button type (e.g., Page navigation).
- A button appears on the canvas.
- In the Format pane, configure the Action:
- Set Type to "Page navigation".
- Set Destination to the target page.
- Format the button text, fill, outline, and icon.
Button Formatting Options
| Setting | Description |
|---|---|
| Button text | The label displayed on the button |
| Font | Font family, size, color for the button text |
| Fill | Background color (can be different for default, hover, and press states) |
| Outline | Border color and weight |
| Icon | Add an icon (built-in or custom image) |
| Shape | Rectangle, rounded rectangle, pill, arrow, chevron, etc. |
| Padding | Internal spacing around the text |
| Action | What happens when the button is clicked |
| Tooltip | Text shown on hover |
Conditional Formatting on Buttons
You can dynamically change button properties based on data:
- Select the button.
- In the Format pane, find a property (e.g., Fill color).
- Click the fx button next to the property.
- Define rules or a measure that determines the value.
Example: Change a button's color to green when sales are above target and red when below:
- Create a DAX measure:
Sales Status Color = IF([Total Sales] >= [Target], "#00B050", "#FF0000"). - Apply this measure as the button fill color using conditional formatting (fx).
Building a Navigation Menu
Create a custom navigation bar at the top or side of every page:
- Create buttons for each page ("Overview", "Sales", "Products", "Customers").
- Set each button's action to Page navigation with the appropriate destination.
- Format buttons consistently (same size, font, color).
- Group the buttons.
- Copy and paste the group to every page.
- On each page, highlight the current page's button (e.g., different fill color) so users know where they are.
Best Practices
Filter Strategy
| Guideline | Rationale |
|---|---|
| Use report-level filters for data you NEVER want users to see | Prevents accidental inclusion of test/invalid data |
| Use page-level filters to create focused pages | Each page tells a specific story |
| Use visual-level filters for specific chart requirements | One chart can show a subset while others show all data |
| Use slicers for user-facing interactive filters | Slicers are visible and intuitive |
| Avoid over-filtering | Too many active filters confuse users about what they are seeing |
Slicer Guidelines
| Guideline | Rationale |
|---|---|
| Provide clear reset capability | Users should be able to return to the default state easily |
| Show active filter indicators | Make it obvious when a filter is active (e.g., highlighted slicer, filter icon) |
| Use sync slicers for multi-page consistency | Users expect filters to persist when navigating |
| Place slicers in consistent positions | Predictable placement reduces cognitive load |
| Use the "Require single selection" option judiciously | Only when multi-select would produce meaningless results |
Drillthrough Guidelines
| Guideline | Rationale |
|---|---|
| Always include a back button | Users need a way to return to the summary page |
| Hide drillthrough pages from the page navigation | Users should access them only through right-click drillthrough |
| Keep all filters enabled by default | Context should carry over to the detail page |
| Design drillthrough pages for a single entity | The detail page should show everything about one product/customer/region |
Performance Considerations
| Issue | Solution |
|---|---|
| Too many slicers slow the report | Limit to 3-5 slicers per page; use dropdown style for large lists |
| Complex filter combinations create many queries | Simplify filter logic; consider pre-aggregating data |
| Bidirectional relationships cause ambiguity | Use single-direction relationships when possible |
| Large filter lists (10,000+ values) | Use search instead of scrolling; consider grouping values |
Practice Exercises
Exercise 1: Layered Filtering
Objective: Practice using visual-level, page-level, and report-level filters together.
Steps:
- Load a sample dataset with at least 3 years of sales data across multiple regions and product categories.
- Apply a report-level filter to exclude any records where the Status field is "Cancelled" or "Test".
- Create a page called "East Region Analysis". Apply a page-level filter for Region = "East".
- On this page, create a bar chart showing Sales by Product Category. Apply a visual-level filter to show only the Top 5 products by Sales.
- Verify that all three filter levels are active simultaneously by checking the Filters pane.
Exercise 2: Interactive Slicers
Objective: Build a slicer-driven dashboard.
Steps:
- Create a new page with the following slicers:
- A dropdown slicer for Product Category.
- A date range slicer (Between style) for Order Date.
- A list slicer for Region (set to single select).
- Add visuals: a line chart (sales trend), a bar chart (sales by product), and a card (total revenue).
- Format all slicers:
- Add borders matching the report theme.
- Enable search on the Product Category slicer.
- Set the date range slicer to the last 12 months by default.
- Sync the date slicer across all pages (but only make it visible on this page).
- Test all slicer interactions and verify visuals update correctly.
Exercise 3: Drillthrough Setup
Objective: Create a summary-to-detail drillthrough experience.
Steps:
- Summary page: Create a matrix showing Sales and Profit by Product Category and Quarter.
- Detail page: Create a new page called "Category Details".
- Add the Product Category field to the Drillthrough well.
- Add visuals: top 10 products table, monthly trend line chart, customer breakdown donut chart.
- Format the back button with a descriptive label ("Return to Summary").
- Hide the page from navigation.
- Test: Right-click a product category in the summary matrix and drillthrough to the detail page.
- Verify the detail page shows only the selected category's data.
- Click the back button to return to the summary.
Exercise 4: Visual Interactions
Objective: Configure custom visual interactions.
Steps:
- On a single page, create:
- A bar chart (Sales by Region).
- A line chart (Monthly Sales trend).
- A card (Total Revenue).
- A table (Order details).
- Configure interactions:
- Clicking the bar chart should filter the table (show only the selected region's orders).
- Clicking the bar chart should highlight the line chart.
- The card should have no interaction (always shows grand total).
- Test by clicking different bars and verifying the behavior of each visual.
Exercise 5: Bookmarks and Navigation
Objective: Build a bookmark-driven interactive experience.
Steps:
- Create two views of the same data:
- View 1: A bar chart showing Sales by Category.
- View 2: A table showing the same data in tabular form.
- Place both visuals in the same position on the canvas.
- Use the Selection pane to hide the table.
- Create a bookmark "Chart View" (chart visible, table hidden).
- Show the table, hide the chart.
- Create a bookmark "Table View" (table visible, chart hidden).
- Add two buttons labeled "Chart" and "Table". Assign each to its respective bookmark.
- Test switching between views using the buttons.
- Bonus: Create a "Reset Filters" bookmark that clears all slicer selections, and add a "Reset" button.
Summary
This chapter covered the complete filtering and interaction system in Power BI:
| Topic | Key Takeaway |
|---|---|
| Filter flow | Filters flow from dimension tables to fact tables through relationships |
| Visual-level filters | Restrict a single visual to a subset of data |
| Page-level filters | Ensure an entire page focuses on a specific segment |
| Report-level filters | Apply global restrictions across all pages |
| Basic filtering | Select specific values from a list |
| Advanced filtering | Use conditions (contains, starts with, is, etc.) with AND/OR logic |
| Top N filtering | Show only the top or bottom N values by a measure |
| Relative date filters | Dynamic date ranges that adjust automatically (last 30 days, this quarter, etc.) |
| Slicers | Interactive filter controls on the canvas — list, dropdown, range, relative date, hierarchy |
| Slicer sync | Keep slicer selections consistent across multiple pages |
| Visual interactions | Control whether clicking a visual cross-highlights, cross-filters, or has no effect on other visuals |
| Drillthrough | Navigate from a summary to a detail page filtered to a specific item |
| Drill down/up | Navigate through hierarchy levels within a single visual |
| Bookmarks | Capture and restore report state — filters, visibility, and page |
| Buttons | Provide interactive navigation and actions (page nav, bookmarks, web URL, back) |
| Best practices | Use the right filter level for each scenario; provide reset options; keep interactions intuitive |
Next chapter: We explore Dashboards & Reports — learning how to design professional layouts, apply themes, build mobile views, publish to the Power BI Service, and share your work with stakeholders.