What is a Calculated Table in DAX?
A Calculated Table is an entirely new table generated by a DAX expression, rather than loaded from an external data source. It’s often used to build helper or summary tables — such as a custom date table or a disconnected table for what-if parameters — directly inside the Power BI data model.
Calculated Table vs. Calculated Column
A calculated column is a new column computed row-by-row and stored inside an existing table, while a calculated table generates an entirely new table object in the model — the two solve different problems even though both are defined with DAX.
Common Functions Used to Build a Calculated Table
- CALENDAR() / CALENDARAUTO(): generates a continuous range of dates, often the starting point for a custom Date table.
- UNION(): stacks rows from two or more tables with matching structures into one table.
- SUMMARIZE(): creates a grouped summary table from an existing table, similar to a Group By.
- DISTINCT(): returns a one-column table of unique values from a column.
- GENERATESERIES(): produces a table of sequential numbers, useful for what-if parameters.
When to Use a Calculated Table
- Building a dedicated Date table when no date dimension exists in the source data.
- Creating a disconnected table to power a what-if parameter slicer
- Producing a small lookup or summary table without going back to Power Query
How to Create a Calculated Table in DAX (Power BI)
This 5-step tutorial creates a simple calculated Date table using CALENDAR(), the most common real-world use of a DAX calculated table.
Prerequisites
- Power BI Desktop open with at least one table already loaded
- A rough idea of the date range your data covers
Steps
- Open the Modeling tab: Select New Table from the ribbon (works from any view).
- Name the table and write the expression: Date Table = CALENDAR(DATE(2023,1,1), DATE(2026,12,31)).
- Confirm creation: Press Enter — the new table appears in the Fields pane like any loaded table.
- Mark it as the official date table: Go to Model View → right-click the table → Mark as Date Table, then choose the date column.
- Build relationships if needed: Drag the date column onto the matching date field in your fact table to connect it.