How to Add Page Number in Power BI Desktop

Cody Schneider8 min read

Adding page numbers to a Power BI report seems like it should be simple, but it's essential for creating professional, easy-to-navigate documents. Since Power BI is designed for interactive dashboards rather than static, multi-page reports, there isn't a straightforward "insert page number" button. This guide will walk you through a clear, step-by-step method using DAX to add dynamic "Page X of Y" numbering to all your reports.

Why Bother with Page Numbers in Power BI?

You might wonder if page numbers are even necessary for a dynamic tool like Power BI. While they're not always needed for purely interactive dashboards, they become invaluable in several key scenarios:

  • Printing and PDF Exports: This is the most common reason. When a report is exported to a PDF or printed, it loses its interactivity. Page numbers become the most important tool for navigating the physical or digital document. Without them, a 15-page report becomes a confusing mess of disconnected charts.
  • Professionalism and Clarity: A "Page 3 of 10" in the footer instantly makes a report feel more structured and polished. It follows a standard documentation format that stakeholders are accustomed to, lending credibility to your analysis.
  • Providing Context: Knowing you're on page 2 gives some context, but knowing you're on "Page 2 of 12" is far more powerful. It tells the reader the total scope of the document and helps them manage their time and expectations.
  • Easier Collaboration: When discussing a report with colleagues, being able to say, "Take a look at the sales trend chart on page 5," is much more efficient than trying to describe the page visually. It standardizes communication and makes teamwork smoother.

The Challenge: Power BI's Interactive Nature

So, why is this feature missing from Power BI Desktop? It comes down to the tool's core philosophy. Power BI was built primarily for interactive data exploration, not static report generation like Microsoft Word or traditional reporting tools. Its "pages" are more like agile tabs in a spreadsheet or slides in a presentation deck, designed to be clicked through dynamically.

The concept of a fixed "page number" can conflict with this philosophy. Applying a filter on one page can change the data on every other page, making the notion of a static, linear document less relevant. Because of this, we need to create our own custom solution. The good news is that by using a simple helper table and a DAX measure, we gain complete control over how our page numbers look and function.

Step-by-Step: Adding "Page X of Y" Numbering in Power BI

This process might seem like a bit of a workaround, but once you do it once, you'll find it's a quick and powerful technique you can use on any report. We'll break it down into four simple steps.

Step 1: Create a Table for Your Report Pages

First, we need to give Power BI a list of all the pages that should be included in the page count. This is done by creating a small manual table.

  1. Navigate to the Home tab on the Power BI Desktop ribbon.
  2. Click on the Enter Data icon. A "Create Table" window will pop up.
  3. Create two columns. Name the first column Page Name and the second column Page Order.
  4. In the Page Name column, type the exact names of your report pages. This is critical - the names must match the names of your report tabs perfectly, including capitalization and spacing.
  5. In the Page Order column, assign a number to each page to define its sequence (1, 2, 3, etc.). This controls the order of your pages.
  6. Give your table a descriptive name, like "Report Pages" or "Page Navigation," and then click Load.

Step 2: Write the DAX Measure for Page Numbering

With our page structure defined, we now need to create a DAX measure that will dynamically calculate the "Page X of Y" text. This measure will read our table and figure out which page is being displayed.

  1. From the Report View, find your newly created "Report Pages" table in the Data pane on the right-hand side.
  2. Right-click on the table name and select New measure.
  3. The formula bar will appear at the top. Copy and paste the following DAX code into it:

Page Number = VAR CurrentPageOrder = SELECTEDVALUE ( 'Report Pages'[Page Order] ) VAR TotalPages = CALCULATE ( COUNTROWS ( 'Report Pages' ), ALL ( 'Report Pages' ) ) RETURN IF ( ISFILTERED( 'Report Pages'[Page Name] ), "Page " & CurrentPageOrder & " of " & TotalPages, "" )

Breaking Down the DAX Formula:

  • VAR CurrentPageOrder = SELECTEDVALUE('Report Pages'[Page Order]): This line creates a variable that captures the Page Order number for the currently selected page.
  • VAR TotalPages = CALCULATE(COUNTROWS('Report Pages'), ALL('Report Pages')): This variable calculates the total number of pages. It counts the number of rows in our Report Pages table. The ALL function is important here - it ensures we count all pages regardless of any filters that might be applied.
  • RETURN IF(...): This is the final output. The ISFILTERED function checks to see if the visual has been filtered down to a single page. If it has, it assembles our text string (e.g., "Page 1 of 5"). If not, it returns a blank, which prevents text from showing up incorrectly.

Step 3: Place the Page Number on Each Report Page

Now that we have our logic, it's time to add the page numbers to the report itself. We'll do this on the first page and then copy our work to the others.

  1. On the first page of your report, add a Card visual from the Visualizations pane. This visual is perfect for displaying a single text value.
  2. Resize and position the card where you want your page number to appear (usually in the bottom-right corner of the page footer).
  3. With the card selected, drag your new Page Number measure from the Data pane into the "Fields" well of the card visual. It will likely appear blank for now, which is expected.
  4. Now for the most important step: Open the Filters pane.
  5. Drag the Page Name field from your "Report Pages" table into the "Filters on this visual" section.
  6. Change the Filter type to "Basic filtering," and select the name of the page you are currently on. For example, if you are editing your "Sales Overview" page, check the box next to "Sales Overview."

Step 4: Duplicate the Page Number Across Pages

Nobody wants to repeat those steps for every single page. Thankfully, you don’t have to. You can now quickly apply this to your entire report.

  1. Select the formatted and filtered card visual on your first page and copy it (Ctrl+C).
  2. Navigate to your second report page and paste it (Ctrl+V). The card will appear in the exact same position with the same formatting.
  3. The only thing you need to change is its filter context. With the pasted card visual selected, go back to the Filters pane.
  4. In the "Filters on this visual" section, uncheck the previous page name and check the name of the new, current page. The text will instantly update.
  5. Repeat this copy-paste-update filter process for every remaining page in your report. It may take a minute or two, but it’s much faster than starting from scratch each time.

Tips for a Polished Paging Experience

With the core functionality in place, here are a few extra tips to make your page numbering and report navigation seamless and professional.

  • Hide the Helper Table: Your "Report Pages" table is a utility table for the backend, your end-users don’t need to see it. In the Data pane, right-click on the table name and select Hide in report view. This will clean up the interface without affecting your DAX measure.
  • Combine with Navigation Buttons: While page numbers are excellent for static documents, you can elevate the interactive experience by using them alongside a navigation menu. You can use Power BI’s built-in buttons and bookmarks to create a clickable table of contents or next/previous page buttons.
  • Create Dynamic Headers: You can apply this same technique to create dynamic titles in your report header. Create a new measure like Page Title = SELECTEDVALUE('Report Pages'[Page Name]), add it to a card visual, filter it to the current page, and you’ll have a consistent, automatically updating title on every page.
  • Handle Hidden Tooltip Pages: Many reports have hidden pages used for drill-throughs or custom tooltips. To prevent them from showing up in your page count, simply omit them from the "Report Pages" table you created in Step 1. Your TotalPages measure will automatically reflect only the pages you included.

Final Thoughts

While Power BI doesn't offer a built-in page numbering feature out of the box, building your own "Page X of Y" system is straightforward. By creating a simple data table and a powerful DAX measure, you gain full control over the process, ensuring your reports are professional, well-structured, and easy for end-users to navigate when printed or shared as a PDF.

Manually configuring report elements like page numbers, filters, and layouts across multiple pages is just one of many small tasks that can consume hours of an analyst's time. We built Graphed to streamline your entire reporting workflow. Using natural language, you can now connect your data sources and create complete, real-time dashboards by simply describing what you want to see. This allows you to move from raw data to valuable insights in seconds instead of spending your day clicking and formatting.

Related Articles

How to Connect Facebook to Google Data Studio: The Complete Guide for 2026

Connecting Facebook Ads to Google Data Studio (now called Looker Studio) has become essential for digital marketers who want to create comprehensive, visually appealing reports that go beyond the basic analytics provided by Facebook's native Ads Manager. If you're struggling with fragmented reporting across multiple platforms or spending too much time manually exporting data, this guide will show you exactly how to streamline your Facebook advertising analytics.

Appsflyer vs Mixpanel​: Complete 2026 Comparison Guide

The difference between AppsFlyer and Mixpanel isn't just about features—it's about understanding two fundamentally different approaches to data that can make or break your growth strategy. One tracks how users find you, the other reveals what they do once they arrive. Most companies need insights from both worlds, but knowing where to start can save you months of implementation headaches and thousands in wasted budget.