Power BI technique · built-in features only
How to toggle between a chart and a table with bookmarks and buttons
By Nawaf Sharaf · Founder & Reliability Engineer · Updated
When to use it. Use bookmarks to switch layouts or visual types (chart vs table, map vs list). To switch the measure or axis inside one visual, field parameters are simpler.
Worked example
Worked example · Brightwater Clinics · same spot, two bookmarks
Bookmark “Show chart”
Appointments by clinic
- Harbour St1,284
- Mill Lane1,102
- Quayside968
- Riverside911
- Old Town776
Selection pane
- Chartshown
- Tablehidden
- Clinic slicernot in bookmark
Bookmark “Show table”
Appointments by clinic
| Clinic | Appointments | No-show % |
|---|---|---|
| Harbour St | 1,284 | 7.1% |
| Mill Lane | 1,102 | 9.4% |
| Quayside | 968 | 5.8% |
| Riverside | 911 | 11.2% |
| Old Town | 776 | 8.3% |
Selection pane
- Charthidden
- Tableshown
- Clinic slicernot in bookmark
Brightwater Clinics is a fictional group of five clinics. The chart shows appointments by clinic (5,041 in total) and the table behind it adds the no-show rate, which the chart cannot show without clutter. Riverside has the highest no-show rate at 11.2%, a fact that only the table view reveals.
Both bookmarks were captured with the same settings: Data off, Display on, Current page on, and Selected visuals with just the chart and the table selected. The Selection pane lists the clinic slicer as "not in bookmark": because Data is off and the slicer is outside the selected visuals, clicking a button never resets the reader's clinic choice.
The chart and table share one position, so the page layout never jumps when the reader switches views.
Steps
- 1
Stack the two visuals
Make the chart and the table the same size and position (Format → General → Properties: X, Y, width, height).
- 2
Name them in the Selection pane
View → Selection. Rename the visuals (Chart, Table) so bookmarks are easy to check later.
- 3
Capture the chart view
Hide Table (eye icon), then View → Bookmarks → Add. Rename the bookmark 'Show chart'.
- 4
Capture the table view
Show Table, hide Chart, add a second bookmark 'Show table'.
- 5
Untick Data and limit scope
On each bookmark's menu (…), untick Data so slicer and filter states aren't stored, and choose Selected visuals after selecting just the two visuals so other visuals aren't affected.
- 6
Add the buttons
Insert → Buttons → Blank (or Bookmark navigator). For each button set Action → Type: Bookmark and the matching bookmark. In Desktop use Ctrl+click to test.
How it works
A bookmark records a set of states: what each visual shows or hides (Display), the filters, slicer selections and sort order (Data), and which page is open (Current page). Applying a bookmark restores the states it captured. Unticking Data is what lets the reader keep their filters; Selected visuals limits the bookmark to the visuals you selected when you updated it, so the rest of the page is untouched.
Buttons do nothing on their own; their Action applies a bookmark. A bookmark navigator generates one button per bookmark in a group and highlights the one that was applied last, which is simpler to maintain than separate buttons when there are more than two views.
Hidden visuals stay in the report, so both the chart and the table still need their fields and formatting kept up to date when the model changes.
What Microsoft documents
Limits and behaviour from Microsoft Learn that change how you build this.
- In Desktop the Bookmarks pane and the Selection pane are both on the View tab. A bookmark saves the current page, filters, slicers (type and state), cross-highlight selections, sort order, drill location, each object's visibility and Spotlight. Microsoft's own advice for view switching is to turn Data off so filters are not reset when readers switch views.
- Bookmarks restore state, not position: moving a visual after creating the bookmark does not move it back when the bookmark is applied. That is why the chart and table should be placed exactly on top of each other before you capture either bookmark.
- Adding a slicer to a page that already has bookmarks clears that slicer when a bookmark is applied. If you add a slicer later, update the bookmarks afterwards. Changing visibility in the Selection pane also needs an Update on the bookmark, or the old visibility comes back.
- To wire a button, Insert → Buttons → Blank, turn Action on, set Type to Bookmark and pick the bookmark. In Desktop, Ctrl+click follows a button while editing.
Variations
- Group the two bookmarks (Chart view, Table view) and point a bookmark navigator at the group, so new views are added in one place.
- Use the same pattern for a filter panel: one bookmark shows a panel of slicers over the page, another hides it.
Check that it works
Pick a clinic in the slicer, then click Table view and Chart view several times. The selection must survive every switch. Then open the Selection pane and confirm only the two views change their eye icon when you apply each bookmark.
Common mistakes
- With Data ticked, clicking the button resets slicers to their state when the bookmark was made.
- Hidden visuals still run their queries in some cases; don't stack many heavy visuals.
- Copying the page duplicates visuals but not bookmarks' targets; re-create bookmarks on the copy.
- Update a bookmark after changing a visual's formatting, or applying it can bring back the old state of that visual.
FAQ
Can the button show which view is active?
Use the Bookmark navigator: it highlights the selected bookmark, and its states (default, hover, selected) can be formatted.
Do bookmarks work in the Service and the mobile app?
Yes, report bookmarks are saved in the report and work in the Service. Check button sizes on the phone layout.
Sources
Menu names follow Power BI Desktop as documented on Microsoft Learn; they can move between releases. The companies and figures in the worked example are invented.
Related
Assets and guides that go with this technique.