Date Tables & Table Properties
Create a proper date table for time intelligence, and configure table and column properties β data categories, sort by column, summarisation, and display folders.
Every model needs a date table
Imagine a calendar on your wall. It doesnβt just show dates β it shows which day of the week, which month, which quarter, whether itβs a holiday. That context is what makes a calendar useful.
A date table in Power BI is your dataβs calendar. Without it, you canβt do year-over-year comparisons, running totals, or βsame period last yearβ calculations. DAX time intelligence functions require a proper date table to work.
Creating a date table
There are three common approaches:
Option 1: DAX CALENDARAUTO (recommended)
Date =
ADDCOLUMNS(
CALENDARAUTO(),
"Year", YEAR([Date]),
"Month", FORMAT([Date], "MMMM"),
"MonthNumber", MONTH([Date]),
"Quarter", "Q" & CEILING(MONTH([Date]) / 3, 1),
"WeekDay", FORMAT([Date], "dddd"),
"DayOfWeek", WEEKDAY([Date], 2)
)
CALENDARAUTO() scans all date columns in your model and creates a contiguous date range. Be aware that it may pick up irrelevant dates from other columns β if your model has a βContractEndDateβ of 2099, the table will extend to 2099. Use CALENDAR() with explicit dates when you need precise control.
Option 2: DAX CALENDAR (explicit range)
Date =
CALENDAR(DATE(2020, 1, 1), DATE(2026, 12, 31))
Use when you want to control the exact date range rather than auto-detecting from data.
Option 3: Power Query (M code)
Create a date table in Power Query using List.Dates(). Useful when you need complex fiscal year logic or custom columns that are easier in M than DAX.
Marking the date table
After creating it, you must mark it:
- Select the Date table in the model
- Table tools β Mark as date table
- Select the Date column
This tells Power BI to use your custom date table instead of its auto-generated one β and enables full time intelligence support.
Exam tip: what makes a valid date table
The exam tests whether you know the requirements:
- Must have a column with Date data type
- Must have no gaps (every day between min and max must exist)
- Must be marked as a date table
Common trap: a table with only month-end dates (Jan 31, Feb 28, Mar 31) is NOT valid because it has gaps between months.
Configuring table and column properties
Beyond dates, Power BI lets you configure properties on any table and column to improve the user experience.
Column properties
| Property | What It Does | Example |
|---|---|---|
| Data Category | Tells Power BI how to treat the column (URL, Image URL, Barcode, Geographic) | Setting a column to βCityβ enables automatic map visualisation |
| Sort By Column | Sorts one column by another columnβs values | Sort βMonth Nameβ by βMonth Numberβ (so Jan comes before Feb, not after Apr) |
| Summarize By | Sets the default aggregation | ProductID should be βDonβt Summarizeβ (itβs a key, not a measure) |
| Display Folder | Groups columns into folders in the Fields pane | Group Year, Quarter, Month into a βDate Attributesβ folder |
| Description | Adds a tooltip when hovering over the field | βTotal revenue including taxβ |
| Is Hidden | Hides the column from report authors | Hide foreign key columns that arenβt useful for reporting |
Sort By Column: the classic exam question
Riley at Coastal Fresh (π) has a Month Name column: January, February, Marchβ¦ By default, Power BI sorts text alphabetically β so April comes first, not January.
Fix: Create a MonthNumber column (1-12) and set Sort By Column on Month Name to MonthNumber.
Nadia at Prism Agency (π) has the same issue with day names β Friday sorts before Monday. She creates a DayOfWeekNumber column and sorts DayName by it.
Deep dive: data categories for maps
Setting a columnβs data category to a geographic type (Country, State, City, Postal Code, Latitude, Longitude) enables:
- Automatic map visual suggestions
- Better geocoding accuracy
- Bing Maps integration
Dr. Ethan at Bayview Medical (π₯) sets his hospital City columnβs data category to βCityβ so Power BI automatically places hospitals on map visuals.
Knowledge check
Riley creates a date table using CALENDARAUTO() and adds Year, Month, and Quarter columns. Time intelligence DAX functions still don't work. What did she miss?
Nadia's report shows months sorted as: April, August, December, February... What property should she configure?
Next up: Columns vs Measures: When to Use Which β the most important decision in DAX.