When diving into Power BI, you’ll quickly come across something called DAX—short for Data Analysis Expressions. It’s not just another formula language—it’s the brain behind Power BI’s powerful analytics engine.
In this blog, we’ll break down:
- What DAX actually is
- The difference between DAX tables, columns, and measures
- Simple examples to make it all click
Let’s decode DAX together.
What is DAX in Power BI?
DAX (Data Analysis Expressions) is a formula language used in Power BI, Excel Power Pivot, and SQL Server Analysis Services (SSAS) to perform calculations and return values for data analysis.
Think of DAX like Excel formulas—but supercharged to work across massive datasets and interrelated tables.
Types of DAX Outputs
In Power BI, you typically use DAX to create:
- Calculated Tables
- Calculated Columns
- Measures
Let’s unpack each, understand how they differ, and see real-life use cases.
Calculated Tables
What It Is:
A calculated table is a brand-new table you generate using a DAX expression. It’s part of your model and behaves like any other table.
When to Use:
- When you want to summarize or reshape existing data
- When building relationships not easily done on existing tables
Example:
- Make sure you have at least one dataset already loaded example: SALES
- Click on the “New table” button under the Modeling tab.
- HighValueSales = FILTER(Sales, Sales[Amount] > 1000)
- This creates a new table with only those rows from the Sales table where the Amount is greater than 1000.
Calculated Columns
What It Is:
A calculated column adds a new column to an existing table, where each row is calculated independently based on row context.
When to Use:
- When you need a value per row (like status, category, or bucket)
- When slicers or filters require that column
Example:
- Before adding a calculated column, ensure you have a dataset loaded.
- Click on the “New Column” button under the Modeling tab.
- TotalSales = Sales[Quantity] * Sales[Price]
- This creates a new column called total sales in the Sales table.
Measures
What It Is:
A measure is a DAX formula that performs calculations on aggregated data. It only returns a single value based on filter context.
When to Use:
- When you need dynamic values (like total, average, or count) that change based on filters
- For KPIs, cards, charts, and matrix visuals
Example:
- Before you create a measure, ensure your dataset (e.g., Sales) is loaded into Power BI.
- Click on “New measure” from the Modeling tab.
- Total Sales = SUMX(Sales, Sales[Quantity] * Sales[Amount])
- This measure shows total revenue. It recalculates depending on your filters—such as region, product, or date.
Key Differences: Column vs Measure
Feature |
Calculated Column |
Measure |
Calculated per |
Each row |
Filter/context-dependent |
Stored in model? |
Yes |
No (calculated at runtime) |
Use case |
Enrich table fields |
Create KPIs and dynamic metrics |
Key Differences: Table vs Column vs Measure
Feature / Aspect |
Table |
Column |
Measure |
Definition |
A collection of rows and columns (like an Excel table). |
A single field (column) in a table. |
A calculation or formula used to return a single value. |
Created Using |
DATATABLE, UNION, FILTER, etc. |
ADDCOLUMNS, CALCULATED COLUMN, etc. |
SUM, CALCULATE, AVERAGE, IF, etc. |
Evaluation Context |
Static (unless using dynamic functions). |
Row-by-row context (evaluates per row). |
Evaluates in filter context (depends on visuals). |
Stored in Model? |
Yes |
Yes (adds to the data model). |
No (calculated on the fly). |
Best For |
Creating intermediate datasets or lookup/reference data. |
Adding new data fields to enrich the dataset. |
Creating KPIs, metrics, summaries, aggregations. |
Example Syntax |
HighValueSales = FILTER(Sales, Sales[Amount] > 1000) |
TotalSales = Sales[Quantity] * Sales[Price] |
Total Sales = SUMX(Sales, Sales[Quantity] * Sales[Amount]) |
Usage in Visuals |
Can be used in tables, slicers, etc. |
Used in visuals, filters, and slicers. |
Used in cards, KPIs, charts, and pivot tables. |
Performance Impact |
Can affect model size if large. |
Increases model size (stored). |
Lightweight (calculated at query time). |
Interactivity |
Static unless refreshed or dynamically filtered. |
Static per row unless related to other tables. |
Fully dynamic based on user interactions. |
Real-life Analogy
Think of your dataset as a warehouse:
- Calculated Tables: Like creating a new mini-warehouse from selected items
- Calculated Columns: Labelling each item in the warehouse with a new tag
- Measures: Asking, “What’s the total value of items in this warehouse section?”
Pro Tips for Using DAX Effectively
- Use measures for performance—calculated columns and tables increase model size.
- Prefer CALCULATE() when modifying filter context in measures.
- Always test DAX formulas using Matrix visuals to understand context behavior.
- Leverage Quick Measures to learn common patterns quickly.
Final Thoughts
Learning DAX is a must if you're serious about Power BI. Understanding when to use tables, columns, or measures can dramatically improve your dashboards, both in performance and insights.
Start simple, test often, and don’t be afraid to experiment. Once DAX clicks, Power BI becomes a storytelling powerhouse.
Want to learn DAX with live examples and real-world use cases?
Join our Power BI Training Programs today.
Download PowerBI Visualisation Ebook