All articles

DAX · Modeling

Measures vs calculated columns: which one, when

A simple rule for choosing between a measure and a calculated column, with the cases where the answer isn't obvious.

28 October 2026·2 min read·Sources listed at the end

ProductSalesProfitMarginAmarilla17,747,1162,814,10415.9%Carretera13,815,3081,826,80513.2%Montana15,390,8022,114,75513.7%Paseo33,011,1444,797,43814.5%Velo18,250,0592,305,99212.6%VTT20,511,9213,034,60814.8%Column: one value per row14.23%Profit MarginMeasure: one value per visual

Both are written in DAX and both show up in the Data pane, so beginners often pick one at random. They behave very differently.

The short rule

  • A calculated column is worked out once per row, when the data refreshes, and stored in the table.
  • A measure is worked out when a visual needs it, for whatever is filtered at that moment, and not stored.

If the number should change when someone clicks a slicer, it’s a measure.

Same idea, two results

Profit margin as a column:

Margin (column) = DIVIDE(financials[Profit], financials[Sales])

Profit margin as a measure:

Margin = DIVIDE(SUM(financials[Profit]), SUM(financials[Sales]))

Put both in a table by Country. The column has to be summarized (Power BI sums it by default), and adding up percentages gives nonsense: four rows at 30% “sum” to 120%. The measure divides total profit by total sales for each country, which is the real margin.

When a column is the right choice

Use a calculated column when you need a value per row to filter, group or slice by:

  • a price band (Low, Mid, High) to put on an axis
  • a product code built from text
  • a value looked up from another table with RELATED
Manufacturing Cost = financials[Units Sold] * RELATED(Products[Manufacturing Price])

Cost of getting it wrong

Calculated columns take memory on every row. On a 200-million-row fact table, a column used only in one card costs real memory and refresh time; a measure costs nothing until it’s used.

Microsoft’s guidance also suggests doing row-level preparation upstream where you can: in the source or in Power Query. A DAX calculated column is fine for small models and for logic that needs the model’s relationships.

Quick checklist

Question Answer
Should it react to slicers and filters? Measure
Will you put it on an axis, in a slicer or as a row label? Column
Is it a ratio or an average? Measure (never sum a ratio column)
Is it pure data cleaning? Power Query, if possible

Try it

The calculated columns lesson lets you build both and compare them in a practice copy of Power BI Desktop. Microsoft’s article on calculated columns covers the details.

Sources

Practice it

Calculated columns and RELATED

Add a column that is calculated row by row, and look up values in another table.

Open the lesson

Read next