Measures vs Calculated Columns in Power BI (When to Use Which)
A calculated column stores a DAX result on every row (usually at refresh). A measure calculates on demand using the filters from slicers and visuals. Use measures for totals. Use columns for row-level fields you need to slice or label.
Friends! This is the fork in the road where beginners lose marks in interviews. Both use DAX, both sit in the model, but they are not twins. Why? Timing and filter behaviour. How? We will write one column and one measure on a tiny Sales table. Samajla ka pattern? We will repeat it until it sticks.
मित्रांनो! This is the fork in the road where beginners lose marks in interviews. Both use DAX, both sit in the model, but they are not twins. Why? Timing and filter behaviour. How? We will write one column and one measure on a tiny Sales table. Samajla ka pattern? We will repeat it until it sticks.
मित्रों! This is the fork in the road where beginners lose marks in interviews. Both use DAX, both sit in the model, but they are not twins. Why? Timing and filter behaviour. How? We will write one column and one measure on a tiny Sales table. Samajla ka pattern? We will repeat it until it sticks.
Quick answer
Decision checklist (vertical):
- Need a grand total / ratio that reacts to slicers? → Measure.
- Need a value or label on each row (and maybe on a slicer)? → Calculated column.
- Example measure:
Total Sales = SUM ( Sales[Amount] ). - Example column:
TaxCol = Sales[Amount] * 0.18. - Test with a City slicer — the measure should follow the city.
- Default habit for KPIs: measures first.
Column → stored per row @ refresh (row context)
Measure → calculated @ query time (filter context)
What do I need before this guide?
- A
.pbixwith a Sales-like table (Excel/CSV guide). - Comfort clicking Report / Data / Model views.
- Course recap: Calculated columns vs measures.
Before and after (look at the tables first)
Before
आधी (Before)
पहले (Before)
After
नंतर (After)
बाद में (After)
A column stores TaxCol on every row (here 18%). A measure like [Total Sales] still sums Amount under filters — start with measures for KPIs.
Why the difference exists (and why you care)
Power BI must answer two different questions.
- Row question: “For this order line, what is tax?” → natural for a column.
- Visual question: “Given the slicers right now, what is total sales?” → natural for a measure.
Why you care:
- If you store every possible total as a column, the model gets fat.
- A fat “total column” still will not behave like a slicer-aware KPI.
- Interviews love one clean sentence: columns store row values; measures calculate under filters.
Tiny Sales table we will reuse:
| City | Amount |
|---|---|
| Mumbai | 100 |
| Pune | 40 |
A calculated column stores a value per row at refresh; a measure calculates on demand and respects filters.
एक calculated column stores a value per row at refresh; एक measure calculates on demand and respects filters.
मित्रों — A calculated column stores a value per row at refresh; a measure calculates on demand and respects filters.
Calculated column — what it is, why, how, what you see
What it is
A calculated column is a new column on a table. DAX fills a value for each row. Power BI usually stores those values when data refreshes.
Why use a calculated column
- You need a label or flag on every row (
High/Normal). - You need a field on a slicer, axis or row (measures cannot be slicer fields).
- You need tax or a category sitting beside Amount in Data view.
Why you do not use a column for every KPI
- Totals that must follow slicers belong in measures.
- Extra numeric columns eat memory on big tables.
How to create one (vertical steps)
- Select the Sales table in Data or Report view.
- Table tools → New column (wording varies slightly by version).
- In the formula bar type:
TaxCol = Sales[Amount] * 0.18
- Press Enter.
- Open Data view and look at the new column.
What Power BI does to the rows (tiny example)
- Row Mumbai Amount 100 → TaxCol = 100 × 0.18 = 18.
- Row Pune Amount 40 → TaxCol = 40 × 0.18 = 7.2.
- Those two values are stored on the rows.
What you see on screen
- Data view shows TaxCol filled for every row.
- You can put TaxCol on a table visual or even on a slicer later if needed.
Refresh fills calculated columns; when a reader clicks a slicer, measures recalculate for the new filter context.
Refresh भरते calculated columns; when a reader clicks a slicer, measures पुन्हा calculate होतात for the new filter context.
मित्रों — Refresh fills calculated columns; when a reader clicks a slicer, measures recalculate for the new filter context.
Measure — what it is, why, how, what you see
What it is
A measure is a formula that runs when a visual asks for a number. It respects filter context (the filters from slicers, the Filters pane and the visual itself).
Why use a measure
- Sums, averages and counts that must change when the reader picks Mumbai.
- Ratios like Total Sales / Orders.
- Almost every executive KPI card.
Why SUM (not a “total column”) for KPIs
Total Sales = SUM ( Sales[Amount] )re-adds only the rows that survive filters.- A column cannot “listen” the same way when used as a card KPI.
How to create one (vertical steps)
- Select the home table (Sales).
- Click New measure.
- Formula bar:
Total Sales = SUM ( Sales[Amount] )
- Fields pane shows an fx style measure icon.
- Drop it on a Card.
What Power BI does to the rows (tiny example)
- No slicer: rows Mumbai 100 + Pune 40 → measure returns 140.
- City slicer = Mumbai: only the Mumbai row remains → measure returns 100.
- City slicer = Pune: only Pune remains → measure returns 40.
What you see on screen
- Card shows 140, then 100 when Mumbai is selected.
- TaxCol still shows 18 and 7.2 on each row in Data view — that does not replace the measure.
Tiny Sales example: TaxCol sits on every row; the [Total Sales] measure aggregates Amount for the filtered rows only.
Tiny Sales उदाहरण: TaxCol sits on every row; the [Total Sales] measure aggregates Amount for the filtered rows only.
मित्रों — Tiny Sales example: TaxCol sits on every row; the [Total Sales] measure aggregates Amount for the filtered rows only.
Side-by-side comparison
| Topic | Calculated column | Measure |
|---|---|---|
| Timing | Often at refresh / data change | When visual queries |
| Context start | Row context (one row at a time) | Filter context (which rows are visible) |
| On a slicer? | Yes (as a field) | No (not as slicer field) |
| Memory | Stores values | Stores formula |
| Typical use | Flags, labels, row attributes | KPIs, totals, ratios |
| Example | Amount * 0.18 |
SUM ( Amount ) |
| Mumbai/Pune demo | TaxCol 18 and 7.2 | Total Sales 140 → 100 with Mumbai |
Common mistakes
- Creating a calculated column that is only
SUM ( Amount )thinking it is a KPI — that pattern fights you. - Building 20 numeric columns “just in case” instead of measures.
- Expecting a column to “listen” to slicers the way a measure does when used wrongly on cards.
- Writing measure syntax into a column without understanding row context (errors or wrong results).
Ghabru naka — fix by deleting the bad column and writing a measure.
Ravindra Bagale's Tip
Interview line that scores: "Columns store row values; measures calculate under filter context." Then give one example each. Students who only say "both are DAX" sound incomplete. Got it?
Ravindra Bagale's Tip – मराठी
Interview line जी scores करते: "Columns store row values; measures calculate under filter context." मग प्रत्येकी एक उदाहरण द्या. जे फक्त "दोन्ही DAX आहेत" म्हणतात ते incomplete वाटतात. समजलं का?
Ravindra Bagale's Tip – हिंदी
Interview line जो score करती है: "Columns store row values; measures calculate under filter context." फिर प्रत्येक का एक उदाहरण दो. जो सिर्फ "दोनों DAX हैं" कहते हैं वे incomplete लगते हैं. समझ में आया?
Practice task
On your Sales .pbix:
- Add
TaxCol = Amount * 0.18. - Add
[Total Sales]and[Total Tax] = SUM ( Sales[TaxCol] ). - Put both totals on cards; slice by City (Mumbai should show sales 100).
- Write three bullets: when you would keep TaxCol vs only a tax measure.
Learn it properly
Course lessons:
Related guides: What is DAX · SUM vs SUMX · CALCULATE & filter context
Worked “profit flag” example
// column — row label you might filter on
ProfitFlag =
IF ( Sales[Amount] >= 100, "High", "Normal" )
What happens to rows:
- Mumbai 100 → ProfitFlag = High.
- Pune 40 → ProfitFlag = Normal.
// measure — KPI
High Sales Amount =
CALCULATE (
SUM ( Sales[Amount] ),
Sales[ProfitFlag] = "High"
)
Why use CALCULATE here:
- You want Total Sales, but only for rows flagged High.
- CALCULATE temporarily adds that filter, then runs the sum.
- With both cities visible, High Sales Amount = 100 (only Mumbai).
Why both can coexist:
- The column classifies each row.
- The measure totals under that classification (and other slicers).
- Prefer measures for cards.
Storage intuition with numbers
- 1,000,000 sales rows × 5 calculated numeric columns ≈ lots of stored values.
- 20 measures ≈ 20 formulas.
- That is why “measure first for totals” is not ideology — it is hygiene.
Got it? Column = per row, stored. Measure = on demand, filter-aware. Prefer measures for KPIs. Next: Power Query vs DAX placement. Let’s continue.
समजलं का? Column = per row, stored. Measure = on demand, filter-aware. Prefer measures for KPIs. Next: Power Query vs DAX placement. आता पुढे जाऊया.
समझ में आया? Column = per row, stored. Measure = on demand, filter-aware. Prefer measures for KPIs. Next: Power Query vs DAX placement. आगे बढ़ते हैं.
Frequently asked questions
What is a calculated column?
A DAX column stored in the table, computed row by row (usually at refresh) and usable like any other field.
What is a measure?
A DAX formula that calculates when a visual asks for it, using the filter context from slicers, axes and filters.
Which uses more memory?
Columns store values for every row. Measures store the formula — often cheaper for aggregations.
Can I put a measure on a slicer?
Slicers need columns (or calculated columns / field parameters patterns). Measures go on values areas.
Tax per row: column or measure?
Per-row tax amount that you may filter on → column is natural. Company-wide tax total → measure.
Where is this in the course?
DAX chapter: calculated columns vs measures recap and evaluation context lessons.