Business Intelligence with Power BI

Build a multi-page executive sales report with DAX measures and drill-through.

Introduction

30 Second Summary

Every business runs on data, but raw spreadsheets don't tell stories. The people who can turn messy sales figures into clear, interactive dashboards are the ones who get hired.

In this project, you will build a multi-page executive sales report in Power BI Desktop, complete with time intelligence calculations, drill-through navigation, and bookmark-powered interactivity.

What You'll Build

An interactive three-page sales dashboard for AdventureWorks (a fictional manufacturing company) that demonstrates star-schema data modeling, DAX measures, and report design patterns tested in Power BI interviews.

By the end of this project, you'll have:

  • A star-schema data model with 6 tables and properly defined one-to-many relationships.
  • 5 DAX measures covering time intelligence, year-over-year growth, and contribution analysis.
  • A 3-page interactive report with drill-through filtering, bookmarks, and navigation buttons ready for a portfolio.
  • Secret Mission: Add conditional formatting with data bars and color-coded growth percentages that turn red for negative values.

Are there any prerequisites?

You need Power BI Desktop installed on a Windows machine. Power BI Desktop is free to download and use for report authoring.

No prior DAX or data modeling experience is required. This project teaches both from scratch.

Download Data and Import into Power BI

Every report starts with data. Before you can model relationships or write measures, you need to get your dataset into Power BI Desktop.

In this step, you will download the AdventureWorks Sales Excel workbook from Microsoft's official samples repository and import it into Power BI Desktop using Power Query. You will also verify that columns have the correct data types before loading.

In this step, get ready to:
  • Download the AdventureWorks Sales Excel workbook from GitHub.
  • Import all 7 tables into Power BI Desktop.
  • Verify data types in Power Query Editor and load the data.
Download the AdventureWorks Sales Excel workbook

Microsoft publishes a free sample dataset called AdventureWorks Sales. It contains sales data for a fictional bicycle manufacturer, structured as dimension and fact tables.

  • Open your web browser and visit the AdventureWorks Sales Sample folder on GitHub.
  • Click AdventureWorks Sales.xlsx in the file list.
  • Click the Download raw file button (the download icon near the top right of the file view).
  • Save the file somewhere easy to find, like your Desktop or Downloads folder.

What is this dataset?

AdventureWorks Sales is Microsoft's own sample for learning Power BI. It contains seven tables representing customers, products, resellers, sales transactions, dates, sales orders, and sales territories.

This is the same dataset used in Microsoft's official "From Dimensional Model to Stunning Report" tutorial.

Can't find the file on GitHub?

Make sure you are in the AdventureWorks Sales Sample folder (not the DAX folder or the Monthly Desktop Blog Samples folder). You should see two files listed: AdventureWorks Sales.pbix and AdventureWorks Sales.xlsx. Click the .xlsx file.

Alternatively, you can use this direct download link to download the file immediately.

Help me download the AdventureWorks Sales file

Import the Excel workbook into Power BI Desktop

Now that you have the file, you will connect Power BI Desktop to it and select the tables you need.

  • Press the Windows key to open your search bar.
  • Type Power BI Desktop and press Enter to open it.
  • On the Home ribbon, find the Data section.
  • Click Excel.
  • Navigate to where you saved AdventureWorks Sales.xlsx and click Open.

The Navigator pane appears showing a list of available tables.

  • Select all 7 tables by checking their boxes: Customer, Date, Product, Reseller, Sales, SalesOrder, and SalesTerritory.
  • Do NOT select any items that end with _data. These are raw sheets, not the formatted tables you need.
  • Click Transform Data to open the Power Query Editor.

Why Transform Data instead of Load?

Choosing Transform Data opens the Power Query Editor, which lets you inspect and fix data types before importing. Loading directly can assign incorrect types, which causes calculation errors later.

Don't see all 7 tables in the Navigator?

Make sure you downloaded the .xlsx file (not the .pbix file). The Navigator pane should list tables as named ranges, not individual sheet tabs. If you see sheet names ending in _data, those are the underlying sheets. Only check the 7 table names listed above.

Help me find the right tables in the Navigator pane

Verify data types in Power Query Editor

Power Query assigns data types automatically, but you should verify the critical columns are correct. Incorrect types cause silent calculation errors when you build measures later.

  • In the Queries pane on the left side of Power Query Editor, click Sales.
  • Check the column header icons for Sales Amount, Extended Amount, and Total Product Cost. Each should show a 1.2 icon indicating Decimal Number type.
  • Scroll right and check all Key columns: CustomerKey, ProductKey, ResellerKey, OrderDateKey, DueDateKey, ShipDateKey, SalesTerritoryKey, and SalesOrderLineKey. Each should show a 123 icon indicating Whole Number type.
  • If any type is wrong, click the icon in the column header and select the correct type from the dropdown.

How do I read column type icons?

In Power Query Editor, every column header has a small icon that indicates its data type. The 1.2 icon means Decimal Number (for monetary values). The 123 icon means Whole Number (for keys and counts). The ABC icon means Text.

  • Once you have confirmed the types are correct, click Close and Apply on the Home tab of Power Query Editor.
  • Wait for Power BI to load all 7 tables. You will see a loading indicator in the bottom-right corner of Power BI Desktop.

Once loading completes, check the Fields pane on the right side of Power BI Desktop. You should see all 7 tables listed: Customer, Date, Product, Reseller, Sales, SalesOrder, and SalesTerritory.

Tables not appearing in the Fields pane?

Make sure you clicked Close and Apply (not just closed the Power Query Editor window). If you closed without applying, your data was not loaded. Go to the Home ribbon and click Transform data to reopen Power Query Editor, then click Close and Apply.

Help me load my tables into Power BI Desktop

Your data is loaded and ready. Next up, you will arrange these tables into a star-schema data model with proper relationships.

Build the Star-Schema Data Model

Your data is loaded into Power BI Desktop. Right now, though, Power BI doesn't know how the seven tables relate to each other.

A star schema arranges your tables so that a central fact table (Sales) connects outward to dimension tables (Customer, Date, Product). In this step, you'll define those relationships, hide technical clutter, and create hierarchies that make your model easier to navigate.

In this step, get ready to:
  • Define relationships between the Date and Sales tables.
  • Hide all key columns from report view.
  • Create a Fiscal date hierarchy and rename tables.
Define relationships in Model view

Relationships tell Power BI which columns connect two tables. A one-to-many relationship means one row in a dimension table (like Date) maps to many rows in the fact table (Sales).

  • In the left sidebar of Power BI Desktop, click the Model view icon (the third icon, shaped like a diagram with connected boxes).

You should see all seven tables arranged on the canvas.

Power BI may have auto-detected relationships

When you loaded the data, Power BI Desktop may have automatically created some relationships by matching column names. If you already see lines connecting the tables, double-click each line to verify its properties match what you set up below.

Delete any incorrect auto-detected relationships by right-clicking the line and selecting Delete.

  • Create the active Date-to-Sales relationship by dragging DateKey from the Date table onto OrderDateKey in the Sales table.
  • Create a second relationship by dragging DateKey from the Date table onto DueDateKey in the Sales table.
  • Create a third relationship by dragging DateKey from the Date table onto ShipDateKey in the Sales table.

The first relationship (OrderDateKey) appears as a solid line, meaning it is active. The second and third relationships appear as dashed lines. Power BI automatically marks them as inactive because only one relationship between two tables can be active at a time.

Why three Date relationships?

Each sales transaction has three relevant dates: when it was ordered, when it was due, and when it shipped. The active relationship (OrderDateKey) is used by default in calculations.

The inactive ones can be activated later with the USERELATIONSHIP function in DAX when you need due-date or ship-date analysis.

Don't see a dashed line?

If the second or third relationship shows a solid line instead of a dashed line, double-click it. In the Edit relationship dialog, uncheck Make this relationship active and click OK. Only the OrderDateKey relationship should be active (solid line).

Help me troubleshoot my Date-Sales relationships

Hide key columns from report view

Key columns are technical IDs used only for relationships. Hiding them declutters the Fields pane so report authors only see business-meaningful fields like names, amounts, and dates.

  • In Model view, expand the Customer table.
  • Right-click CustomerKey and select Hide in report view.
  • Repeat for all key columns across every table. Here is the full list:
  • Customer: CustomerKey.
  • Date: DateKey, MonthKey.
  • Product: ProductKey.
  • Reseller: ResellerKey.
  • Sales: CustomerKey, DueDateKey, OrderDateKey, ProductKey, ResellerKey, SalesOrderLineKey, SalesTerritoryKey, ShipDateKey.
  • SalesOrder: SalesOrderLineKey.
  • SalesTerritory: SalesTerritoryKey.

Each hidden column displays a small eye icon with a line through it, confirming it is hidden from report view.

Multi-select to hide faster

Hold Ctrl and click multiple key columns in the same table, then right-click and select Hide in report view to hide them all at once.

Can't find a key column?

Make sure you are in Model view, not Report view. In Model view, expand each table card by scrolling through its field list. Hidden columns are still visible in Model view (with the crossed-out eye icon) but disappear from the Fields pane in Report view.

Help me locate key columns in Model view

Create date hierarchies and rename tables

Hierarchies group related columns into a drill-down path. A Fiscal hierarchy lets report users drill from year to quarter to month to day with a single click.

  • In Model view, locate the Date table.
  • Right-click the Fiscal Year column and select Create hierarchy.
  • A new hierarchy appears at the bottom of the Date table. Power BI names it Fiscal Year Hierarchy by default.
  • In the Properties pane (on the right), rename the hierarchy to Fiscal.
  • Drag the Fiscal Quarter column into the Fiscal hierarchy, below Fiscal Year.
  • Drag the Month column into the hierarchy, below Fiscal Quarter.
  • Drag the Date column into the hierarchy, below Month.

What do the hierarchy levels look like?

Your Fiscal hierarchy should show four levels in this order: Fiscal Year, Fiscal Quarter, Month, Date. In the Properties pane, you can rename individual levels if needed.

  • Now rename two tables. Click the SalesTerritory table header to select it.
  • In the Properties pane, change the Name field from SalesTerritory to Sales Territory.
  • Click the SalesOrder table header to select it.
  • In the Properties pane, change the Name field from SalesOrder to Sales Order.

Why rename tables?

Excel table names cannot contain spaces, so the original source uses concatenated names like SalesTerritory. In Power BI, adding spaces makes the Fields pane more readable for report authors.

  • Save your file by pressing Ctrl+S.

Hierarchy levels in the wrong order?

If a level ended up in the wrong position, right-click it inside the hierarchy and select Move Up or Move Down to reorder. The correct order from top to bottom is: Fiscal Year, Fiscal Quarter, Month, Date.

Help me fix my hierarchy order

Your star-schema model is complete. Next up, you'll write DAX measures that turn this clean model into meaningful business KPIs like year-over-year growth and product contribution percentages.

Write DAX Measures for Business KPIs

Your star-schema model is complete. The relationships between your fact and dimension tables give Power BI the structure it needs to calculate business metrics across time periods, territories, and products.

Now you need to tell Power BI what to calculate. DAX (Data Analysis Expressions) is the formula language that lets you define custom measures. In this step, you will write 5 measures that answer the questions executives care about most: total revenue, year-to-date progress, year-over-year growth, and product contribution.

In this step, get ready to:
  • Create Total Sales and Sales YTD measures using SUM and TOTALYTD.
  • Create year-over-year comparison measures using CALCULATE and SAMEPERIODLASTYEAR.
  • Create a Product Contribution % measure and format all percentage measures.
Create Total Sales and Sales YTD measures

Every other measure you write in this project builds on a single foundation: a measure that sums all sales. Once that exists, you can wrap it with time intelligence functions to calculate year-to-date totals.

  • Switch to Table View by clicking the table icon in the left sidebar.
  • In the Fields pane on the right, select the Sales table to make it active.
  • On the Home ribbon, in the Calculations group, click New Measure.
  • In the formula bar that appears at the top, type the following DAX formula and press Enter to confirm:
Total Sales = SUM(Sales[Sales Amount])
  • With the Sales table still selected, click New Measure again on the Home ribbon.
  • Type the following formula and press Enter:
Sales YTD = TOTALYTD([Total Sales], 'Date'[Date])

What do these measures do?

Total Sales sums every value in the Sales Amount column. It is the building block for all other measures.

Sales YTD uses TOTALYTD to accumulate [Total Sales] from January 1 through whatever date is in the current filter context. As you move through months, the number grows. This is time intelligence in action.

You should see both measures listed under the Sales table in the Fields pane.

Don't see the measure in the Fields pane?

Make sure you pressed Enter (not Shift+Enter) to commit the formula. Shift+Enter adds a new line inside the formula bar instead of saving.

If you see a red underline in the formula bar, check that column names are spelled exactly as shown, including the square brackets around [Sales Amount] and single quotes around 'Date'.

help me fix my DAX formula that isn't saving

Create year-over-year comparison measures

Executives want to know whether sales are growing compared to last year. You need two measures for this: one that retrieves last year's sales for the same time period, and one that calculates the percentage change.

  • With the Sales table selected, click New Measure on the Home ribbon.
  • Type the following formula and press Enter:
Previous Year Sales = CALCULATE([Total Sales], SAMEPERIODLASTYEAR('Date'[Date]))
  • Click New Measure one more time.
  • This formula uses multiple lines. Press Shift+Enter to add line breaks inside the formula bar, then press Enter when you are done:
Sales Growth % =
VAR PriorYear = [Previous Year Sales]
RETURN DIVIDE([Total Sales] - PriorYear, PriorYear)

What do these measures do?

Previous Year Sales uses CALCULATE to evaluate [Total Sales] in a modified filter context. SAMEPERIODLASTYEAR shifts the date filter back by exactly one year. If you are looking at March 2019, the measure returns March 2018 sales.

Sales Growth % stores the prior year result in a VAR to avoid calculating it twice. DIVIDE safely divides (current minus prior) by prior, returning BLANK instead of an error when the denominator is zero.

Why use VAR instead of referencing the measure directly?

The VAR keyword stores an intermediate result so the engine only evaluates [Previous Year Sales] once. This improves performance and makes the formula easier to read. It is a DAX best practice for any formula that reuses the same value multiple times.

You should now see four measures (Total Sales, Sales YTD, Previous Year Sales, Sales Growth %) listed under the Sales table in the Fields pane.

Seeing a syntax error on the multi-line formula?

The most common cause is pressing Enter too early, which commits an incomplete formula. Use Shift+Enter for each line break, and only press Enter once the full formula is typed.

Also confirm that 'Date' has single quotes (required for table names that are reserved words) and that each measure reference uses square brackets like [Total Sales].

help me debug my Sales Growth % DAX formula

Create the Product Contribution % measure and format percentages

The last measure answers a different question: what percentage does each product contribute to total sales? This requires removing the product filter from the denominator so you always divide by the grand total.

  • With the Sales table selected, click New Measure on the Home ribbon.
  • Type the following formula and press Enter:
Product Contribution % = DIVIDE([Total Sales], CALCULATE([Total Sales], ALL(Sales[ProductKey])))

What does ALL do here?

ALL(Sales[ProductKey]) removes any active filter on the ProductKey column. This means the CALCULATE expression in the denominator always returns the grand total of all products, regardless of which product row you are looking at.

The result is a fraction: this product's sales divided by all products' sales. That fraction represents the contribution percentage.

Now you need to format the two percentage measures so they display as percentages with one decimal place.

  • In the Fields pane, click Sales Growth % to select it.
  • The Measure tools ribbon appears at the top. In the Formatting section, click the Format dropdown and select Percentage.
  • Set the decimal places to 1.
  • Now click Product Contribution % in the Fields pane and repeat: set Format to Percentage and decimal places to 1.

Why format in the Measure tools ribbon?

Setting the format at the measure level means every visual that uses this measure automatically displays it as a percentage. You do not have to reformat it each time you drop it into a chart or table.

Time to verify that your measures work. Switch to Report View by clicking the chart icon in the left sidebar.

  • From the Fields pane, drag Total Sales onto the empty canvas. Power BI creates a Card visual displaying a dollar value.
  • Click an empty area of the canvas, then add a Matrix visual from the Visualizations pane.
  • Drag the Fiscal hierarchy from the Date table to the Rows well.
  • Drag Sales YTD to the Values well.
  • In the Matrix, click the expand arrow next to a year to drill into quarters and months. Confirm that the Sales YTD value accumulates (grows larger) as you move through the months.

Card visual shows a blank value?

If Total Sales shows blank, your data may not have loaded correctly. Switch back to Table View and check that the Sales table has rows with values in the Sales Amount column.

If Sales YTD shows blank in the Matrix, confirm that the Date table has a Date column (not just DateKey) and that your relationship from the Date table to Sales uses DateKey to OrderDateKey as the active relationship.

help me troubleshoot my DAX measures showing blank values

All five measures are working. Next up, you will use them to build a polished Executive Summary page with KPI cards, trend charts, and interactive slicers.

Design the Executive Summary Page

In the previous step, you created five DAX measures that calculate sales totals, year-over-year growth, and product contribution percentages.

Numbers alone do not tell a story. Executives need visuals that surface trends and comparisons at a glance. In this step, you will build the first page of your report with KPI cards, a trend line chart, a regional bar chart, and a time slicer that filters everything on the page.

In this step, get ready to:
  • Add three KPI Card visuals showing Total Sales, Sales YTD, and Sales Growth %.
  • Create a Line Chart for monthly sales trends and a Clustered Bar Chart for regional performance.
  • Add a Slicer for time-based filtering and apply the Executive theme.
Add KPI cards and a monthly trend chart

Executive dashboards lead with headline numbers. Card visuals display a single measure as a large, prominent value that readers can absorb instantly.

  • Switch to Report View using the left sidebar icon (if you are not already there).
  • Right-click the Page 1 tab at the bottom of the canvas.
  • Select Rename Page and type Executive Summary.
  • Click an empty area of the canvas to deselect everything.

Now add the first Card visual.

  • In the Visualizations pane on the right, click the Card visual icon (it looks like a single number).
  • A blank Card visual appears on the canvas.
  • In the Data pane (also on the right), expand the Sales table.
  • Drag Total Sales into the Card's Values field well.
  • Resize the card and position it in the top-left area of the canvas.
  • Repeat the same process to create a second Card visual for Sales YTD. Position it to the right of the first card.
  • Create a third Card visual for Sales Growth %. Position it to the right of the second card.

What are Card visuals?

A Card visual in Power BI displays a single number prominently. Each card shows the computed value of the measure you assign to it. Because your measures are already formatted (percentages, currency), the cards inherit that formatting automatically.

Next, add a Line Chart to show how sales change month by month.

  • Click an empty area of the canvas to deselect.
  • In the Visualizations pane, click the Line Chart icon.
  • In the Data pane, expand the Date table and drag the Fiscal hierarchy into the X-axis field well.
  • In the X-axis field well, remove Year and Quarter by clicking the X next to each. Keep only Month and Date.
  • Drag Total Sales from the Sales table into the Y-axis field well.
  • Resize the Line Chart so it fills the area below your three cards.

Why remove Year and Quarter from the X-axis?

The Fiscal hierarchy contains Year, Quarter, Month, and Date levels. Keeping only Month on the X-axis gives you a continuous monthly trend without drill-down steps cluttering the initial view. Users can still drill up or down using the hierarchy arrows in the visual header.

You should now see three KPI cards across the top and a line chart below them showing monthly sales.

Card showing blank or zero?

Make sure you dragged the measure (bold calculator icon) from the Sales table, not a column with the same name. Measures appear with a calculator icon in the Data pane.

If you do not see the Card visual in the Visualizations pane, click any visual on the canvas, open the Build pane, click the ellipsis (...), and select Restore default visuals.

help me troubleshoot why my Card visual is blank in Power BI

Add a regional bar chart and time slicer

A bar chart makes it easy to compare sales across regions side by side. A slicer gives your report readers the power to filter all visuals on the page by selecting a specific time period.

  • Click an empty area of the canvas to deselect all visuals.
  • In the Visualizations pane, click the Clustered Bar Chart icon.
  • In the Data pane, expand the Sales Territory table.
  • Drag the Group field into the Y-axis field well.
  • Drag Total Sales from the Sales table into the X-axis field well.
  • Position the bar chart to the right of or below the line chart.

What does Group represent?

The Group field in the Sales Territory table contains high-level regional groupings like North America, Europe, and Pacific. This gives you a quick comparison of sales performance across major geographic regions.

Now add a Slicer so report readers can filter the entire page by time period.

  • Click an empty area of the canvas to deselect.
  • In the Visualizations pane, click the Slicer icon.
  • In the Data pane, expand the Date table and drag the Fiscal hierarchy into the Slicer's Field well.
  • In the Field well, remove Quarter and Date levels. Keep only Year and Month.
  • Position the Slicer on the left side of the canvas.

What is a Slicer?

A Slicer is an interactive filter that lives directly on the report canvas. When a reader selects a year or month in the slicer, every other visual on the page updates to show only data for that time period.

By default, slicers filter all visuals on the same page. You do not need to configure anything extra for this behavior.

Test the slicer by clicking a year value. All visuals on the page should update to reflect that year's data.

Slicer not filtering other visuals?

Confirm the Date table has an active relationship to the Sales table (the solid line you created between DateKey and OrderDateKey in Step 2). Without this relationship, the slicer cannot propagate filters to the Sales measures.

Also check that visual interactions have not been changed. Select the slicer, go to the Format menu, and select Edit interactions. Each visual should show a funnel (filter) icon, not the "None" icon.

help me fix my slicer that is not filtering visuals on the page

Add a page title and apply the Executive theme

A title and a consistent theme give your report a professional, polished look.

  • On the Insert ribbon at the top, click Text Box.
  • A text box appears on the canvas. Type Executive Summary - Sales Report inside it.
  • Select all the text you just typed.
  • In the formatting toolbar that appears above the text box, set the font size to 20 pt.
  • Click the Bold button (or press Ctrl+B).
  • Drag the text box to the top of the page, above the three cards.

Now apply a built-in theme to unify the visual styling across the report.

  • Click the View ribbon at the top.
  • In the Themes section, click the Themes dropdown.
  • Select Executive from the list of built-in themes.

What does the Executive theme do?

Themes apply consistent colors, fonts, and formatting to every visual on the report. The Executive theme uses a professional, muted palette that is common in corporate dashboards. You can always switch themes later without losing your data or layout.

Your Executive Summary page is now complete. Select a year in the slicer and confirm that all visuals update. The line chart should show monthly trends and the bar chart should show sales by territory group.

Theme not changing the visuals?

Make sure you clicked Executive from the built-in themes list (not the custom themes section). If the colors still look default, try saving your file (Ctrl+S) and reopening it.

help me apply the Executive theme in Power BI Desktop

Your first report page is ready. Next up, you will create a Product Deep Dive page and a hidden Drill-Through page that activates on right-click.

Design the Product Deep Dive and Drill-Through Pages

Your Executive Summary page gives stakeholders a high-level view of sales performance. But executives always ask follow-up questions: which product categories are driving growth, and what are the individual product details behind those numbers?

In this step, you will build two additional pages that answer those questions. The Product Deep Dive page compares categories side by side. The Detail page uses drillthrough to show transaction-level data for any category a user right-clicks.

In this step, get ready to:
  • Build the Product Deep Dive page with category and subcategory visuals.
  • Create a hidden drill-through Detail page that activates on right-click.
  • Add navigation buttons linking all three pages together.
Create the Product Deep Dive page

This page lets stakeholders compare product categories at a glance and spot which subcategories have the highest cost relative to their revenue.

  • Click the + icon at the bottom of the report canvas to create a new page.
  • Double-click the new page tab and rename it to Product Deep Dive.
  • In the Visualizations pane, select the Clustered Column Chart icon.
  • From the Product table in the Fields pane, drag Category to the X-axis well.
  • Drag your Total Sales measure to the Y-axis well.

What does this chart show?

The clustered column chart displays total sales broken down by product category. Each bar represents one category (e.g. Bikes, Accessories, Clothing), making it easy to see which categories generate the most revenue.

  • Click an empty area of the canvas to deselect the column chart.
  • In the Visualizations pane, select the Scatter Chart icon.
  • Drag Total Sales to the X-axis well.
  • From the Sales table, drag Total Product Cost to the Y-axis well. It should automatically aggregate as a sum.
  • From the Product table, drag Subcategory to the Legend well.

Why a scatter chart?

The scatter chart plots each subcategory as a dot, with revenue on one axis and cost on the other. Subcategories that sit high on the Y-axis relative to their X position have thin margins. This makes it easy to spot profitability outliers at a glance.

Your Product Deep Dive page now has two visuals. The column chart shows category-level revenue, and the scatter chart reveals cost vs. revenue by subcategory.

Scatter chart showing only one dot?

Make sure you dragged Subcategory to the Legend well, not the Details or Size well. Without a field in Legend, Power BI aggregates everything into a single data point.

help me fix my scatter chart

Create the drill-through Detail page

A drill-through page is a hidden report page that only appears when a user right-clicks a specific data point. It provides transaction-level detail without cluttering the main pages.

  • Click the + icon at the bottom of the canvas to create another new page.
  • Double-click the new page tab and rename it to Detail.
  • In the Visualizations pane on the right, look for the Drill through section (below the standard field wells).
  • From the Product table in the Fields pane, drag Category into the Drill through filter well.

What did this just do?

Adding a field to the drill-through filter well does two things. First, it hides this page from normal tab navigation so users only reach it through a right-click action. Second, it tells Power BI to filter this entire page by whichever category the user selected.

Power BI also automatically adds a Back button in the top-left corner of the page. You will use this to return to the source page after drilling through.

  • Now add the visuals. In the Visualizations pane, select the Table icon.
  • From the Product table, drag Product (the product name field) into the table's Columns well.
  • From the Sales table, drag Sales Amount into Columns.
  • From the Sales table, drag Order Quantity into Columns.
  • Drag your Product Contribution % measure into Columns.
  • Click an empty area of the canvas to deselect the table.
  • In the Visualizations pane, select the Card visual icon.
  • Drag your Total Sales measure into the Card's field well.
  • Position the Card visual above the table so the category's total sales is prominently displayed.

Why include Total Sales as a Card here?

When a user drills through to this page, the Card automatically filters to show only the selected category's total. This gives immediate context before the user reads individual product rows in the table below.

Your Detail page now has a filtered Table and a Card. Both will automatically respond to whatever category the user right-clicks from the other pages.

Don't see the Drill through section?

The Drill through filter well appears in the Visualizations pane only when no visual is selected on the canvas. Click an empty area of the page first, then look below the standard Filters section in the Visualizations pane.

help me find the drill-through filter well

Add navigation buttons between pages

Navigation buttons let users move between pages without relying solely on right-click drill-through. You will add a Back button on the Product Deep Dive page and a page navigation button on the Executive Summary.

  • Click the Product Deep Dive page tab to switch to that page.
  • On the Insert ribbon, select Buttons to open the dropdown menu.
  • Select Navigator, then select Back.
  • Position the Back button in the top-left corner of the page.

What does the Back button do?

The Back button returns the user to whichever page they came from. If someone drills through from the Executive Summary to the Detail page and then navigates to Product Deep Dive, clicking Back takes them to the page they were on previously.

  • Click the Executive Summary page tab to switch back to the first page.
  • On the Insert ribbon, select Buttons, then select Blank.
  • With the new button selected, open the Format button pane on the right.
  • Under Style, toggle Action to On.
  • Expand the Action section. Set Type to Page navigation.
  • Set Destination to Product Deep Dive.
  • Under Style > Text, toggle text on and type View Products as the button label.
  • Position the button in a visible spot on the Executive Summary page (e.g. near the top or below the bar chart).

Test buttons in editing mode

Buttons do not respond to clicks while you are in editing mode. Hold Ctrl and click the button to test navigation without leaving the editor.

Now test the full drill-through flow to confirm everything connects.

  • On the Executive Summary page, find the Clustered Bar Chart (sales by territory group) or any visual that contains product category data.
  • Right-click a data point in that visual.
  • In the context menu, hover over Drill through and select Detail.
  • Confirm the Detail page opens, filtered to show only that category's products in the table and the matching total in the Card.
  • Click the Back button (top-left of the Detail page) to return to the Executive Summary.

Drill through option not appearing in the context menu?

The field you right-click must exist in both the source visual AND the drill-through filter well on the Detail page. If you right-click a territory group (not a product category), you will not see a drill-through option for the Detail page.

Try right-clicking a product category value in the column chart on the Product Deep Dive page instead. If it still does not appear, verify that Category from the Product table is in the Drill through well on the Detail page.

help me troubleshoot drill-through not appearing

Save your file by pressing Ctrl+S.

Secret mission

Add Bookmarks and Conditional Formatting

Your report works, but can it toggle between views on a single click? Can it highlight negative growth in red without you lifting a finger? In this secret mission, you'll add bookmark-driven layout switching and conditional formatting that makes your data tell its own story.

Clean Up Your Resources

Clean Up Your Resources

This project runs entirely locally, so there are no ongoing costs or cloud resources to worry about.

Resources you used:

  • AdventureWorks Sales.xlsx (downloaded Excel data file).
  • AdventureWorks Sales.pbix (Power BI report file you created).

Keep everything running

No action needed. Choose this if you want to keep your report for your portfolio or continue improving it.

  • Save the .pbix file in a dedicated portfolio folder on your machine.
  • Take screenshots of each report page for LinkedIn or GitHub.
  • Export the report as a PDF by going to File > Export > PDF.
  • If you have a work or school email, publish to Power BI Service by selecting Home > Publish > My workspace for a shareable web link.

Pause - I'll come back to this later

Close Power BI Desktop to free up memory. Your files stay on disk and you can reopen them anytime.

  • Save your report (Ctrl+S).
  • Close Power BI Desktop.
  • When you return, double-click the AdventureWorks Sales.pbix file to reopen it exactly where you left off.

Delete - I don't want to use this again

Remove all project files from your machine.

  • Close Power BI Desktop.
  • Open File Explorer and navigate to the folder where you saved AdventureWorks Sales.pbix.
  • Delete AdventureWorks Sales.pbix.
  • Navigate to the folder where you downloaded AdventureWorks Sales.xlsx and delete it as well.
  • Empty your Recycle Bin to free up disk space.

Nice Work!

Nice Work!

You just built a portfolio-ready executive sales report in Power BI Desktop. This single .pbix file proves you can model data, write DAX, and design interactive reports.

You've learned how to:

  • Build a star-schema data model with 7 tables, proper one-to-many relationships, hidden key columns, and date hierarchies.
  • Write 5 DAX measures demonstrating time intelligence (TOTALYTD, SAMEPERIODLASTYEAR), context modification (CALCULATE, ALL), and safe division (DIVIDE).
  • Design a 3-page interactive report with drill-through filtering, slicers, and page navigation buttons.
  • Secret Mission: Implement bookmarks for toggling visual layouts and conditional formatting for data-driven color coding.

Ready to quiz yourself?