Streak 0 daysPoints 0

Lesson28/59
Filtering a dimension by facts

Customers who bought a bike

New functionsCALCULATE, DISTINCTCOUNT
StatusNot started

To count customers by what they bought, count the customer keys in Sales under a product filter: CALCULATE(DISTINCTCOUNT(Sales[CustomerKey]), Product[Category] = "Bikes").

The filter reaches Sales from Product, and the distinct customer keys left are the bike buyers. Customers who only bought helmets in that cell don’t count.

Your task

Write Bike Buyers: the number of different customers who bought at least one bike in the cell.

*1*1*1*1SALEST1 · 420 ROWSSalesKeyNUMOrder DateDATEShip DateDATEProductKeyNUMCustomerKeyNUMQuantityNUMUnit PriceNUMPRODUCTT2 · 8 ROWSProductKeyNUMProductTEXTCategoryTEXTColorTEXTList PriceNUMStandard CostNUMCUSTOMERT3 · 10 ROWSCustomerKeyNUMCustomerTEXTCountryTEXTSegmentTEXTDATET4 · 731 ROWSDateDATEYearNUMQuarterTEXTMonthTEXTMonth NumberNUMNOTES1Filters flow from 1 to *, alongthe arrow: Product filters Sales.2Select a column or a measureto insert it at the cursor.3Measures in this model:[Sales Amount]Key columnFact tableSALES MODEL · STAR SCHEMASHEET 1 OF 1

About this exercise

You practise filtering a dimension by facts with CALCULATE and DISTINCTCOUNT. The exercise runs on a small bike-shop model with a Sales fact table and Product, Customer and Date dimensions, the same star schema in every lesson.

Your measure, Bike Buyers, fills a Power BI-style matrix grouped by Customer[Country] and Date[Year]. As in a real report, each cell evaluates the measure in its own filter context, and the subtotals and the grand total are evaluated again in theirs rather than added up. When you check your answer, every cell is compared with the expected value, wrong cells are marked, and the hint is about the mistake you made.

Measures that already exist in the model: Sales Amount. Reference them in square brackets, for example [Sales Amount].

Where you start

Bike Buyers =

The result to build

Expected result for Bike Buyers
Year
Country20242025Total
France222
Germany333
Netherlands212
United Kingdom133
Total8910

Last updated 10 November 2026

Opening the exercise…