Home › Power BI › Practice Tasks

FREE · DAX IN YOUR BROWSER

Power BI Practice Tasks

Practice tasks for the whole Power BI course in one place: DAX, data modelling, time intelligence, row-level security, performance, end-to-end projects and industry KPIs. Open a task, write your measure, and the page runs it on a small practice model and checks your answer. No Power BI install needed.

703 tasks in 70 lessons ready. Lessons that are only about clicks in Power BI Desktop or the Service have no checker.

Data: QuickKart quick-commerce (India, ₹, FY April–March) plus small models for retail, e-commerce, sales, finance, banking, insurance, healthcare, pharma, manufacturing, inventory, logistics, HR, marketing, education, hospitality, real estate, telecom, IT services and government — Indian and global examples. All names and numbers are made-up practice data.

Practice: 8.11 DAX Calculated Columns 11 tasks

  1. Line value Easy Calculated column on Orders: Line Value = Qty × UnitPrice.
  2. Net value after discount Easy Calculated column on Orders: Net Value = Qty × UnitPrice − Discount.
  3. Category on each line Easy Calculated column on Orders: Category = the Category of the product on the row.
  4. Order year Easy Calculated column on Orders: Order Year = the year of OrderDate.
  5. Line cost Medium Calculated column on Orders: Line Cost = Qty × the product CostPrice.
  6. Line profit Medium Calculated column on Orders: Line Profit = Qty × (UnitPrice − product CostPrice).
  7. Big or small basket Medium Calculated column on Orders: Basket = "Big" when Qty is 3 or more, else "Small".
  8. Store label Medium Calculated column on Store: Store Label = StoreName, a space, a dash, a space, then City. Example: Kothrud Hub - Pune.
  9. Speed band Hard Calculated column on Orders: Speed = "Cancelled" if DeliveryMins is blank, "Fast" if 10 or less, else "Normal".
  10. Margin percent on Product Hard Calculated column on Product: Margin % = (MRP − CostPrice) ÷ MRP. Use DIVIDE.
  11. Order lines per product Hard Calculated column on Product: Lines = number of Orders rows for that product.

Practice: 8.12 Calculated Columns vs Measures in Depth 10 tasks

  1. Line revenue column Easy Calculated column on Sales: Line Revenue = Cups × Price.
  2. Revenue as a measure Easy Measure: Revenue Total = Cups × Price added up over Sales.
  3. City on each sale Easy Calculated column on Sales: City = the City of the shop.
  4. Revenue per shop city Easy Shown per Shop City. Measure: City Revenue that simply reuses the Revenue measure.
  5. Big order flag Medium Calculated column on Sales: Big = "Yes" when Cups is 12 or more, else "No".
  6. Count of big orders Medium Shown per Item. Measure: Big Orders = number of Sales rows with Cups 12 or more.
  7. Average cups per shop Medium Shown per ShopName. Measure: Avg Cups = average of Cups.
  8. Shop revenue column Hard Calculated column on Shop: Shop Revenue = Cups × Price added over the sales of that shop.
  9. Share of all revenue Hard Shown per Shop City. Measure: Share = [Revenue] ÷ revenue of all shops.
  10. Cash sales per barista Hard Shown per Barista. Measure: Cash Lines = number of Sales rows paid in Cash.

Practice: 8.13 Implicit vs Explicit Measures 10 tasks

  1. Total fees Easy Measure: Total Fee = add up the Fee column of Visits.
  2. Visit count Easy Measure: Visit Count = number of rows in Visits.
  3. Average wait Easy Measure: Avg Wait = average of WaitMins.
  4. Different patients Easy Measure: Patients = number of different patients.
  5. Fee per visit by department Medium Shown per Department. Measure: Fee per Visit = [Total Fees] ÷ number of visits.
  6. Longest wait per city Medium Shown per Doctors City. Measure: Max Wait = largest WaitMins.
  7. Insured fees Medium Measure: Insured Fees = [Total Fees] where Insured is "Yes".
  8. Insured share by department Hard Shown per Department. Measure: Insured Share = insured fees ÷ [Total Fees].
  9. Emergencies per doctor Hard Shown per DoctorName. Measure: Emergencies = number of visits with VisitType "Emergency".
  10. Long waits by visit type Hard Shown per VisitType. Measure: Long Waits = number of visits with WaitMins more than 20.

Practice: 11.4 Relationships 10 tasks

  1. Rows per Unit Easy Shown per Units Name. Measure: Row Count = number of Ledger rows.
  2. Revenue for Service only Medium Shown per City. Measure: Revenue Service = SUM of Revenue where Segment is "Service".
  3. Share of Revenue Medium Shown per Units Name. Measure: Revenue Share = SUM of Revenue ÷ SUM of Revenue for all of Units.
  4. How many units per Segment Medium Shown per Segment. Measure: Units Count = distinct count of UnitID in Ledger.
  5. Average receivables per country Easy Shown per Country. Measure: Avg Receivables = AVERAGE of Receivables.
  6. Cost Ratio Medium Shown per Units Name. Measure: Cost Ratio = SUM of Cost ÷ SUM of Revenue.
  7. Average Revenue per row Medium Shown per Units Name. Measure: Revenue per Row = SUM of Revenue ÷ number of rows.
  8. Rows with high receivables Medium Shown per Country. Measure: High Receivables Rows = number of rows where Receivables is more than 300000.
  9. Revenue in the first half-year Medium Shown per Country. Measure: H1 Revenue = SUM of Revenue for MonthDate before 1 Oct 2025.
  10. Rank by Revenue Hard Shown per Units Name. Measure: Revenue Rank = rank of [Total Revenue] among all Units Name values.

Practice: 11.5 The Date Table 10 tasks

  1. Year number Easy Calculated column on Date: Year No = the year of the Date column.
  2. Month number Easy Calculated column on Date: Month No = the month number of Date.
  3. Day of month Easy Calculated column on Date: Day No = the day of the month.
  4. Days in the table Easy Measure: Day Count = number of rows in Date.
  5. Calendar quarter label Medium Calculated column on Date: Qtr = "Q" followed by the calendar quarter number, like Q1.
  6. FY start year Medium Calculated column on Date: FY Start = the year if the month is April or later, else the year minus 1.
  7. FY month number Medium Calculated column on Date: FY Month = month − 3 for April to December, month + 9 for January to March.
  8. FY label Hard Calculated column on Date: FY Name = "FY " followed by the FY start year.
  9. Weekend flag Hard Calculated column on Date: Day Type = "Weekend" if WEEKDAY with type 2 is 6 or more, else "Weekday".
  10. Days with orders Hard Shown per FY. Measure: Order Days = number of different OrderDate values.

Practice: 11.9 A Flat Table versus a Dimensional Model 10 tasks

  1. Total Salary Easy Measure: Salary Sum = SUM of Salary.
  2. Rows per Dept Easy Shown per Depts Name. Measure: Row Count = number of Employees rows.
  3. Total Bonus per Status Easy Shown per Status. Measure: Total Bonus = SUM of Bonus.
  4. Average training hours per country Easy Shown per Country. Measure: Avg TrainingHrs = AVERAGE of TrainingHrs.
  5. How many depts per Status Medium Shown per Status. Measure: Depts Count = distinct count of DeptID in Employees.
  6. Salary for Left only Medium Shown per City. Measure: Salary Left = SUM of Salary where Status is "Left".
  7. Bonus Rate Medium Shown per Depts Name. Measure: Bonus Rate = SUM of Bonus ÷ SUM of Salary.
  8. Share of Salary Medium Shown per Depts Name. Measure: Salary Share = SUM of Salary ÷ SUM of Salary for all of Depts.
  9. Rows with high training hours Medium Shown per Country. Measure: High TrainingHrs Rows = number of rows where TrainingHrs is more than 40.
  10. Salary minus Bonus column Medium Calculated column on Employees: Row Gap = Salary − Bonus.

Practice: 11.10 Role-Playing Dimensions 10 tasks

  1. Units by order month Easy Shown per Month. Measure: Units Ordered = the existing quantity measure, unchanged.
  2. Units by delivered month Easy Shown per Month. Measure: Units Delivered = [Total Qty] using the DeliveredDate relationship.
  3. Orders by order year Easy Shown per Year. Measure: Orders Placed = the existing order count measure, unchanged.
  4. Orders by delivery year Medium Shown per Year. Measure: Orders Delivered = [Total Orders] by delivery date.
  5. Delivered sales in a quarter Medium Slicer: FY 2025-26 and FYQuarter Q2. Measure: Delivered Sales = [Total Sales] by delivery date.
  6. Delivered Blinkit sales Medium Shown per FY. Measure: Blinkit Delivered = [Total Sales] for Platform "Blinkit" by delivery date.
  7. Average delivery minutes by delivery quarter Medium Shown per FYQuarter. Measure: Avg Mins Delivered = average DeliveryMins by delivery date.
  8. Ordered minus delivered units Hard Shown per FY. Measure: Qty Gap = [Total Qty] by order date − [Total Qty] by delivery date.
  9. Delivered sales per Pune store Hard Slicer: Store City = Pune. Shown per FY. Measure: Delivered Sales = [Total Sales] by delivery date.
  10. Delivered units in Q4 Hard Slicer: FY 2024-25 and FYQuarter Q4. Measure: Units Delivered = [Total Qty] by delivery date.

Practice: 12.5 Data Groups (List Groups) 10 tasks

  1. Region of each plant Easy Calculated column on Plants: Region = "Asia" when Country is "India", else "Europe".
  2. Shift code Easy Calculated column on Batches: Shift Code = "D" for the Day shift, else "N".
  3. Plant country on each batch Easy Calculated column on Batches: Country = the Country of the plant.
  4. Part family Medium Calculated column on Batches: Family = "Brakes" for Brake Disc, "Transmission" for Clutch Plate and Gear Shaft, else "Engine".
  5. Home or away Medium Calculated column on Plants: Group = "Home" for India, "DACH" for Germany, else "Other".
  6. Transmission units Medium Measure: Transmission Units = [Units Made] for Part in Clutch Plate and Gear Shaft.
  7. European units per part Medium Shown per Part. Measure: Europe Units = [Units Made] for Country in Germany and France.
  8. German share per part Hard Shown per Part. Measure: Germany Share = units in Germany ÷ [Units Made].
  9. Everything except pistons Hard Shown per Plant. Measure: Non Piston Units = [Units Made] for every part except Piston.
  10. Rejects in German night shifts Hard Shown per Part. Measure: DE Night Rejects = SUM of UnitsRejected for Germany and the Night shift.

Practice: 12.6 Bin Groups (Numeric and Date Bins) 10 tasks

  1. Ten-minute wait bin Easy Calculated column on Visits: Wait Bin = WaitMins ÷ 10, decimals dropped, times 10. Example: 25 becomes 20.
  2. Visit month Easy Calculated column on Visits: Visit Month = the month number of VisitDate.
  3. Half of the month Easy Calculated column on Visits: Half = "1st half" when the day is 15 or less, else "2nd half".
  4. Wait bands Medium Calculated column on Visits: Wait Band = "0-15" up to 15, "16-30" up to 30, else "31+".
  5. Fee band Medium Calculated column on Visits: Fee Band = "High" for 1000 or more, "Mid" for 800 or more, else "Low".
  6. Fifteen-minute upper bin Medium Calculated column on Visits: Wait Step = WaitMins ÷ 15 rounded up to a whole number, times 15. Example: 20 becomes 30.
  7. Long waits per department Medium Shown per Department. Measure: Waits 31+ = number of visits with WaitMins more than 30.
  8. Short waits per visit type Hard Shown per VisitType. Measure: Short Waits = number of visits with WaitMins 15 or less.
  9. Fees in the middle bin Hard Shown per Doctors City. Measure: Mid Wait Fees = [Total Fees] for WaitMins above 15 and up to 30.
  10. Share of visits in August Hard Shown per Department. Measure: Aug Share = visits in month 8 ÷ all visits.

Practice: 12.7 Groups vs Calculated Columns vs Hierarchies 10 tasks

  1. Seat band Easy Calculated column on Subscriptions: Size = "Large" for 25 seats or more, else "Small".
  2. Monthly value per subscription Easy Calculated column on Subscriptions: Line MRR = Seats × PricePerSeat.
  3. Start quarter Easy Calculated column on Subscriptions: Start Qtr = "Q" and the quarter number of StartDate.
  4. Sales region Medium Calculated column on Accounts: Region = "Americas" for USA, Canada and Chile, "APAC" for India and Australia, else "EMEA".
  5. Price tier Medium Calculated column on Subscriptions: Tier = "Premium" for price 90 or more, "Standard" for 40 or more, else "Entry".
  6. Americas MRR Medium Measure: Americas MRR = [MRR] for Country in USA, Canada and Chile.
  7. Subscriptions per industry Medium Shown per Industry. Measure: Subs = number of Subscriptions rows.
  8. Large subscriptions per plan Hard Shown per Plan. Measure: Large Subs = number of rows with Seats 25 or more.
  9. Average seats per country Hard Shown per Country. Measure: Avg Seats = average of Seats.
  10. APAC share of MRR Hard Measure: APAC Share = [MRR] for India and Australia ÷ [MRR].

Practice: 13.1 What is DAX? 10 tasks

  1. Total units sold Easy Create a measure Total Qty that adds up the Qty column of the Orders table.
  2. Count order lines Easy Create a measure Order Lines that counts the rows of the Orders table.
  3. Biggest quantity in one line Easy Create a measure Max Qty that returns the largest Qty in Orders.
  4. Total discount given Easy Create a measure Total Discount that adds the Discount column of Orders.
  5. Average unit price Easy Create a measure Avg Unit Price that gives the average of Orders[UnitPrice].
  6. Number of different customers Medium Create a measure Customers that counts how many different CustomerID values appear in Orders.
  7. Total sales value Medium Create a measure Sales Value that multiplies Qty by UnitPrice on each Orders row and adds the results.
  8. Fastest delivery Medium Create a measure Fastest Delivery that returns the smallest DeliveryMins. Blank cells (cancelled orders) are ignored automatically.
  9. Average order lines per customer Hard Create a measure Lines per Customer = order lines divided by different customers. Use the safe divide function.
  10. Gross profit Hard Create a measure Gross Profit = SUM over Orders of Qty × (UnitPrice − the product's CostPrice). CostPrice lives in Product.

Practice: 13.2 Calculated Columns vs Measures (Recap) 10 tasks

  1. Line value column Easy Calculated column on Orders: Line Value = Qty × UnitPrice.
  2. Total line value as a measure Easy Measure: Total Line Value = add Qty × UnitPrice over all Orders rows.
  3. Is it cancelled? column Easy Calculated column on Orders: Is Cancelled = TRUE when Status is "Cancelled".
  4. Price band column Easy Calculated column on Orders: Band = "Big" if UnitPrice is 200 or more, otherwise "Small".
  5. Product category on each order Medium Calculated column on Orders: Category = the Category of the product on that row.
  6. Delivered orders measure Medium Measure: Delivered Lines = number of Orders rows where Status is "Delivered".
  7. Cost price column Medium Calculated column on Orders: Line Cost = Qty × the product CostPrice.
  8. Average line value Medium Measure: Avg Line Value = average of Qty × UnitPrice across Orders rows.
  9. Pune share as a measure Hard Measure: Pune Share = Pune sales value divided by all sales value. Sales value = SUMX of Qty × UnitPrice. Use DIVIDE.
  10. Days to deliver column Hard Calculated column on Orders: Days to Deliver = number of days from OrderDate to DeliveredDate (blank stays blank).

Practice: 13.3 Filter Context and Row Context 10 tasks

  1. Units with a city slicer Easy A slicer is set to Store City = Pune (the box applies it). Write Total Qty = SUM of Orders[Qty].
  2. Units by city Easy The box shows a table with one row per Store City. Write Total Qty = SUM of Orders[Qty] and see each city get its own number.
  3. Order lines for Zepto Easy Slicer: Orders Platform = Zepto. Write Lines = COUNTROWS of Orders.
  4. Sales value by category Medium Table by Product Category. Measure Sales = SUMX over Orders of Qty × UnitPrice.
  5. Two slicers at once Medium Slicers: Store City = Mumbai and Platform = Blinkit. Measure Sales = SUMX over Orders of Qty × UnitPrice.
  6. Customers by segment Medium Table by Customer Segment. Measure Buyers = number of different CustomerID values in Orders.
  7. Average delivery by store city Medium Table by Store City. Measure Avg Delivery = average of Orders[DeliveryMins].
  8. City sales ignoring the slicer Hard Slicer: Store City = Nashik. Measure All City Sales = sales value (SUMX Qty × UnitPrice) for ALL cities, ignoring the slicer.
  9. Premium buyers by city Hard Table by Store City. Measure Premium Lines = number of Orders rows where Customer Segment is "Premium".
  10. Big lines with row context Hard Measure Big Lines = number of Orders rows where Qty × UnitPrice is more than 500.

Practice: 13.4 DAX Syntax 10 tasks

  1. Name = formula Easy Write a measure called Cups Sold that adds Sales[Cups].
  2. Table[Column] reference Easy Write Avg Price = the average of the Price column in Sales.
  3. Text needs double quotes Easy Write Latte Cups = cups sold where Item is "Latte".
  4. Commas separate inputs Easy Write Revenue = SUMX over Sales of Cups × Price.
  5. Referencing a measure Medium The model already has a measure [Revenue]. Write Revenue London = [Revenue] for City "London" only.
  6. Comments do not change the answer Medium Write Card Sales = number of Sales rows where PayMode is "Card". Add a comment after // at the end of the line.
  7. Table names with spaces Medium Write Shops = COUNTROWS of the Shop table, writing the table name in single quotes.
  8. Operators: & joins text Hard Write Top Item Label = the text "Item: " joined with the Item that has the most cups. Use TOPN to keep the top item by cups and CONCATENATEX to turn it into text.
  9. Nested functions Hard Write Avg Revenue per Shop = the average of [Revenue] across the list of shop names.
  10. Scotland card revenue Hard Write Scotland Card Rev = [Revenue] where Shop Country is "Scotland" and PayMode is "Card".

Practice: 13.5 Base Measures for the Quick-Commerce Model 10 tasks

  1. Total Sales Easy Write Sales Amt = SUMX over Orders of Qty × UnitPrice.
  2. Total Orders Easy Write Orders Count = number of different OrderID values.
  3. Delivered Sales Easy Write Delivered Sales = [Total Sales] only for Status "Delivered".
  4. Average Order Value (AOV) Medium Write AOV = [Total Sales] divided by [Total Orders] using DIVIDE.
  5. Cancelled Orders Medium Write Cancelled Orders = [Total Orders] where Status is "Cancelled".
  6. Cancellation Rate % Medium Write Cancel Rate = cancelled orders ÷ all orders. Use DIVIDE and CALCULATE.
  7. Avg Delivery Minutes Medium Write Avg Delivery Mins = AVERAGE of Orders[DeliveryMins].
  8. Net Sales after discount Hard Write Net Sales = SUMX over Orders of (Qty × UnitPrice − Discount).
  9. Gross Margin % Hard Write Margin % = (sales − cost) ÷ sales, where cost = Qty × the product CostPrice, added over all rows.
  10. AOV by platform Hard The box shows a row per Platform. Write AOV = [Total Sales] ÷ [Total Orders], using safe division.

Practice: 13.6 Aggregation Functions 10 tasks

  1. Total fees Easy Write Total Fee = SUM of Visits[Fee].
  2. Average waiting time Easy Write Avg Wait = AVERAGE of Visits[WaitMins].
  3. Longest wait Easy Write Max Wait = largest WaitMins.
  4. Number of visits Easy Write Visit Count = COUNTROWS of Visits.
  5. Unique patients Medium Write Patients = number of different Patient names.
  6. Count text values Medium Write Insured Values = COUNTA of Visits[Insured].
  7. Cheapest fee Medium Write Min Fee = smallest Visits[Fee].
  8. Fees by department Medium The box shows a row per Doctors Department. Write Total Fee = the sum of Visits[Fee].
  9. Fee per waiting minute Hard Write Fee per Min = AVERAGEX over Visits of Fee ÷ WaitMins.
  10. Highest daily fee Hard Write Best Day Fee = the highest total fee earned on a single visit date.

Practice: 13.7 Logical Functions 10 tasks

  1. Big deal flag Easy Calculated column on Subscriptions: Big Deal = IF Seats is 25 or more then "Yes" else "No".
  2. Is it churned? Easy Column on Subscriptions: Lost = IF Status = "Churned" then 1 else 0.
  3. MRR status Easy Measure MRR Status = "On track" if [MRR] is above 5000, else "Below".
  4. Plan level number Medium Column: Plan Level = 1 for "Basic", 2 for "Pro", 3 for "Enterprise".
  5. Seat band with SWITCH(TRUE()) Medium Column Seat Band: "Large" if Seats >= 50, "Mid" if Seats >= 20, else "Small".
  6. Active Pro MRR (AND) Medium Measure Active Pro MRR = [MRR] for rows where Status = "Active" AND Plan = "Pro". Use FILTER with &&.
  7. Needs attention (OR) Medium Column Attention = TRUE if Tickets >= 3 OR Status = "Churned".
  8. Not churned seats (NOT) Hard Measure Live Seats = SUM of Seats for rows where NOT (Status = "Churned").
  9. Health label by country Hard Row per Accounts Country. Measure Health = "Good" if [MRR] >= 1000, "Low" if it is less, and BLANK() when there is no MRR.
  10. Count of risky subscriptions Hard Measure Risky = number of Subscriptions rows with Tickets >= 3 and Plan is not "Basic".

Practice: 13.8 CALCULATE: the Most Important Function 10 tasks

  1. Pune sales Easy Write Pune Sales = [Total Sales] for Store City "Pune".
  2. Dairy units Easy Write Dairy Qty = [Total Qty] for Product Category "Dairy".
  3. Blinkit orders Easy Write Blinkit Orders = [Total Orders] for Platform "Blinkit".
  4. Two filters = AND Medium Write Mumbai Delivered = [Total Sales] for City "Mumbai" and Status "Delivered".
  5. Two values of one column (IN) Medium Write Pune or Mumbai = [Total Sales] where City is Pune or Mumbai.
  6. CALCULATE overrides a slicer Medium Slicer: City = Nagpur. Write Pune Sales = [Total Sales] for City "Pune". The answer is still Pune's sales.
  7. This financial year Medium Write FY26 Sales = [Total Sales] for 'Date'[FY] = "FY 2025-26".
  8. Premium share by city Hard Row per Store City. Write Premium Share = sales from Premium customers ÷ all sales.
  9. Filter with a number test Hard Write Bulk Sales = [Total Sales] for lines with Qty of 3 or more.
  10. Ignore the platform slicer Hard Slicer: Platform = Zepto. Write Pune All Platforms = Pune sales for every platform (ignore the platform slicer).

Practice: 13.9 FILTER 10 tasks

  1. Batches with many rejects Easy Write High Reject Batches = number of Batches rows where UnitsRejected is more than 5.
  2. Night shift output Easy Write Night Units = UnitsMade added only for Night shift rows, using SUMX over a FILTER.
  3. Big batches Easy Write Big Batch Units = units made in batches of 400 or more, using CALCULATE with FILTER.
  4. Reject rate above 2% Medium Write Poor Batches = number of batches where UnitsRejected ÷ UnitsMade is above 0.02.
  5. Filter the dimension table Medium Write Germany Units = units made in plants where Country is "Germany", using FILTER on Plants.
  6. Good piston cost Medium Write Good Piston Cost = for Piston rows, add (UnitsMade − UnitsRejected) × CostPerUnit.
  7. Two tests with && Medium Write Day Disc Rejects = UnitsRejected added for Day shift AND Part "Brake Disc".
  8. Zero-defect batches by country Hard Row per Plants Country. Write Zero Defect = number of batches with 0 rejects.
  9. Plants above 2,000 units Hard Write Strong Plants = number of plants whose total UnitsMade is more than 2000.
  10. FILTER on ALL ignores the slicer Hard Slicer: Shift = Night. Write Full Runs All = number of batches in the whole table with UnitsMade = 500.

Practice: 13.10 ALL, ALLEXCEPT, REMOVEFILTERS, ALLSELECTED 10 tasks

  1. City % of total Easy Row per Store City. Write City % = [Total Sales] ÷ sales for all cities.
  2. Grand total under a slicer Easy Slicer: City = Mumbai. Write All Cities = [Total Sales] for all cities.
  3. REMOVEFILTERS on a table Easy Row per Product Category. Write All Product Sales = [Total Sales] with all Product filters removed.
  4. City total next to each store Medium A matrix shows Store City and then StoreName. Write City Total = [Total Sales] for the whole city of that store.
  5. Store share within its city Medium A matrix shows Store City and then StoreName. Write Store % of City = [Total Sales] ÷ city total.
  6. Share of the selection Medium Slicer: City = Pune and Mumbai. Row per Store City. Write Share of Selected = [Total Sales] ÷ sales of the selected cities.
  7. Platform share of orders Medium Row per Orders Platform. Write Platform % = [Total Orders] ÷ orders of all platforms.
  8. ALL as a table Hard Slicer: Category = Dairy. Write Product Count = number of rows in ALL of the Product table.
  9. Count categories Hard Write Category Count = number of rows in ALL of Product[Category].
  10. Qty ignoring every slicer Hard Slicers: City = Pune and Platform = Zepto. Write Total Qty All = [Total Qty] with ALL on Orders.

Practice: 13.11 RELATED and RELATEDTABLE 10 tasks

  1. Shop city on every sale Easy Calculated column on Sales: Shop City = the City of the shop that made the sale.
  2. Shop country on every sale Easy Calculated column on Sales: Shop Country = the Country of the related shop.
  3. Line revenue column Easy Calculated column on Sales: Line Revenue = Cups × Price.
  4. Is it a Scottish sale? Medium Calculated column on Sales: Is Scotland = TRUE when the related shop Country is "Scotland".
  5. Number of sales per shop Medium Calculated column on Shop: Sale Count = number of Sales rows for that shop.
  6. Cups per shop Medium Calculated column on Shop: Shop Cups = total Cups of the related Sales rows.
  7. Revenue per shop column Medium Calculated column on Shop: Shop Revenue = Cups × Price added over the related Sales rows.
  8. London revenue measure Hard Measure: London Revenue = Cups × Price added for sales whose shop City is "London". Use FILTER on Sales with RELATED.
  9. England cups with IF Hard Measure: England Cups = add Cups only when the related shop Country is "England", else add 0.
  10. Busy shops per city Hard Shown per City. Measure: Busy Shops = number of Shop rows whose related Sales count is 6 or more.

Practice: 13.12 USERELATIONSHIP 10 tasks

  1. Sales by order date Easy Shown per FY. Measure: Order Sales that simply reuses the Total Sales measure.
  2. Sales by delivery date Easy Shown per FY. Measure: Delivered Sales = [Total Sales] using the DeliveredDate relationship.
  3. Delivered units Easy Shown per FY. Measure: Delivered Qty = [Total Qty] using the delivery date.
  4. Delivered sales this FY Medium Slicer: FY 2025-26. Measure: Delivered Sales = [Total Sales] by delivery date.
  5. Delivered orders per quarter Medium Slicer: FY 2024-25. Shown per FYQuarter. Measure: Delivered Orders = [Total Orders] by delivery date.
  6. Average delivery minutes by delivery FY Medium Shown per FY. Measure: Delivered Avg Mins = average of DeliveryMins using the delivery date.
  7. Late deliveries Medium Measure: Next Day Deliveries = number of Orders rows where DeliveredDate is after OrderDate.
  8. Pune deliveries by FY Hard Shown per FY. Measure: Pune Delivered = [Total Sales] for City "Pune" using the delivery date.
  9. Delivered sales per city this FY Hard Slicer: FY 2025-26. Shown per Store City. Measure: Delivered Sales = [Total Sales] by delivery date.
  10. Delivered units in March Hard Slicers: FY 2024-25 and Month Mar. Measure: Delivered Qty = [Total Qty] by delivery date.

Practice: 13.13 VALUES, SELECTEDVALUE and HASONEVALUE 10 tasks

  1. Which department is picked? Easy Slicer: Department = Cardiology. Measure: Picked Dept = the one selected Department.
  2. More than one picked Easy Slicer: Department = Cardiology and Dermatology. Measure: Picked Dept = selected Department, or "Many" if not exactly one.
  3. Count of patients Easy Slicer: Insured = Yes. Measure: Patients = number of rows in the VALUES of Visits[Patient].
  4. Exactly one department? Medium Slicer: Department = Cardiology and Dermatology. Measure: One Dept = TRUE if only one Department is selected.
  5. Dynamic card title Medium Slicer: City = Delhi. Measure: Title = "Fees for " joined with the selected City, or "All cities" if none or many.
  6. Visit types per department Medium Shown per Department. Measure: Visit Types = number of different VisitType values.
  7. Doctors per city Medium Shown per City. Measure: Doctors Seen = number of different DoctorName values.
  8. Fee only for single-doctor rows Hard Shown per Department. Measure: Single Doctor Fees = [Total Fees] only when exactly one DoctorName is in the row, else blank.
  9. Fees per doctor Hard Shown per Department. Measure: Fees per Doctor = [Total Fees] ÷ number of different DoctorID values.
  10. Cardiology premium Hard Shown per Department. Measure: Adjusted Fees = [Total Fees] × 1.1 when the selected Department is "Cardiology", else [Total Fees].

Practice: 13.14 Text Functions 10 tasks

  1. Short company code Easy Calculated column on Accounts: Code = first 3 letters of Company.
  2. Country in capitals Easy Calculated column on Accounts: Country Caps = Country in upper case.
  3. Length of the name Easy Calculated column on Accounts: Name Length = number of characters in Company.
  4. Company with country Easy Calculated column on Accounts: Label = Company, a space, then Country in round brackets.
  5. Number part of the ID Medium Calculated column on Subscriptions: Sub No = last 2 characters of SubID.
  6. First word of the company Medium Calculated column on Accounts: First Word = letters before the first space in Company.
  7. Shorter plan name Medium Calculated column on Subscriptions: Plan Short = Plan with "Enterprise" replaced by "Ent".
  8. Monthly value as text Hard Calculated column on Subscriptions: MRR Text = Seats × PricePerSeat shown with a thousands comma and no decimals.
  9. Companies with "an" in the name Hard Measure: Has AN = number of Accounts rows whose Company contains "an" (any case).
  10. List of countries Hard Measure: Country List = all different Country values joined with ", " in A to Z order.

Practice: 13.15 Date Functions 10 tasks

  1. Year of the batch Easy Calculated column on Batches: Batch Year = year of BatchDate.
  2. Month number Easy Calculated column on Batches: Month No = month number (1 to 12) of BatchDate.
  3. Month name Easy Calculated column on Batches: Month Name = BatchDate shown as a 3-letter month (Mar, Apr...).
  4. Day of week Medium Calculated column on Batches: Week Day = weekday number of BatchDate with Monday = 1.
  5. Quarter label Medium Calculated column on Batches: Qtr = "Q" joined with the quarter number of BatchDate.
  6. Days left in the month Medium Calculated column on Batches: Days Left = days from BatchDate to the last day of its month.
  7. First batch date Medium Measure: First Batch = the earliest BatchDate.
  8. Production span in days Hard Measure: Span Days = days between the earliest and latest BatchDate.
  9. May units Hard Measure: May Units = UnitsMade added for batches made in month 5.
  10. Weekend batches Hard Measure: Weekend Batches = number of batches on Saturday or Sunday.

Practice: 13.16 Time Intelligence (FY April–March) 10 tasks

  1. Year-to-date sales Easy Slicer: FY 2024-25. Shown per FYMonthNo (April = 1). Measure: Sales YTD = running total of [Total Sales] from April.
  2. Last year sales by FY Easy Shown per FY. Measure: Sales LY = [Total Sales] for the same period last year.
  3. Year-to-date units Easy Slicer: FY 2024-25. Shown per FYMonthNo. Measure: Qty YTD = [Total Qty] for dates from April to now.
  4. Same month last year Medium Slicer: FY 2025-26. Shown per FYMonthNo. Measure: Sales LY = [Total Sales] for the same period last year.
  5. Last month sales Medium Slicer: FY 2025-26. Shown per FYMonthNo. Measure: Sales PM = [Total Sales] shifted back one month.
  6. Quarter-to-date Medium Slicer: FY 2025-26. Shown per FYMonthNo. Measure: Sales QTD = running total of [Total Sales] inside the quarter.
  7. Last quarter sales Medium Slicer: FY 2025-26. Shown per FYQuarter. Measure: Sales PQ = [Total Sales] shifted back one quarter.
  8. Last year per city Hard Slicer: FY 2025-26. Shown per Store City. Measure: Sales LY = [Total Sales] for the same period last year.
  9. Growth versus last year Hard Shown per FY. Measure: YoY % = growth of [Total Sales] over the same period last year.
  10. Full-year YTD per city Hard Slicer: FY 2025-26. Shown per Store City. Measure: Sales YTD = [Total Sales] year to date with year end "3-31".

Practice: 13.17 Ranking: RANKX and TOPN 10 tasks

  1. Shop rank Easy Shown per ShopName. Measure: Shop Rank = rank of [Revenue] among all shop names (1 = highest).
  2. Barista rank Easy Shown per Barista. Measure: Barista Rank = rank of [Revenue] among all baristas.
  3. Smallest city first Easy Shown per City. Measure: Low Rank = rank of [Revenue] with the lowest as 1.
  4. Dense rank of items Medium Shown per Item. Measure: Item Rank = dense rank of [Revenue] among all items, highest = 1.
  5. Top 2 shops revenue Medium Measure: Top 2 Revenue = [Revenue] added over the 2 shops with the highest [Revenue].
  6. Top 3 baristas revenue Medium Measure: Top 3 Baristas = [Revenue] added over the 3 baristas with the highest [Revenue].
  7. Best shop name Medium Measure: Best Shop = the ShopName with the highest [Revenue].
  8. Most cups of one item Hard Measure: Max Item Cups = the highest total Cups of any single Item.
  9. Top 2 label Hard Shown per ShopName. Measure: Tier = "Top 2" if the shop rank by [Revenue] is 2 or better, else "Other".
  10. Best item per country Hard Shown per Country. Measure: Best Item Revenue = the highest [Revenue] of any Item.

Practice: 13.18 Variables: VAR and RETURN 10 tasks

  1. Reject rate with variables Easy Measure: Reject Rate = rejected units ÷ units made, using two variables.
  2. Good units Easy Measure: Good Units = units made minus units rejected, with variables.
  3. Production cost per country Easy Shown per Country. Measure: Prod Cost = UnitsMade × CostPerUnit added, stored in a variable.
  4. Cost per good unit Medium Shown per Part. Measure: Cost per Good = total cost ÷ good units.
  5. Share of all units Medium Shown per Plant. Measure: Unit Share = this plant's units ÷ units of all plants.
  6. Check or OK Medium Shown per Part. Measure: Quality Flag = "Check" if rejected ÷ made is above 0.02, else "OK".
  7. Germany share Medium Measure: Germany Share = units made in Germany ÷ all units made.
  8. Night minus day Hard Shown per Plant. Measure: Night Gap = Night shift units − Day shift units.
  9. Biggest part volume Hard Measure: Top Part Units = the highest total UnitsMade of any Part.
  10. Good percent column Hard Calculated column on Batches: Good Pct = (UnitsMade − UnitsRejected) ÷ UnitsMade, using a variable.

Practice: 13.19 Other Useful Functions 10 tasks

  1. Rounded order value Easy Measure: AOV Rounded = [Total Sales] ÷ [Total Orders], rounded to 0 decimals.
  2. Whole minutes Easy Measure: Avg Mins Whole = the average DeliveryMins with decimals cut off.
  3. Margin per product Easy Calculated column on Product: Margin = MRP − CostPrice.
  4. Even quantity flag Medium Calculated column on Orders: Even Qty = TRUE when Qty is even.
  5. Show 0 not blank Medium Slicer: Platform = Zepto. Shown per Store City. Measure: Sales or 0 = [Total Sales], or 0 when blank.
  6. Has sales? Medium Slicer: Platform = Zepto. Shown per Store City. Measure: Sales Status = "No sales" if [Total Sales] is blank, else "Has sales".
  7. Sales as text Medium Measure: Sales Text = [Total Sales] formatted with the pattern "#,0".
  8. Discount rate rounded Hard Measure: Disc Rate = SUM of Discount ÷ [Total Sales], rounded to 3 decimals.
  9. Speed band per city Hard Shown per Store City. Measure: Speed = "Fast" if average DeliveryMins ≤ 15, "OK" if ≤ 25, else "Slow".
  10. Category list Hard Measure: Categories = all different Product Category values joined with ", " in A to Z order.

Practice: 13.20 PREVIOUSMONTH, PREVIOUSYEAR, DATESMTD and Rolling Totals 10 tasks

  1. Previous month sales Easy Slicer: FY 2025-26. Shown per FYMonthNo. Measure: Sales PM = [Total Sales] in the previous month.
  2. Previous month orders Easy Slicer: FY 2024-25. Shown per FYMonthNo. Measure: Orders PM = [Total Orders] in the previous month.
  3. Month to date Easy Slicer: FY 2025-26. Shown per FYMonthNo. Measure: Sales MTD = [Total Sales] for DATESMTD of 'Date'[Date].
  4. Previous FY Medium Shown per FY. Measure: Sales PY = [Total Sales] for the previous year ending "3-31".
  5. Previous quarter Medium Slicer: FY 2024-25. Shown per FYQuarter. Measure: Sales PQ = [Total Sales] in the previous quarter.
  6. Month-on-month change Medium Slicer: FY 2025-26. Shown per FYMonthNo. Measure: MoM Change = [Total Sales] − previous month [Total Sales].
  7. Rolling 3 months Medium Slicer: FY 2025-26. Shown per FYMonthNo. Measure: Sales R3M = [Total Sales] for the 3 months ending on the last date in the row.
  8. Rolling 12 months units Hard Slicer: FY 2025-26. Shown per FYMonthNo. Measure: Qty R12M = [Total Qty] for the 12 months ending on the last date in the row.
  9. Last 30 days of the FY Hard Slicer: FY 2024-25. Measure: Sales L30D = [Total Sales] for the 30 days ending on the last date of the slicer.
  10. Festive season sales Hard Measure: Festive Sales = [Total Sales] from 1 Oct 2024 to 15 Nov 2024.

Practice: 13.21 KEEPFILTERS 10 tasks

  1. Pune sales on every row Easy Shown per Store City. Measure: Pune Sales = [Total Sales] with a filter City = "Pune".
  2. Pune sales only on the Pune row Easy Shown per Store City. Measure: Pune Kept = [Total Sales] for Pune, keeping the row filter.
  3. Zepto only on its row Easy Shown per Platform. Measure: Zepto Kept = [Total Sales] for Zepto, keeping the row filter.
  4. Dairy units everywhere Medium Shown per Category. Measure: Dairy Qty = [Total Qty] with Category = "Dairy".
  5. Dairy units only on Dairy Medium Shown per Category. Measure: Dairy Kept = [Total Qty] for Dairy, keeping the row filter.
  6. Slicer gets overwritten Medium Slicer: Store City = Nashik. Measure: Pune Sales = [Total Sales] with City = "Pune".
  7. Slicer and filter together Medium Slicer: Store City = Pune and Mumbai. Measure: Pune Kept = [Total Sales] for Pune, keeping the slicer.
  8. Big lines per city Hard Shown per Store City. Measure: Big Line Sales = [Total Sales] where Qty is 3 or more, using KEEPFILTERS.
  9. Share of Pune Hard Shown per Store City. Measure: Vs Pune = [Total Sales] ÷ Pune sales. Use DIVIDE.
  10. Zepto lines in Mumbai slicer Hard Slicer: Store City = Mumbai. Measure: Zepto Lines = row count of Orders for Zepto, keeping filters.

Practice: 13.22 LOOKUPVALUE and TREATAS 10 tasks

  1. Target on each store Easy Calculated column on Store: Target = the Target from CityTarget for the store City.
  2. Product name on each order Easy Calculated column on Orders: Product Name = ProductName from Product for the row ProductID.
  3. Target for the customer city Easy Calculated column on Customer: City Target = Target from CityTarget for the customer City.
  4. Pune target as a measure Medium Measure: Pune Target = the Target in CityTarget where City is "Pune".
  5. Why the plain SUM fails Medium Shown per Store City. Measure: All Targets = SUM of CityTarget[Target].
  6. Target per city with TREATAS Medium Shown per Store City. Measure: City Target = SUM of Target, filtered by the cities in the row through TREATAS.
  7. Target for two picked cities Medium Slicer: Store City = Pune and Mumbai. Measure: City Target = target total through TREATAS.
  8. Gap to target Hard Shown per Store City. Measure: Target Gap = [Total Sales] − the TREATAS target.
  9. Target achieved % Hard Shown per Store City. Measure: Achieved = [Total Sales] ÷ the TREATAS target. Use DIVIDE.
  10. Line cost by lookup Hard Calculated column on Orders: Line Cost = Qty × the CostPrice looked up from Product.

Practice: 13.23 Virtual Tables 10 tasks

  1. Doctors who had visits Easy Measure: Active Doctors = number of rows in VALUES of Visits[DoctorID].
  2. Days with visits Easy Measure: Visit Days = number of different VisitDate values.
  3. Insured visits Easy Measure: Insured Visits = rows of Visits where Insured is "Yes".
  4. Top doctor fees Medium Measure: Top Doctor Fees = the highest [Total Fees] of any DoctorName.
  5. Average fees per patient Medium Measure: Fees per Patient = average of [Total Fees] over the different patients.
  6. Smallest patient bill Medium Measure: Min Patient Fees = the lowest [Total Fees] of any patient.
  7. Repeat patients per department Medium Shown per Department. Measure: Repeat Patients = number of patients with 2 or more visits.
  8. Doctors above ₹5,000 Hard Shown per City. Measure: Big Earners = number of DoctorName values with [Total Fees] above 5000.
  9. Fees from long waits Hard Shown per Department. Measure: Long Wait Fees = sum of Fee for visits with WaitMins of 30 or more.
  10. Top 2 patients Hard Measure: Top2 Fees = total [Total Fees] of the 2 patients with the highest fees (ties included).

Practice: 13.24 Weighted Averages and FILTER inside an Iterator 10 tasks

  1. Simple average cost Easy Measure: Simple Avg Cost = average of CostPerUnit over batches.
  2. Weighted average cost Easy Measure: Weighted Cost = SUMX of UnitsMade × CostPerUnit ÷ SUM of UnitsMade. Use DIVIDE.
  3. Weighted cost per part Easy Shown per Part. Measure: Weighted Cost as in the last task.
  4. Reject rate per plant Medium Shown per Plant. Measure: Reject Rate = SUM of UnitsRejected ÷ SUM of UnitsMade.
  5. Average of batch rates Medium Measure: Avg Batch Rate = average over batches of UnitsRejected ÷ UnitsMade.
  6. Weighted cost per country Medium Shown per Country. Measure: Weighted Cost.
  7. Night shift cost Medium Measure: Night Cost = SUMX over Night-shift batches of UnitsMade × CostPerUnit.
  8. Cost per good unit Hard Shown per Plant. Measure: Good Unit Cost = SUMX of UnitsMade × CostPerUnit ÷ SUMX of UnitsMade − UnitsRejected.
  9. Weighted cost of big batches Hard Measure: Big Batch Cost = weighted cost only for batches with UnitsMade of 400 or more.
  10. Weighted minus simple Hard Shown per Part. Measure: Avg Gap = weighted cost − AVERAGE of CostPerUnit.

Practice: 13.25 IFERROR, BLANK versus Zero 10 tasks

  1. Price per seat Easy Measure: Price per Seat = [MRR] ÷ SUM of Seats.
  2. Tickets per seat by plan Easy Shown per Plan. Measure: Tickets per Seat = SUM of Tickets ÷ SUM of Seats.
  3. Churned MRR as zero Easy Shown per Country. Measure: Churned MRR = [MRR] for Status "Churned", showing 0 instead of blank.
  4. COALESCE for zero Medium Shown per Industry. Measure: Churned MRR = churned [MRR], or 0 if blank. Use COALESCE.
  5. Number from the ID Medium Calculated column on Subscriptions: Sub Number = the number in the last 2 characters of SubID, or 0 on error.
  6. Text flag for churn Medium Shown per Country. Measure: Churn Flag = "No churn" if churned [MRR] is blank, else "Has churn".
  7. Hide zero-ticket rows Medium Shown per SubID. Measure: Busy MRR = blank when SUM of Tickets is 0, else [MRR].
  8. Churn share or zero Hard Shown per Country. Measure: Churn Share = churned rows ÷ all rows, 0 when no churn.
  9. Enterprise MRR per company Hard Shown per Company. Measure: Ent MRR = [MRR] for Plan "Enterprise", plus 0.
  10. Tickets per active sub Hard Shown per Industry. Measure: Active Tickets = Tickets of Active subs ÷ number of Active subs, 0 if none.

Practice: 13.26 Dynamic Segmentation, Pareto and ABC 10 tasks

  1. Product rank Easy Shown per ProductName. Measure: Sales Rank = rank of [Total Sales] over ALL product names.
  2. Share of all sales Easy Shown per ProductName. Measure: Sales Share = [Total Sales] ÷ sales of ALL products.
  3. Running total from the top Medium Shown per ProductName. Measure: Cum Sales = sales of all products whose [Total Sales] is at least this product sales.
  4. Running percent Medium Shown per ProductName. Measure: Cum Pct = running total ÷ sales of ALL products.
  5. ABC class Hard Shown per ProductName. Measure: ABC = "A" if running percent is 0.7 or less, "B" if 0.9 or less, else "C".
  6. Top 3 product sales Medium Measure: Top3 Sales = total [Total Sales] of the 3 best product names.
  7. Top or other Medium Shown per ProductName. Measure: Top Label = "Top" if the sales rank is 3 or better, else "Other".
  8. Big customers Hard Measure: Big Customers = number of CustomerName values with [Total Sales] above 1000.
  9. Sales from big customers Hard Measure: Big Customer Sales = [Total Sales] added over customers whose [Total Sales] is above 1000.
  10. Customers above ₹500 per segment Hard Shown per Segment. Measure: Customers 500+ = number of customers with [Total Sales] above 500.

Practice: 13.27 DAX Query View 10 tasks

  1. Show the Shop table Easy Query: return the whole Shop table.
  2. English shops Easy Query: return Shop rows where Country is "England".
  3. Menu items, sorted Easy Query: return the different Item values of Sales, sorted A to Z.
  4. Total cups in one row Easy Query: return one row with a column "Cups" holding the SUM of Sales[Cups].
  5. Big sales Medium Query: return Sales rows with Cups of 20 or more, sorted by SaleID.
  6. Revenue by city Medium Query: one row per Shop City with a column "Revenue" = [Revenue], sorted by City.
  7. Cups per barista Medium Query: each Barista with a column "Cups" = CALCULATE of SUM of Sales[Cups], sorted by Barista.
  8. Sales count by pay mode Medium Query: one row per PayMode with "Sales" = COUNTROWS of Sales, sorted by PayMode.
  9. Top 2 items Hard Query: the 2 Items with the highest [Revenue], sorted by Item.
  10. London baristas Hard Query: the different Barista values for sales in London shops, sorted by Barista.

Practice: 20.2 Dynamic Titles with Measures 10 tasks

  1. City title Easy Slicer: Store City = Pune. Measure: Title = "Sales for " followed by the picked city, or "All Cities" when none or many.
  2. Title with no slicer Easy No slicer. Measure: Title = "Sales for " and the picked city, else "All Cities".
  3. Two cities picked Easy Slicer: Store City = Pune and Mumbai. Measure: Title = "Sales for " and the picked city, else "All Cities".
  4. Platform title per row Easy Shown per Platform. Measure: App Title = "App: " and the platform.
  5. FY in the title Medium Slicer: FY = FY 2025-26. Measure: FY Title = "Sales in " and the picked FY, else "all years".
  6. City and FY together Medium Slicers: Store City = Nashik and FY = FY 2024-25. Measure: Full Title = "Sales for ", the city or "All Cities", " in ", the FY or "all years".
  7. Filtered or not Medium Slicer: Store City = Mumbai. Measure: Filter Note = "Filtered by city" if Store City is filtered, else "All cities".
  8. No filter note Medium No slicer. Measure: Filter Note = "Filtered by city" if Store City is filtered, else "All cities".
  9. One app or many Hard Slicer: Platform = Blinkit and Zepto. Measure: App Note = "One app: " and the app if exactly one is picked, else "Many apps".
  10. City title per row Hard Shown per Store City. Measure: Row Title = the city followed by " store sales".

Practice: 20.3 Showing Several Selected Cities (CONCATENATEX) 10 tasks

  1. All cities in one line Easy Measure: City List = all Store cities joined with a comma and space, sorted A to Z.
  2. Two picked cities Easy Slicer: Store City = Pune and Mumbai. Measure: City List = the picked cities joined with ", ", sorted A to Z.
  3. All platforms Easy Measure: App List = all Platform values joined with ", ", sorted A to Z.
  4. Cities with a label Medium Slicer: Store City = Nashik and Nagpur. Measure: Cities Title = "Cities: " followed by the sorted list.
  5. Stores in each city Medium Shown per Store City. Measure: Stores = store names joined with ", ", sorted A to Z.
  6. Dairy products Medium Slicer: Category = Dairy. Measure: Products = product names joined with ", ", sorted A to Z.
  7. Products per category Medium Shown per Category. Measure: Products = product names joined with ", ", sorted A to Z.
  8. Too many cities Hard Slicer: Store City = Pune, Mumbai and Nashik. Measure: City Note = "Many cities" when more than 2 cities are picked, else the sorted list.
  9. Short list stays Hard Slicer: Store City = Kolhapur and Pune. Measure: City Note = "Many cities" when more than 2 cities, else the sorted list.
  10. Customers per segment Hard Shown per Segment. Measure: Names = customer names joined with ", ", sorted A to Z.

Practice: 20.5 Cards with Dynamic Labels 10 tasks

  1. Cups label Easy Shown per Shop City. Measure: Cups Label = SUM of Cups followed by " cups".
  2. Sales count label Easy Shown per Item. Measure: Sales Label = number of Sales rows followed by " sales".
  3. Pay mode label Easy Slicer: PayMode = Card. Measure: Pay Label = the picked PayMode, else "All pay modes", followed by " sales".
  4. Rounded revenue label Medium Shown per Shop City. Measure: Revenue Label = "£" followed by [Revenue] rounded to 0 decimals.
  5. Busy or quiet Medium Shown per Shop Name. Measure: Busy Label = "Busy" when SUM of Cups is 50 or more, else "Quiet".
  6. Barista label Medium Shown per Barista. Measure: Barista Label = the barista, ": ", SUM of Cups, " cups".
  7. Shops label Medium Shown per Shop Country. Measure: Shops Label = distinct count of Sales ShopID followed by " shops".
  8. Above or below average Hard Shown per Shop Name. Measure: Avg Label = "Above avg" when [Revenue] is more than revenue of all shops ÷ 5, else "Below avg".
  9. Average cups label Hard Shown per Shop City. Measure: Avg Cups Label = AVERAGE of Cups rounded to 0 decimals, followed by " cups per sale".
  10. Card share label Hard Shown per Shop City. Measure: Card Label = card revenue ÷ [Revenue] × 100, rounded to 0, followed by "% card".

Practice: 20.8 KPI-Based Colouring in Charts and Cards 10 tasks

  1. Reject rate Easy Shown per Plant. Measure: Reject Rate = SUM of UnitsRejected ÷ SUM of UnitsMade.
  2. Units colour Easy Shown per Plant. Measure: Units Colour = green when [Units Made] is 2000 or more, else grey "#605E5C".
  3. Shift colour Easy Shown per Shift. Measure: Shift Colour = "#F2C811" for Day and "#252423" for Night.
  4. Reject colour Medium Shown per Plant. Measure: Reject Colour = red when the reject rate is above 0.02, else green.
  5. Three-colour rate Medium Shown per Part. Measure: Part Colour = red above 0.03, amber above 0.015, else green.
  6. Country colour Medium Shown per Country. Measure: Country Colour = "#FF9933" for India, else "#0078D4".
  7. Cost colour Medium Shown per Part. Measure: Cost Colour = red when AVERAGE of CostPerUnit is above 30, else green.
  8. Tick or cross Hard Shown per Part. Measure: Rate Icon = "✔" when the reject rate is 0.02 or less, else "✖".
  9. Share target colour Hard Shown per Plant. Measure: Share Colour = green when [Units Made] is at least 0.25 × units of all plants, else red.
  10. Clean batches Hard Shown per Plant. Measure: Clean Batches = number of batches with UnitsRejected = 0.

Practice: 21.5 Dynamic Top N with a Parameter 10 tasks

  1. Product rank Easy Shown per Product Name. Measure: Product Rank = rank of [Total Sales] among all product names.
  2. City rank Easy Shown per Store City. Measure: City Rank = rank of [Total Sales] among all cities.
  3. Platform rank by orders Easy Shown per Platform. Measure: App Rank = rank of [Total Orders] among all platforms.
  4. Top 3 products only Medium Shown per Product Name. Measure: Top 3 Sales = [Total Sales] when the product rank is 3 or better, else blank.
  5. Top 2 cities only Medium Shown per Store City. Measure: Top 2 Sales = [Total Sales] when the city rank is 2 or better, else blank.
  6. City rank by units Medium Shown per Store City. Measure: Qty Rank = rank of [Total Qty] among all cities.
  7. Top 5 or others Medium Shown per Customer Name. Measure: Group = "Top 5" when the customer rank by [Total Sales] is 5 or better, else "Others".
  8. Sales of the top 3 products Hard Measure: Top 3 Total = [Total Sales] of the 3 best product names.
  9. Top 2 store share Hard Measure: Top 2 Share = sales of the 2 best store names ÷ sales of all stores.
  10. Dense rank of categories Hard Shown per Category. Measure: Cat Rank = dense rank of [Total Qty] among all categories, highest first.

Practice: 22.3 Measure Filters (Visual Level) 10 tasks

  1. Only big campaigns Medium Shown per Campaigns Name. Measure: Big Clicks = [Total Clicks] when it is more than 15000, else blank.
  2. Conversion Rate Medium Shown per Campaigns Name. Measure: Conversion Rate = SUM of Conversions ÷ SUM of Clicks.
  3. Conversion Rate against target Hard Shown per Campaigns Name. Measure: Conversion Rate Status = "On target" when Conversion Rate is >= 0.06, else "Check".
  4. Clicks for Search only Medium Shown per City. Measure: Clicks Search = SUM of Clicks where Channel is "Search".
  5. Rows with high spend Medium Shown per Country. Measure: High Spend Rows = number of rows where Spend is more than 40000.
  6. Rows per Campaign Easy Shown per Campaigns Name. Measure: Row Count = number of AdStats rows.
  7. Total Conversions per Channel Easy Shown per Channel. Measure: Total Conversions = SUM of Conversions.
  8. Average spend per country Easy Shown per Country. Measure: Avg Spend = AVERAGE of Spend.
  9. Conversion Rate for Search Hard Shown per Country. Measure: Conversion Rate Search = Conversion Rate where Channel is "Search".
  10. Top 3 only Hard Shown per Campaigns Name. Measure: Top 3 Clicks = [Total Clicks] when the rank is 3 or better, else blank.

Practice: 22.4 Top N Filter 10 tasks

  1. Rank by Units Hard Shown per Reps Name. Measure: Units Rank = rank of [Total Units] among all Reps Name values.
  2. Top 3 only Hard Shown per Reps Name. Measure: Top 3 Units = [Total Units] when the rank is 3 or better, else blank.
  3. Units of the top 2 Hard Measure: Top 2 Units = [Total Units] for the 2 best Reps names.
  4. Total Units Easy Measure: Units Sum = SUM of Units.
  5. Share of Units Medium Shown per Reps Name. Measure: Units Share = SUM of Units ÷ SUM of Units for all of Reps.
  6. Return Rate Medium Shown per Reps Name. Measure: Return Rate = SUM of Returned ÷ SUM of Units.
  7. Only big reps Medium Shown per Reps Name. Measure: Big Units = [Total Units] when it is more than 8000, else blank.
  8. Rows per Rep Easy Shown per Reps Name. Measure: Row Count = number of RxSales rows.
  9. Units for Diabetes only Medium Shown per City. Measure: Units Diabetes = SUM of Units where Therapy is "Diabetes".
  10. Average Units per row Medium Shown per Reps Name. Measure: Units per Row = SUM of Units ÷ number of rows.

Practice: 26.2 Static RLS 10 tasks

  1. RLS: one country Easy Role filter on Branches: keep rows where Country is "India". Write it as a calculated column that gives TRUE or FALSE.
  2. RLS: two cities Medium Role filter on Branches: keep rows where City is "Mumbai" or "London". Write it as a TRUE or FALSE column.
  3. RLS on Product Medium Role filter on Loans: keep rows where Product is "Home". Write it as a TRUE or FALSE column.
  4. RLS: everyone except one country Hard Role filter on Branches: keep rows where Country is not "India". TRUE or FALSE column.
  5. RLS: two tests Hard Role filter on Loans: keep rows where Product is "Home" and DaysOverdue is more than 90. TRUE or FALSE column.
  6. What the India role sees Medium The India role is on. Measure: Total Loans = SUM of Amount. (Here the role works like a slicer on Country.)
  7. Total Loans Easy Measure: Amount Sum = SUM of Amount.
  8. Recovery Rate Medium Shown per Branches Name. Measure: Recovery Rate = SUM of Repaid ÷ SUM of Amount.
  9. Amount for Home only Medium Shown per City. Measure: Amount Home = SUM of Amount where Product is "Home".
  10. Rows per Branche Easy Shown per Branches Name. Measure: Row Count = number of Loans rows.

Practice: 27.5 DAX Best Practices 10 tasks

  1. Total Parcels Easy Measure: Parcels Sum = SUM of Parcels.
  2. On-Time Rate Medium Shown per Hubs Name. Measure: On-Time Rate = SUM of OnTime ÷ SUM of Parcels.
  3. On-Time Rate for Air Hard Shown per Country. Measure: On-Time Rate Air = On-Time Rate where Mode is "Air".
  4. On-Time Rate against target Hard Shown per Hubs Name. Measure: On-Time Rate Status = "On target" when On-Time Rate is >= 0.9, else "Check".
  5. Parcels for Air only Medium Shown per City. Measure: Parcels Air = SUM of Parcels where Mode is "Air".
  6. Rows with high damaged parcels Medium Shown per Country. Measure: High Damaged Rows = number of rows where Damaged is more than 15.
  7. Average Parcels per row Medium Shown per Hubs Name. Measure: Parcels per Row = SUM of Parcels ÷ number of rows.
  8. Share of Parcels Medium Shown per Hubs Name. Measure: Parcels Share = SUM of Parcels ÷ SUM of Parcels for all of Hubs.
  9. Parcels minus OnTime Hard Shown per Mode. Measure: Gap = SUMX over Shipments of Parcels − OnTime.
  10. Parcels in the first half-year Medium Shown per Country. Measure: H1 Parcels = SUM of Parcels for ShipDate before 1 Oct 2025.

Practice: 28.5 Step 4: Create the Measures 11 tasks

  1. Total Qty Easy Measure: Qty Sum = SUM of Qty.
  2. Rows per Store Easy Shown per Store StoreName. Measure: Row Count = number of Orders rows.
  3. Average delivery minutes per country Easy Shown per State. Measure: Avg DeliveryMins = AVERAGE of DeliveryMins.
  4. Highest delivery minutes per Platform Easy Shown per Platform. Measure: Max DeliveryMins = MAX of DeliveryMins.
  5. Qty for Blinkit only Medium Shown per City. Measure: Qty Blinkit = SUM of Qty where Platform is "Blinkit".
  6. Share of Qty Medium Shown per Store StoreName. Measure: Qty Share = SUM of Qty ÷ SUM of Qty for all of Store.
  7. How many store per Platform Medium Shown per Platform. Measure: Store Count = distinct count of ProductID in Orders.
  8. Rows with high delivery minutes Medium Shown per State. Measure: High DeliveryMins Rows = number of rows where DeliveryMins is more than 15.
  9. Average Qty per row Medium Shown per Store StoreName. Measure: Qty per Row = SUM of Qty ÷ number of rows.
  10. Rank by Qty Hard Shown per Store StoreName. Measure: Qty Rank = rank of [Total Qty] among all Store StoreName values.
  11. Top 3 only Hard Shown per Store StoreName. Measure: Top 3 Qty = [Total Qty] when the rank is 3 or better, else blank.

Practice: 29.7 Module 13: DAX Practice 11 tasks

  1. Total Premium Easy Measure: Premium Sum = SUM of Premium.
  2. Rows per Agent Easy Shown per Agents Name. Measure: Row Count = number of Policies rows.
  3. Total ClaimPaid per Line Easy Shown per Line. Measure: Total ClaimPaid = SUM of ClaimPaid.
  4. Loss Ratio Medium Shown per Agents Name. Measure: Loss Ratio = SUM of ClaimPaid ÷ SUM of Premium.
  5. Premium for Health only Medium Shown per City. Measure: Premium Health = SUM of Premium where Line is "Health".
  6. Loss Ratio against target Hard Shown per Agents Name. Measure: Loss Ratio Status = "On target" when Loss Ratio is <= 0.6, else "Check".
  7. Loss Ratio for Health Hard Shown per Country. Measure: Loss Ratio Health = Loss Ratio where Line is "Health".
  8. Share of Premium Medium Shown per Agents Name. Measure: Premium Share = SUM of Premium ÷ SUM of Premium for all of Agents.
  9. Premium minus ClaimPaid Hard Shown per Line. Measure: Gap = SUMX over Policies of Premium − ClaimPaid.
  10. Rank by Premium Hard Shown per Agents Name. Measure: Premium Rank = rank of [Total Premium] among all Agents Name values.
  11. claims band Medium Calculated column on Policies: Claims Band = "High" when Claims is more than 1, else "Normal".

Practice: 30.4 DAX Interview Practice 10 tasks

  1. Total List Price Easy Measure: ListPrice Sum = SUM of ListPrice.
  2. Average days on market per country Easy Shown per Country. Measure: Avg DaysOnMarket = AVERAGE of DaysOnMarket.
  3. Price Realisation Medium Shown per Projects Name. Measure: Price Realisation = SUM of SoldPrice ÷ SUM of ListPrice.
  4. ListPrice for 2BHK only Medium Shown per City. Measure: ListPrice 2BHK = SUM of ListPrice where Type is "2BHK".
  5. Share of ListPrice Medium Shown per Projects Name. Measure: ListPrice Share = SUM of ListPrice ÷ SUM of ListPrice for all of Projects.
  6. How many projects per Type Medium Shown per Type. Measure: Projects Count = distinct count of ProjID in Units.
  7. ListPrice minus SoldPrice Hard Shown per Type. Measure: Gap = SUMX over Units of ListPrice − SoldPrice.
  8. Rank by ListPrice Hard Shown per Projects Name. Measure: ListPrice Rank = rank of [Total List Price] among all Projects Name values.
  9. ListPrice of the top 2 Hard Measure: Top 2 ListPrice = [Total List Price] for the 2 best Projects names.
  10. ListPrice in the first half-year Medium Shown per Country. Measure: H1 ListPrice = SUM of ListPrice for ListDate before 1 Oct 2025.

Practice: 32.2 DAX Quick Reference 10 tasks

  1. Total Max Marks Easy Measure: MaxMarks Sum = SUM of MaxMarks.
  2. Rows per School Easy Shown per Schools Name. Measure: Row Count = number of Results rows.
  3. Average days absent per country Easy Shown per Country. Measure: Avg DaysAbsent = AVERAGE of DaysAbsent.
  4. Highest days absent per Subject Easy Shown per Subject. Measure: Max DaysAbsent = MAX of DaysAbsent.
  5. How many schools per Subject Medium Shown per Subject. Measure: Schools Count = distinct count of SchoolID in Results.
  6. Score Rate Medium Shown per Schools Name. Measure: Score Rate = SUM of Marks ÷ SUM of MaxMarks.
  7. MaxMarks for Maths only Medium Shown per City. Measure: MaxMarks Maths = SUM of MaxMarks where Subject is "Maths".
  8. Share of MaxMarks Medium Shown per Schools Name. Measure: MaxMarks Share = SUM of MaxMarks ÷ SUM of MaxMarks for all of Schools.
  9. Score Rate against target Hard Shown per Schools Name. Measure: Score Rate Status = "On target" when Score Rate is >= 0.65, else "Check".
  10. Rank by MaxMarks Hard Shown per Schools Name. Measure: MaxMarks Rank = rank of [Total Max Marks] among all Schools Name values.

Practice: 32.3 Common Measure Patterns 10 tasks

  1. Sell Through Medium Shown per Warehouses Name. Measure: Sell Through = SUM of UnitsOut ÷ SUM of UnitsIn.
  2. Share of UnitsIn Medium Shown per Warehouses Name. Measure: UnitsIn Share = SUM of UnitsIn ÷ SUM of UnitsIn for all of Warehouses.
  3. UnitsIn for Electronics only Medium Shown per City. Measure: UnitsIn Electronics = SUM of UnitsIn where ItemGroup is "Electronics".
  4. Sell Through against target Hard Shown per Warehouses Name. Measure: Sell Through Status = "On target" when Sell Through is >= 0.8, else "Check".
  5. Top 3 only Hard Shown per Warehouses Name. Measure: Top 3 UnitsIn = [Units Received] when the rank is 3 or better, else blank.
  6. UnitsIn of the top 2 Hard Measure: Top 2 UnitsIn = [Units Received] for the 2 best Warehouses names.
  7. UnitsIn in the first half-year Medium Shown per Country. Measure: H1 UnitsIn = SUM of UnitsIn for CountDate before 1 Oct 2025.
  8. Average UnitsIn per row Medium Shown per Warehouses Name. Measure: UnitsIn per Row = SUM of UnitsIn ÷ number of rows.
  9. Rows with high stock-out days Medium Shown per Country. Measure: High StockoutDays Rows = number of rows where StockoutDays is more than 5.
  10. Sell Through for Electronics Hard Shown per Country. Measure: Sell Through Electronics = Sell Through where ItemGroup is "Electronics".

Practice: 36.2 Retail and Quick Commerce 10 tasks

  1. Total Store Sales Easy Measure: Sales Sum = SUM of Sales.
  2. Margin % Medium Shown per Stores Name. Measure: Margin % = SUM of GrossMargin ÷ SUM of Sales.
  3. Margin % against target Hard Shown per Stores Name. Measure: Margin % Status = "On target" when Margin % is >= 0.22, else "Check".
  4. Margin % for Fresh Hard Shown per Country. Measure: Margin % Fresh = Margin % where Dept is "Fresh".
  5. Sales for Fresh only Medium Shown per City. Measure: Sales Fresh = SUM of Sales where Dept is "Fresh".
  6. Share of Sales Medium Shown per Stores Name. Measure: Sales Share = SUM of Sales ÷ SUM of Sales for all of Stores.
  7. Average Sales per row Medium Shown per Stores Name. Measure: Sales per Row = SUM of Sales ÷ number of rows.
  8. Rows with high footfall Medium Shown per Country. Measure: High Footfall Rows = number of rows where Footfall is more than 1000.
  9. Average footfall per country Easy Shown per Country. Measure: Avg Footfall = AVERAGE of Footfall.
  10. Rank by Sales Hard Shown per Stores Name. Measure: Sales Rank = rank of [Total Store Sales] among all Stores Name values.

Practice: 36.3 E-commerce 10 tasks

  1. Total Order Value Easy Measure: OrderValue Sum = SUM of OrderValue.
  2. Refund Rate Medium Shown per Sellers Name. Measure: Refund Rate = SUM of Refund ÷ SUM of OrderValue.
  3. Refund Rate against target Hard Shown per Sellers Name. Measure: Refund Rate Status = "On target" when Refund Rate is <= 0.15, else "Check".
  4. Refund Rate for Electronics Hard Shown per Country. Measure: Refund Rate Electronics = Refund Rate where Category is "Electronics".
  5. OrderValue for Electronics only Medium Shown per City. Measure: OrderValue Electronics = SUM of OrderValue where Category is "Electronics".
  6. Share of OrderValue Medium Shown per Sellers Name. Measure: OrderValue Share = SUM of OrderValue ÷ SUM of OrderValue for all of Sellers.
  7. Average OrderValue per row Medium Shown per Sellers Name. Measure: OrderValue per Row = SUM of OrderValue ÷ number of rows.
  8. Rows with high delivery days Medium Shown per Country. Measure: High DeliveryDays Rows = number of rows where DeliveryDays is more than 6.
  9. Average delivery days per country Easy Shown per Country. Measure: Avg DeliveryDays = AVERAGE of DeliveryDays.
  10. Rank by OrderValue Hard Shown per Sellers Name. Measure: OrderValue Rank = rank of [Total Order Value] among all Sellers Name values.

Practice: 36.4 Sales 10 tasks

  1. Total Pipeline Easy Measure: PipelineValue Sum = SUM of PipelineValue.
  2. Rows per SalesRep Easy Shown per SalesReps Name. Measure: Row Count = number of Deals rows.
  3. Discount Rate Medium Shown per SalesReps Name. Measure: Discount Rate = SUM of Discount ÷ SUM of PipelineValue.
  4. Discount Rate against target Hard Shown per SalesReps Name. Measure: Discount Rate Status = "On target" when Discount Rate is <= 0.1, else "Check".
  5. PipelineValue for Won only Medium Shown per City. Measure: PipelineValue Won = SUM of PipelineValue where Stage is "Won".
  6. Share of PipelineValue Medium Shown per SalesReps Name. Measure: PipelineValue Share = SUM of PipelineValue ÷ SUM of PipelineValue for all of SalesReps.
  7. PipelineValue minus Discount Hard Shown per Stage. Measure: Gap = SUMX over Deals of PipelineValue − Discount.
  8. PipelineValue in the first half-year Medium Shown per Country. Measure: H1 PipelineValue = SUM of PipelineValue for CloseDate before 1 Oct 2025.
  9. Highest sales cycle days per Stage Easy Shown per Stage. Measure: Max SalesCycleDays = MAX of SalesCycleDays.
  10. PipelineValue of the top 2 Hard Measure: Top 2 PipelineValue = [Total Pipeline] for the 2 best SalesReps names.

Practice: 36.5 Finance and Accounting 10 tasks

  1. Total Revenue Easy Measure: Revenue Sum = SUM of Revenue.
  2. Rows per Unit Easy Shown per Units Name. Measure: Row Count = number of Ledger rows.
  3. Cost Ratio Medium Shown per Units Name. Measure: Cost Ratio = SUM of Cost ÷ SUM of Revenue.
  4. Cost Ratio against target Hard Shown per Units Name. Measure: Cost Ratio Status = "On target" when Cost Ratio is <= 0.75, else "Check".
  5. Revenue for Service only Medium Shown per City. Measure: Revenue Service = SUM of Revenue where Segment is "Service".
  6. Share of Revenue Medium Shown per Units Name. Measure: Revenue Share = SUM of Revenue ÷ SUM of Revenue for all of Units.
  7. Revenue minus Cost Hard Shown per Segment. Measure: Gap = SUMX over Ledger of Revenue − Cost.
  8. Revenue in the first half-year Medium Shown per Country. Measure: H1 Revenue = SUM of Revenue for MonthDate before 1 Oct 2025.
  9. Highest receivables per Segment Easy Shown per Segment. Measure: Max Receivables = MAX of Receivables.
  10. Revenue of the top 2 Hard Measure: Top 2 Revenue = [Total Revenue] for the 2 best Units names.

Practice: 36.6 Banking 10 tasks

  1. Total Loans Easy Measure: Amount Sum = SUM of Amount.
  2. Recovery Rate Medium Shown per Branches Name. Measure: Recovery Rate = SUM of Repaid ÷ SUM of Amount.
  3. Recovery Rate against target Hard Shown per Branches Name. Measure: Recovery Rate Status = "On target" when Recovery Rate is >= 0.5, else "Check".
  4. Recovery Rate for Home Hard Shown per Country. Measure: Recovery Rate Home = Recovery Rate where Product is "Home".
  5. Amount for Home only Medium Shown per City. Measure: Amount Home = SUM of Amount where Product is "Home".
  6. Share of Amount Medium Shown per Branches Name. Measure: Amount Share = SUM of Amount ÷ SUM of Amount for all of Branches.
  7. Average Amount per row Medium Shown per Branches Name. Measure: Amount per Row = SUM of Amount ÷ number of rows.
  8. Rows with high days overdue Medium Shown per Country. Measure: High DaysOverdue Rows = number of rows where DaysOverdue is more than 90.
  9. Average days overdue per country Easy Shown per Country. Measure: Avg DaysOverdue = AVERAGE of DaysOverdue.
  10. Rank by Amount Hard Shown per Branches Name. Measure: Amount Rank = rank of [Total Loans] among all Branches Name values.

Practice: 36.7 Insurance 10 tasks

  1. Total Premium Easy Measure: Premium Sum = SUM of Premium.
  2. Loss Ratio Medium Shown per Agents Name. Measure: Loss Ratio = SUM of ClaimPaid ÷ SUM of Premium.
  3. Loss Ratio against target Hard Shown per Agents Name. Measure: Loss Ratio Status = "On target" when Loss Ratio is <= 0.6, else "Check".
  4. Loss Ratio for Health Hard Shown per Country. Measure: Loss Ratio Health = Loss Ratio where Line is "Health".
  5. Premium for Health only Medium Shown per City. Measure: Premium Health = SUM of Premium where Line is "Health".
  6. Share of Premium Medium Shown per Agents Name. Measure: Premium Share = SUM of Premium ÷ SUM of Premium for all of Agents.
  7. Average Premium per row Medium Shown per Agents Name. Measure: Premium per Row = SUM of Premium ÷ number of rows.
  8. Rows with high claims Medium Shown per Country. Measure: High Claims Rows = number of rows where Claims is more than 1.
  9. Average claims per country Easy Shown per Country. Measure: Avg Claims = AVERAGE of Claims.
  10. Rank by Premium Hard Shown per Agents Name. Measure: Premium Rank = rank of [Total Premium] among all Agents Name values.

Practice: 36.8 Healthcare 10 tasks

  1. Total Patients Easy Measure: Patients Sum = SUM of Patients.
  2. Readmission Rate Medium Shown per Clinics Name. Measure: Readmission Rate = SUM of Readmits ÷ SUM of Patients.
  3. Readmission Rate against target Hard Shown per Clinics Name. Measure: Readmission Rate Status = "On target" when Readmission Rate is <= 0.04, else "Check".
  4. Readmission Rate for OPD Hard Shown per Country. Measure: Readmission Rate OPD = Readmission Rate where Service is "OPD".
  5. Patients for OPD only Medium Shown per City. Measure: Patients OPD = SUM of Patients where Service is "OPD".
  6. Share of Patients Medium Shown per Clinics Name. Measure: Patients Share = SUM of Patients ÷ SUM of Patients for all of Clinics.
  7. Average Patients per row Medium Shown per Clinics Name. Measure: Patients per Row = SUM of Patients ÷ number of rows.
  8. Rows with high wait minutes Medium Shown per Country. Measure: High WaitMins Rows = number of rows where WaitMins is more than 40.
  9. Average wait minutes per country Easy Shown per Country. Measure: Avg WaitMins = AVERAGE of WaitMins.
  10. Rank by Patients Hard Shown per Clinics Name. Measure: Patients Rank = rank of [Total Patients] among all Clinics Name values.

Practice: 36.9 Pharma 10 tasks

  1. Total Units Easy Measure: Units Sum = SUM of Units.
  2. Rows per Rep Easy Shown per Reps Name. Measure: Row Count = number of RxSales rows.
  3. Return Rate Medium Shown per Reps Name. Measure: Return Rate = SUM of Returned ÷ SUM of Units.
  4. Return Rate against target Hard Shown per Reps Name. Measure: Return Rate Status = "On target" when Return Rate is <= 0.03, else "Check".
  5. Units for Diabetes only Medium Shown per City. Measure: Units Diabetes = SUM of Units where Therapy is "Diabetes".
  6. Share of Units Medium Shown per Reps Name. Measure: Units Share = SUM of Units ÷ SUM of Units for all of Reps.
  7. Units minus Returned Hard Shown per Therapy. Measure: Gap = SUMX over RxSales of Units − Returned.
  8. Units in the first half-year Medium Shown per Country. Measure: H1 Units = SUM of Units for SaleDate before 1 Oct 2025.
  9. Highest samples per Therapy Easy Shown per Therapy. Measure: Max Samples = MAX of Samples.
  10. Units of the top 2 Hard Measure: Top 2 Units = [Total Units] for the 2 best Reps names.

Practice: 36.10 Manufacturing 10 tasks

  1. Units Made Easy Measure: UnitsMade Sum = SUM of UnitsMade.
  2. Reject Rate Medium Shown per Plants Plant. Measure: Reject Rate = SUM of UnitsRejected ÷ SUM of UnitsMade.
  3. Reject Rate against target Hard Shown per Plants Plant. Measure: Reject Rate Status = "On target" when Reject Rate is <= 0.02, else "Check".
  4. Reject Rate for Piston Hard Shown per Country. Measure: Reject Rate Piston = Reject Rate where Part is "Piston".
  5. UnitsMade for Piston only Medium Shown per City. Measure: UnitsMade Piston = SUM of UnitsMade where Part is "Piston".
  6. Share of UnitsMade Medium Shown per Plants Plant. Measure: UnitsMade Share = SUM of UnitsMade ÷ SUM of UnitsMade for all of Plants.
  7. Average UnitsMade per row Medium Shown per Plants Plant. Measure: UnitsMade per Row = SUM of UnitsMade ÷ number of rows.
  8. Rows with high cost per unit Medium Shown per Country. Measure: High CostPerUnit Rows = number of rows where CostPerUnit is more than 30.
  9. Average cost per unit per country Easy Shown per Country. Measure: Avg CostPerUnit = AVERAGE of CostPerUnit.
  10. Rank by UnitsMade Hard Shown per Plants Plant. Measure: UnitsMade Rank = rank of [Units Made] among all Plants Plant values.

Practice: 36.11 Inventory and Supply Chain 10 tasks

  1. Units Received Easy Measure: UnitsIn Sum = SUM of UnitsIn.
  2. Sell Through Medium Shown per Warehouses Name. Measure: Sell Through = SUM of UnitsOut ÷ SUM of UnitsIn.
  3. Sell Through against target Hard Shown per Warehouses Name. Measure: Sell Through Status = "On target" when Sell Through is >= 0.8, else "Check".
  4. Sell Through for Electronics Hard Shown per Country. Measure: Sell Through Electronics = Sell Through where ItemGroup is "Electronics".
  5. UnitsIn for Electronics only Medium Shown per City. Measure: UnitsIn Electronics = SUM of UnitsIn where ItemGroup is "Electronics".
  6. Share of UnitsIn Medium Shown per Warehouses Name. Measure: UnitsIn Share = SUM of UnitsIn ÷ SUM of UnitsIn for all of Warehouses.
  7. Average UnitsIn per row Medium Shown per Warehouses Name. Measure: UnitsIn per Row = SUM of UnitsIn ÷ number of rows.
  8. Rows with high stock-out days Medium Shown per Country. Measure: High StockoutDays Rows = number of rows where StockoutDays is more than 5.
  9. Average stock-out days per country Easy Shown per Country. Measure: Avg StockoutDays = AVERAGE of StockoutDays.
  10. Rank by UnitsIn Hard Shown per Warehouses Name. Measure: UnitsIn Rank = rank of [Units Received] among all Warehouses Name values.

Practice: 36.12 Logistics 10 tasks

  1. Total Parcels Easy Measure: Parcels Sum = SUM of Parcels.
  2. Rows per Hub Easy Shown per Hubs Name. Measure: Row Count = number of Shipments rows.
  3. On-Time Rate Medium Shown per Hubs Name. Measure: On-Time Rate = SUM of OnTime ÷ SUM of Parcels.
  4. On-Time Rate against target Hard Shown per Hubs Name. Measure: On-Time Rate Status = "On target" when On-Time Rate is >= 0.9, else "Check".
  5. Parcels for Air only Medium Shown per City. Measure: Parcels Air = SUM of Parcels where Mode is "Air".
  6. Share of Parcels Medium Shown per Hubs Name. Measure: Parcels Share = SUM of Parcels ÷ SUM of Parcels for all of Hubs.
  7. Parcels minus OnTime Hard Shown per Mode. Measure: Gap = SUMX over Shipments of Parcels − OnTime.
  8. Parcels in the first half-year Medium Shown per Country. Measure: H1 Parcels = SUM of Parcels for ShipDate before 1 Oct 2025.
  9. Highest damaged parcels per Mode Easy Shown per Mode. Measure: Max Damaged = MAX of Damaged.
  10. Parcels of the top 2 Hard Measure: Top 2 Parcels = [Total Parcels] for the 2 best Hubs names.

Practice: 36.13 HR 10 tasks

  1. Total Salary Easy Measure: Salary Sum = SUM of Salary.
  2. Bonus Rate Medium Shown per Depts Name. Measure: Bonus Rate = SUM of Bonus ÷ SUM of Salary.
  3. Bonus Rate against target Hard Shown per Depts Name. Measure: Bonus Rate Status = "On target" when Bonus Rate is >= 0.1, else "Check".
  4. Bonus Rate for Left Hard Shown per Country. Measure: Bonus Rate Left = Bonus Rate where Status is "Left".
  5. Salary for Left only Medium Shown per City. Measure: Salary Left = SUM of Salary where Status is "Left".
  6. Share of Salary Medium Shown per Depts Name. Measure: Salary Share = SUM of Salary ÷ SUM of Salary for all of Depts.
  7. Average Salary per row Medium Shown per Depts Name. Measure: Salary per Row = SUM of Salary ÷ number of rows.
  8. Rows with high training hours Medium Shown per Country. Measure: High TrainingHrs Rows = number of rows where TrainingHrs is more than 40.
  9. Average training hours per country Easy Shown per Country. Measure: Avg TrainingHrs = AVERAGE of TrainingHrs.
  10. Rank by Salary Hard Shown per Depts Name. Measure: Salary Rank = rank of [Total Salary] among all Depts Name values.

Practice: 36.14 Marketing and Digital Ads 10 tasks

  1. Total Clicks Easy Measure: Clicks Sum = SUM of Clicks.
  2. Rows per Campaign Easy Shown per Campaigns Name. Measure: Row Count = number of AdStats rows.
  3. Conversion Rate Medium Shown per Campaigns Name. Measure: Conversion Rate = SUM of Conversions ÷ SUM of Clicks.
  4. Conversion Rate against target Hard Shown per Campaigns Name. Measure: Conversion Rate Status = "On target" when Conversion Rate is >= 0.06, else "Check".
  5. Clicks for Search only Medium Shown per City. Measure: Clicks Search = SUM of Clicks where Channel is "Search".
  6. Share of Clicks Medium Shown per Campaigns Name. Measure: Clicks Share = SUM of Clicks ÷ SUM of Clicks for all of Campaigns.
  7. Clicks minus Conversions Hard Shown per Channel. Measure: Gap = SUMX over AdStats of Clicks − Conversions.
  8. Clicks in the first half-year Medium Shown per Country. Measure: H1 Clicks = SUM of Clicks for AdDate before 1 Oct 2025.
  9. Highest spend per Channel Easy Shown per Channel. Measure: Max Spend = MAX of Spend.
  10. Clicks of the top 2 Hard Measure: Top 2 Clicks = [Total Clicks] for the 2 best Campaigns names.

Practice: 36.15 Education 10 tasks

  1. Total Max Marks Easy Measure: MaxMarks Sum = SUM of MaxMarks.
  2. Rows per School Easy Shown per Schools Name. Measure: Row Count = number of Results rows.
  3. Score Rate Medium Shown per Schools Name. Measure: Score Rate = SUM of Marks ÷ SUM of MaxMarks.
  4. Score Rate against target Hard Shown per Schools Name. Measure: Score Rate Status = "On target" when Score Rate is >= 0.65, else "Check".
  5. MaxMarks for Maths only Medium Shown per City. Measure: MaxMarks Maths = SUM of MaxMarks where Subject is "Maths".
  6. Share of MaxMarks Medium Shown per Schools Name. Measure: MaxMarks Share = SUM of MaxMarks ÷ SUM of MaxMarks for all of Schools.
  7. MaxMarks minus Marks Hard Shown per Subject. Measure: Gap = SUMX over Results of MaxMarks − Marks.
  8. MaxMarks in the first half-year Medium Shown per Country. Measure: H1 MaxMarks = SUM of MaxMarks for ExamDate before 1 Oct 2025.
  9. Highest days absent per Subject Easy Shown per Subject. Measure: Max DaysAbsent = MAX of DaysAbsent.
  10. MaxMarks of the top 2 Hard Measure: Top 2 MaxMarks = [Total Max Marks] for the 2 best Schools names.

Practice: 36.16 Hospitality 10 tasks

  1. Room Revenue Easy Measure: RoomRevenue Sum = SUM of RoomRevenue.
  2. Discount Rate Medium Shown per Hotels Name. Measure: Discount Rate = SUM of Discount ÷ SUM of RoomRevenue.
  3. Discount Rate against target Hard Shown per Hotels Name. Measure: Discount Rate Status = "On target" when Discount Rate is <= 0.12, else "Check".
  4. Discount Rate for Suite Hard Shown per Country. Measure: Discount Rate Suite = Discount Rate where RoomType is "Suite".
  5. RoomRevenue for Suite only Medium Shown per City. Measure: RoomRevenue Suite = SUM of RoomRevenue where RoomType is "Suite".
  6. Share of RoomRevenue Medium Shown per Hotels Name. Measure: RoomRevenue Share = SUM of RoomRevenue ÷ SUM of RoomRevenue for all of Hotels.
  7. Average RoomRevenue per row Medium Shown per Hotels Name. Measure: RoomRevenue per Row = SUM of RoomRevenue ÷ number of rows.
  8. Rows with high nights Medium Shown per Country. Measure: High Nights Rows = number of rows where Nights is more than 4.
  9. Average nights per country Easy Shown per Country. Measure: Avg Nights = AVERAGE of Nights.
  10. Rank by RoomRevenue Hard Shown per Hotels Name. Measure: RoomRevenue Rank = rank of [Room Revenue] among all Hotels Name values.

Practice: 36.17 Real Estate 10 tasks

  1. Total List Price Easy Measure: ListPrice Sum = SUM of ListPrice.
  2. Price Realisation Medium Shown per Projects Name. Measure: Price Realisation = SUM of SoldPrice ÷ SUM of ListPrice.
  3. Price Realisation against target Hard Shown per Projects Name. Measure: Price Realisation Status = "On target" when Price Realisation is >= 0.95, else "Check".
  4. Price Realisation for 2BHK Hard Shown per Country. Measure: Price Realisation 2BHK = Price Realisation where Type is "2BHK".
  5. ListPrice for 2BHK only Medium Shown per City. Measure: ListPrice 2BHK = SUM of ListPrice where Type is "2BHK".
  6. Share of ListPrice Medium Shown per Projects Name. Measure: ListPrice Share = SUM of ListPrice ÷ SUM of ListPrice for all of Projects.
  7. Average ListPrice per row Medium Shown per Projects Name. Measure: ListPrice per Row = SUM of ListPrice ÷ number of rows.
  8. Rows with high days on market Medium Shown per Country. Measure: High DaysOnMarket Rows = number of rows where DaysOnMarket is more than 120.
  9. Average days on market per country Easy Shown per Country. Measure: Avg DaysOnMarket = AVERAGE of DaysOnMarket.
  10. Rank by ListPrice Hard Shown per Projects Name. Measure: ListPrice Rank = rank of [Total List Price] among all Projects Name values.

Practice: 36.18 Telecom 10 tasks

  1. Total Subscribers Easy Measure: Subscribers Sum = SUM of Subscribers.
  2. Churn Rate Medium Shown per Circles Name. Measure: Churn Rate = SUM of Churned ÷ SUM of Subscribers.
  3. Churn Rate against target Hard Shown per Circles Name. Measure: Churn Rate Status = "On target" when Churn Rate is <= 0.02, else "Check".
  4. Churn Rate for Prepaid Hard Shown per Country. Measure: Churn Rate Prepaid = Churn Rate where Plan is "Prepaid".
  5. Subscribers for Prepaid only Medium Shown per City. Measure: Subscribers Prepaid = SUM of Subscribers where Plan is "Prepaid".
  6. Share of Subscribers Medium Shown per Circles Name. Measure: Subscribers Share = SUM of Subscribers ÷ SUM of Subscribers for all of Circles.
  7. Average Subscribers per row Medium Shown per Circles Name. Measure: Subscribers per Row = SUM of Subscribers ÷ number of rows.
  8. Rows with high revenue Medium Shown per Country. Measure: High Revenue Rows = number of rows where Revenue is more than 20000000.
  9. Average revenue per country Easy Shown per Country. Measure: Avg Revenue = AVERAGE of Revenue.
  10. Rank by Subscribers Hard Shown per Circles Name. Measure: Subscribers Rank = rank of [Total Subscribers] among all Circles Name values.

Practice: 36.19 IT Services 10 tasks

  1. Total Billable Hours Easy Measure: BillableHrs Sum = SUM of BillableHrs.
  2. Bench Ratio Medium Shown per Clients Name. Measure: Bench Ratio = SUM of BenchHrs ÷ SUM of BillableHrs.
  3. Bench Ratio against target Hard Shown per Clients Name. Measure: Bench Ratio Status = "On target" when Bench Ratio is <= 0.12, else "Check".
  4. Bench Ratio for Fixed Hard Shown per Country. Measure: Bench Ratio Fixed = Bench Ratio where Model is "Fixed".
  5. BillableHrs for Fixed only Medium Shown per City. Measure: BillableHrs Fixed = SUM of BillableHrs where Model is "Fixed".
  6. Share of BillableHrs Medium Shown per Clients Name. Measure: BillableHrs Share = SUM of BillableHrs ÷ SUM of BillableHrs for all of Clients.
  7. Average BillableHrs per row Medium Shown per Clients Name. Measure: BillableHrs per Row = SUM of BillableHrs ÷ number of rows.
  8. Rows with high bugs Medium Shown per Country. Measure: High Bugs Rows = number of rows where Bugs is more than 25.
  9. Average bugs per country Easy Shown per Country. Measure: Avg Bugs = AVERAGE of Bugs.
  10. Rank by BillableHrs Hard Shown per Clients Name. Measure: BillableHrs Rank = rank of [Total Billable Hours] among all Clients Name values.

Practice: 36.20 Government and NGO 10 tasks

  1. Total Budget Easy Measure: Budget Sum = SUM of Budget.
  2. Utilisation Medium Shown per Districts Name. Measure: Utilisation = SUM of Spent ÷ SUM of Budget.
  3. Utilisation against target Hard Shown per Districts Name. Measure: Utilisation Status = "On target" when Utilisation is >= 0.7, else "Check".
  4. Utilisation for Water Hard Shown per Country. Measure: Utilisation Water = Utilisation where Scheme is "Water".
  5. Budget for Water only Medium Shown per City. Measure: Budget Water = SUM of Budget where Scheme is "Water".
  6. Share of Budget Medium Shown per Districts Name. Measure: Budget Share = SUM of Budget ÷ SUM of Budget for all of Districts.
  7. Average Budget per row Medium Shown per Districts Name. Measure: Budget per Row = SUM of Budget ÷ number of rows.
  8. Rows with high beneficiaries Medium Shown per Country. Measure: High Beneficiaries Rows = number of rows where Beneficiaries is more than 2000.
  9. Average beneficiaries per country Easy Shown per Country. Measure: Avg Beneficiaries = AVERAGE of Beneficiaries.
  10. Rank by Budget Hard Shown per Districts Name. Measure: Budget Rank = rank of [Total Budget] among all Districts Name values.

Practice: Sales & Revenue KPIs 12 tasks

  1. Gross Sales Easy Shown per Company. Measure: Gross Sales = Qty × Price, added up for all orders.
  2. Total Discount Easy Shown per Company. Measure: Total Discount = sum of the Discount column.
  3. Total Returns Easy Shown per Company. Measure: Total Returns = sum of the Returns column.
  4. Net Sales Medium Shown per Company. Measure: Net Sales = Qty × Price − Discount − Returns, for all orders.
  5. Total Revenue Medium Shown per Company. Measure: Total Revenue = Net Sales + DeliveryFee, for all orders.
  6. Order Count Easy Shown per Company. Measure: Orders = number of rows in Orders.
  7. Average Order Value (AOV) Medium Shown per Company. Measure: AOV = Net Sales ÷ number of orders.
  8. Unique Customers Easy Shown per Company. Measure: Customers = how many different CustomerID values.
  9. Sales per Customer Medium Shown per Company. Measure: Sales per Customer = Net Sales ÷ number of different customers.
  10. Return Rate % Medium Shown per Company. Measure: Return Rate % = Returns ÷ Gross Sales.
  11. Net Sales in H2 Medium Shown per Company. Measure: Net Sales H2 = Net Sales only for rows where Half is "H2".
  12. Sales Growth % (H2 vs H1) Hard Shown per Company. Measure: Sales Growth % = (Net Sales H2 − Net Sales H1) ÷ Net Sales H1.

← Power BI course home · DAX · Blinkit project · KPIs in all industries