Domain 2 β€” Module 3 of 7 43%
10 of 26 overall
Domain 2: Model the Data Free ⏱ ~12 min read

Columns vs Measures: When to Use Which

Understand the critical difference between calculated columns, calculated tables, and measures in Power BI β€” and know when each is the right choice for the exam.

The big decision: column or measure?

Simple explanation

Think of a restaurant menu.

A calculated column is like printing the price on the menu. It’s fixed β€” every customer sees the same price. The value is calculated once and stored.

A measure is like the bill. It changes depending on what each customer orders β€” the total is calculated at the moment you ask for it, based on the current context (what’s filtered, what’s selected).

Most of the time, you want measures. They’re more flexible, use less memory, and respond to filters. Calculated columns are for when you need a fixed value per row β€” like categorising products or creating keys.

Calculated columns vs measures

Default to measures. Use calculated columns only when you need row-level, stored values.
FeatureCalculated ColumnMeasure
When calculatedDuring data refresh β€” stored in modelAt query time β€” computed dynamically
ContextRow context β€” accesses current row valuesFilter context β€” responds to slicers, filters, visual groupings
Memory usageUses memory (stored per row)No memory (computed on demand)
Can be used inSlicers, filters, rows/columns of visuals, relationshipsValues area of visuals, filters, conditional formatting, tooltips, visual titles β€” but NOT in slicers or as axis groupings
Recalculates whenData refreshesUser interacts (filter, slicer, drill)
Best forRow-level categorisation, keys, fixed labelsAggregations, KPIs, dynamic totals

When to use a calculated column

Riley at Coastal Fresh (πŸ›’) needs a Profit Margin category for each product:

MarginCategory = 
IF(
    [ProfitMargin] > 0.3, "High Margin",
    IF([ProfitMargin] > 0.15, "Medium Margin", "Low Margin")
)

This is a calculated column because:

  • The category is fixed per product row
  • She wants to use it as a slicer (filter by β€œHigh Margin”)
  • It doesn’t need to change based on filter context

When to use a measure

Riley also needs total revenue that responds to filters:

Total Revenue = SUM(Sales[Revenue])

This is a measure because:

  • When she filters to β€œNorth Region”, it should show only North Region revenue
  • When she drills into Q1, it should show Q1 revenue
  • The value changes based on context
Exam tip: the golden rule

If you need it in a slicer or as a visual axis β†’ calculated column. If you need a dynamic aggregate that responds to filters β†’ measure.

Measures can also be used in visual-level filters, conditional formatting, tooltips, and titles β€” just not as slicer items or axis groupings. When in doubt, default to a measure.

Calculated tables

Calculated tables create new tables entirely from DAX expressions.

Common uses:

  • Date tables: Date = CALENDARAUTO() (covered in previous module)
  • Distinct value lists: Regions = DISTINCT(Stores[Region]) β€” useful for disconnected slicers
  • Summary tables: MonthlySummary = SUMMARIZE(Sales, 'Date'[Month], "Total", SUM(Sales[Revenue])) β€” useful for testing

Nadia at Prism Agency (πŸ“Š) creates a disconnected slicer table for metric selection:

MetricSelector = 
DATATABLE(
    "Metric", STRING,
    {
        {"Revenue"},
        {"Clicks"},
        {"Impressions"},
        {"Cost per Click"}
    }
)

This calculated table isn’t connected to any other table β€” it’s used purely as a slicer that drives conditional measure logic.

Quick measures

Quick measures are pre-built DAX templates that Power BI generates for you. They’re perfect when you know what you want but aren’t confident writing the DAX.

How to create: Right-click a table β†’ New quick measure β†’ choose a calculation type β†’ drag fields into the template.

Common quick measure categories:

  • Aggregate per category β€” average per category, sum within group
  • Filters β€” filtered value, difference from filtered value
  • Time intelligence β€” year-to-date, quarter-to-date, year-over-year change
  • Running totals β€” running total, rolling average
  • Mathematical β€” percentage of total, weighted average
Real-world: Kenji's quick measure

Kenji at Apex Manufacturing (🏭) needs a year-over-year production change percentage. Instead of writing complex DAX, he uses:

New Quick Measure β†’ Time Intelligence β†’ Year-over-year change

He drags Production into the base value and Date[Date] into the date field. Power BI generates the DAX automatically. He can then view and modify the generated code to learn the pattern.

Knowledge check

Question

What's the main difference between a calculated column and a measure?

Click or press Enter to reveal answer

Answer

A calculated column is evaluated during refresh and stored (row context). A measure is evaluated at query time dynamically (filter context). Measures respond to slicers and filters; columns are fixed per row.

Click to flip back

Question

When should you use a calculated column instead of a measure?

Click or press Enter to reveal answer

Answer

When you need the value for slicing/filtering, in relationships, or as row-level classification. If you just need a dynamic aggregate in a visual's Values area, use a measure.

Click to flip back

Question

What is a quick measure?

Click or press Enter to reveal answer

Answer

A pre-built DAX template generated by Power BI. You choose a calculation type (like year-over-year change), drag in fields, and Power BI writes the DAX for you.

Click to flip back

Knowledge Check

Riley wants to categorise each product as 'High Margin', 'Medium Margin', or 'Low Margin' and use this category as a slicer on her dashboard. Should she create a calculated column or a measure?

Knowledge Check

Which DAX calculation type uses the LEAST memory in the model?

Next up: DAX Fundamentals β€” write your first measures with SUM, AVERAGE, COUNT, and more.