The DATEADD function in DAX (Data Analysis Expressions) is used to shift a set of dates by a specified interval. This function is particularly useful for creating measures that compare data across different time periods, such as month-over-month or year-over-year comparisons.
Syntax
DAX
DATEADD(<dates>, <number_of_intervals>, <interval>)
<dates>: A column containing date values.<number_of_intervals>: The number of intervals to shift the dates. This can be positive (future) or negative (past).<interval>: The interval to use. It can beDAY,MONTH,QUARTER, orYEAR.
Common Use Cases
- Previous Month Sales
- Previous Year Sales
- Custom Period Comparisons
Example 1: Previous Month Sales
To calculate sales for the previous month, you can use the DATEADD function to shift the dates by -1 month.
Previous Month Sales Measure
DAX
PreviousMonthSales =
CALCULATE(
SUM(Sales[SalesAmount]),
DATEADD(DateTable[Date], -1, MONTH)
)
In this measure:
SUM(Sales[SalesAmount])calculates the total sales amount.DATEADD(DateTable[Date], -1, MONTH)shifts the dates by one month back.
Example 2: Previous Year Sales
To calculate sales for the previous year, you can use the DATEADD function to shift the dates by -1 year.
Previous Year Sales Measure
DAX
PreviousYearSales =
CALCULATE(
SUM(Sales[SalesAmount]),
DATEADD(DateTable[Date], -1, YEAR)
)
In this measure:
SUM(Sales[SalesAmount])calculates the total sales amount.DATEADD(DateTable[Date], -1, YEAR)shifts the dates by one year back.
Example 3: Custom Period Comparisons
You can use the DATEADD function to compare custom periods. For example, comparing sales data from the previous quarter.
Previous Quarter Sales Measure
DAX
PreviousQuarterSales =
CALCULATE(
SUM(Sales[SalesAmount]),
DATEADD(DateTable[Date], -1, QUARTER)
)
In this measure:
SUM(Sales[SalesAmount])calculates the total sales amount.DATEADD(DateTable[Date], -1, QUARTER)shifts the dates by one quarter back.
Steps to Implement in Power BI
- Load Data: Ensure your data (both
SalesandDateTable) is loaded into Power BI. - Create Date Table: If you don’t have a
DateTable, you can create one using:DAX
DateTable = CALENDAR(MIN(Sales[OrderDate]), MAX(Sales[OrderDate]))- Establish Relationships: Create a relationship between the
OrderDatecolumn in theSalestable and theDatecolumn in theDateTable. - Create Measures: Add the
PreviousMonthSales,PreviousYearSales, and any other custom period measures using the DAX expressions provided. - Add to Report: Drag and drop the new measures into your report visualizations (e.g., tables, bar charts) to compare sales data across different time periods.
Example Visualization
- Table: Create a table with columns
OrderDate,SalesAmount,PreviousMonthSales, andPreviousYearSalesto compare current sales with the previous month and previous year. - Line Chart: Plot
OrderDateon the x-axis and theSalesAmount,PreviousMonthSales, andPreviousYearSalesmeasures on the y-axis to visualize trends over time.
Using the DATEADD function allows you to perform flexible time-based comparisons, making it easier to analyze trends and patterns in your data over various periods.

Ankit Srivastava is an IT trainer, technology educator, and digital skills mentor with expertise in programming, data analytics, AI, and software development. He has successfully trained thousands of learners, with more than 10,000 student enrollments on Udemy. His practical teaching approach empowers students and professionals to build in-demand technical skills. Colorstech channel where Ankit posts video tutorials has more than 8000 Subscribers.