Streak 0 daysPoints 0

Lesson10/59
Counting distinct values, not rows

Counting customers with DISTINCTCOUNT

New functionsDISTINCTCOUNT
StatusNot started

A row in Sales is one order line. To count customers, you need the number of different values in Sales[CustomerKey], not the number of rows. DISTINCTCOUNT does exactly that, in the filter context of each cell.

Distinct counts don’t add up. A customer who bought bikes in 2024 and in 2025 is counted once in the total column, so the total can be smaller than the sum of the years. That is correct, and it is the reason a report total should never be a sum of rows.

Your task

Write a measure named Customers that returns how many different customers bought something in each 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 counting distinct values, not rows with 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, Customers, fills a Power BI-style matrix grouped by Product[Category] 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

Customers =

The result to build

Expected result for Customers
Year
Category20242025Total
Accessories999
Bikes8910
Clothing989
Total91010

Last updated 10 November 2026

Opening the exercise…