By Fatskills Exam Guides Team — the exam nerds behind 28,500+ quizzes and 2.1M practice questions across 500+ global exams.
You’re building a Power BI report for a sales dashboard. Your manager wants: - A column showing "Profit per Product" (revenue minus cost).- A measure showing "Total Profit" (sum of all profits).- A visual that dynamically filters profit by region, time, and product category.
Here’s the problem:- If you use a calculated column for "Total Profit," your report will break when users filter data (it won’t recalculate).- If you use a measure for "Profit per Product," you’ll waste memory storing redundant data.- If you mix them up, your report will be slow, inaccurate, or both.
Why this matters in production:✅ Performance: Calculated columns bloat your data model (stored in memory). Measures compute on the fly (only when needed).✅ Accuracy: Measures respect filters (slicers, visuals, drill-downs). Calculated columns don’t.✅ Maintainability: Measures are reusable across reports. Calculated columns are tied to a single table.✅ Cost: In Power BI Premium or Fabric, inefficient models = higher compute costs.
Real-world scenario:You inherit a Power BI report where someone used calculated columns for everything. The report: - Takes 5 minutes to refresh (instead of 30 seconds).- Shows wrong totals when users apply filters.- Crashes when exporting to Excel.
Your job: Fix it by replacing the wrong calculations with the right ones.
Profit = [Revenue] - [Cost]
Total Profit = SUM(Sales[Profit])
You open a report where: - "Profit per Product" is a measure (but it should be a calculated column).- "Total Profit" is a calculated column (but it should be a measure).- The report is slow and wrong when filtered.
Total Profit
Profit per Product
dax Profit per Product = Sales[SalesAmount] - Sales[TotalProductCost]
dax Total Profit = SUM(Sales[Profit per Product])
Total Sales = SUMX(Sales, Sales[Quantity] * Sales[Price])
Line Total
Total Sales = SUM(Sales[Line Total])
VAR
dax Total Profit = VAR ProfitPerRow = Sales[SalesAmount] - Sales[TotalProductCost] RETURN SUMX(Sales, ProfitPerRow)
CALCULATE
dax Sales 2023 = CALCULATE(SUM(Sales[SalesAmount]), Sales[Year] = 2023)
Total
Total Sales
dax // Calculates YoY growth, handling blank previous years YoY Growth = VAR CurrentYearSales = SUM(Sales[SalesAmount]) VAR PreviousYearSales = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSYEAR('Date'[Date])) RETURN DIVIDE(CurrentYearSales - PreviousYearSales, PreviousYearSales, 0)
SUMMARIZECOLUMNS
SUMX
// Good (faster) Total Sales = SUM(Sales[LineTotal]) ```
Sales LY = CALCULATE(SUM(Sales[Amount]), PREVIOUSYEAR('Date'[Date]))
SUM
Total Customers = CALCULATE(DISTINCTCOUNT(Customers[ID]))
❌ Calculated column
"You need to add a column showing 'Profit per Product' in a table. What do you use?"
❌ Measure
"Why is a calculated column slower than a measure in Import Mode?"
❌ Measures are pre-computed (❌ wrong—measures compute on demand).
"You’re using DirectQuery. Which can you create?"
"You need to show 'Total Sales by Region' in a bar chart. Which should you use?"- ✅ Measure (Total Sales = SUM(Sales[Amount])) - ❌ Calculated column (won’t update with region filters).
Total Sales = SUM(Sales[Amount])
You have a Sales table with: - Quantity (number of items sold) - Unit Price (price per item)
Quantity
Unit Price
Task:1. Create a calculated column for Line Total (Quantity × Unit Price).2. Create a measure for Total Sales (sum of all Line Totals).3. Test in a table visual and a card visual—verify that filters work.
dax Line Total = Sales[Quantity] * Sales[Unit Price]
dax Total Sales = SUM(Sales[Line Total])
Product
Why it works:- Line Total is row-level (calculated column).- Total Sales is dynamic (measure respects filters).
New Column
New Measure
Join 4M+ learners. Unlock unlimited quizzes, wrong-answer tracking, flashcards + reminders, study guides, and 1-on-1 challenges.