TutorialsPower BIMeasures vs Calculated Columns

Measures vs Calculated Columns

When to use a DAX measure vs a calculated column — a decision that affects performance

One of the most common mistakes Power BI beginners make is using a calculated column when they should use a measure. This causes bloated models, slower reports, and sometimes wrong results. Understanding the difference is essential. Calculated Column: computed row-by-row when data loads. Result stored in the model. Takes up memory. Visible in tables and available for filtering/slicing. Measure: computed on the fly when a visual renders. Not stored. Uses virtually no memory. Not visible in tables. Responds to filter context. The rule: if you need to see the value in a table row-by-row, use a calculated column. For everything else — totals, ratios, comparisons, KPIs — use a measure.

Example

Measure vs Calculated Column — same formula, different results
CALCULATED COLUMN (row-by-row):
  In Sales table → Add Column → New Column
  Profit = Sales[Amount] - Sales[Cost]

  Result: a new "Profit" column in every row
  OrderID | Amount | Cost | Profit
  1001    | 45000  | 30000| 15000    ← row 1
  1002    | 18000  | 12000| 6000     ← row 2

  Use when: you need to filter/slice by this value
             you need it to appear in a row-level table

MEASURE (evaluated in context):
  Modeling → New Measure
  Total Profit = SUM(Sales[Amount]) - SUM(Sales[Cost])

  Result: ONE number that changes based on filters
  When Region = Delhi: Total Profit = ₹2,50,000
  When Region = Noida: Total Profit = ₹1,80,000

  Use when: you need an aggregated result
             you want it to respond to slicers and filters
💡 90% of what you calculate in Power BI should be measures, not calculated columns.

Key Points

  • Calculated columns increase model size — every row stores a computed value
  • Measures use almost no memory — computed on demand and discarded after rendering
  • Use calculated column for: profit margin per row, full name (first + last), category flag
  • Use measure for: total sales, YoY growth %, average order value, % of total
  • You cannot use a measure in a slicer — for slicers, you need a column or dimension table values

Practice Question

You want to calculate "Total Revenue" that updates when a user selects a region in a slicer. Should you use a measure or a calculated column?