Bird
Raised Fist0
Power BIbi_tool~8 mins

DATEADD for period shifts in Power BI - Dashboard Guide

Choose your learning style10 modes available
Dashboard Mode - DATEADD for period shifts
Business Question

How can we compare sales this year to sales in the same period last year using period shifts?

Sample Data
DateSales Amount
2023-01-01100
2023-02-01150
2023-03-01200
2023-04-01250
2023-05-01300
2023-06-01350
2023-07-01400
Dashboard Components
  • KPI Card: Total Sales This Year
    Formula: Total Sales = SUM('Sales'[Sales Amount])
    Result: 1750
  • KPI Card: Total Sales Same Period Last Year
    Formula: Sales Last Year = CALCULATE(SUM('Sales'[Sales Amount]), DATEADD('Sales'[Date], -1, YEAR))
    Result: 0 (No data for 2022 in sample)
  • Line Chart: Monthly Sales This Year
    X-axis: 'Sales'[Date]
    Y-axis: Total Sales measure
  • Line Chart: Monthly Sales Last Year
    X-axis: 'Sales'[Date]
    Y-axis: Sales Last Year measure
  • Table: Sales by Month
    Columns: Date, Sales Amount, Sales Last Year
Dashboard Layout
+-----------------------------+-----------------------------+
| Total Sales This Year (KPI) | Sales Last Year (KPI)       |
+-----------------------------+-----------------------------+
|                             Line Charts:                          |
| +-------------------------+ +-----------------------------+    |
| | Monthly Sales This Year | | Monthly Sales Last Year      |    |
| +-------------------------+ +-----------------------------+    |
+---------------------------------------------------------------+
| Table: Sales by Month                                          |
+---------------------------------------------------------------+
Interactivity

A date slicer allows selecting a date range. When the user changes the date range, all components update to show sales and last year sales for the selected period.

The DATEADD function shifts the date context by -1 year to calculate last year's sales for the same period.

Self Check

If you add a filter to show only dates from January to March 2023, which components update?

  • Both KPI cards update to show total sales and last year sales for Jan-Mar.
  • Both line charts update to show monthly sales and last year monthly sales for Jan-Mar.
  • The table updates to show only rows for Jan-Mar with sales and last year sales.
Key Result
Dashboard compares current year sales to last year using DATEADD for period shifts.

Practice

(1/5)
1. What does the DATEADD function do in Power BI?
easy
A. It shifts dates by a specified number of days, months, quarters, or years.
B. It adds two date columns together.
C. It formats dates into text strings.
D. It calculates the difference between two dates.

Solution

  1. Step 1: Understand the purpose of DATEADD

    DATEADD is used to move dates forward or backward by a set period like days or months.
  2. Step 2: Compare with other date functions

    Unlike difference or formatting functions, DATEADD shifts dates by a period.
  3. Final Answer:

    It shifts dates by a specified number of days, months, quarters, or years. -> Option A
  4. Quick Check:

    DATEADD shifts dates = D [OK]
Hint: Remember: DATEADD moves dates by periods, not calculates differences [OK]
Common Mistakes:
  • Confusing DATEADD with DATEDIFF
  • Thinking DATEADD formats dates
  • Assuming DATEADD adds two dates
2. Which of the following is the correct syntax to shift dates by 1 month using DATEADD in DAX?
easy
A. DATEADD(DateColumn, '1 month')
B. DATEADD(DateColumn, 1, MONTH)
C. DATEADD(DateColumn, MONTH, 1)
D. DATEADD(1, DateColumn, MONTH)

Solution

  1. Step 1: Recall DATEADD syntax

    DATEADD requires three arguments: a date column, number of intervals, and interval type.
  2. Step 2: Match correct argument order

    The correct order is DATEADD(DateColumn, number, interval), so DATEADD(DateColumn, 1, MONTH) matches.
  3. Final Answer:

    DATEADD(DateColumn, 1, MONTH) -> Option B
  4. Quick Check:

    Correct syntax = A [OK]
Hint: Syntax order: DateColumn, number, then interval [OK]
Common Mistakes:
  • Swapping interval and number arguments
  • Using quotes around interval
  • Passing number before date column
3. Given the measure:
Sales Last Month = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, MONTH))

What does this measure calculate?
medium
A. Total sales for all months except the current one.
B. Total sales for the next month relative to the current filter context.
C. Total sales for the current month only.
D. Total sales for the previous month relative to the current filter context.

Solution

  1. Step 1: Analyze DATEADD usage

    DATEADD shifts the date filter by -1 month, meaning one month back.
  2. Step 2: Understand CALCULATE with shifted filter

    CALCULATE applies the shifted date filter to sum sales for that previous month.
  3. Final Answer:

    Total sales for the previous month relative to the current filter context. -> Option D
  4. Quick Check:

    DATEADD with -1 month = previous month sales [OK]
Hint: Negative number in DATEADD means past period [OK]
Common Mistakes:
  • Thinking negative shifts future dates
  • Assuming it sums current month sales
  • Confusing previous and next month
4. You wrote this measure:
Sales Next Quarter = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], 1, QUARTER))

But it returns an error. What is the likely cause?
medium
A. The interval 'QUARTER' is not a valid argument for DATEADD.
B. The number argument must be negative to shift forward.
C. The date column is not continuous or missing dates.
D. CALCULATE cannot be used with DATEADD.

Solution

  1. Step 1: Check validity of interval argument

    QUARTER is a valid interval for DATEADD, so The interval 'QUARTER' is not a valid argument for DATEADD. is incorrect.
  2. Step 2: Understand DATEADD requirements

    DATEADD requires a continuous date column without gaps; missing dates cause errors.
  3. Step 3: Verify number argument

    Positive number shifts forward, so The number argument must be negative to shift forward. is wrong.
  4. Step 4: Confirm CALCULATE usage

    CALCULATE works with DATEADD filters, so CALCULATE cannot be used with DATEADD. is wrong.
  5. Final Answer:

    The date column is not continuous or missing dates. -> Option C
  6. Quick Check:

    Continuous date column needed = B [OK]
Hint: Ensure date column is continuous for DATEADD [OK]
Common Mistakes:
  • Using non-continuous date columns
  • Misunderstanding interval validity
  • Thinking negative number shifts forward
5. You want to create a measure that compares sales of the current month to the same month last year using DATEADD. Which DAX formula correctly achieves this?
hard
A. Sales Same Month Last Year = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, YEAR))
B. Sales Same Month Last Year = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -12, QUARTER))
C. Sales Same Month Last Year = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, MONTH))
D. Sales Same Month Last Year = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, QUARTER))

Solution

  1. Step 1: Understand the goal

    We want to compare sales for the same month but one year earlier.
  2. Step 2: Analyze each option's date shift

    Sales Same Month Last Year = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, MONTH)) shifts by 1 month back, not a year.
    Sales Same Month Last Year = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -12, QUARTER)) shifts by 12 quarters back, which is 3 years, not one year.
    Sales Same Month Last Year = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, YEAR)) shifts by 1 year back, directly matching the goal.
    Sales Same Month Last Year = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, QUARTER)) shifts by 1 quarter back, which is 3 months.
  3. Step 3: Choose the clearest and correct interval

    Using YEAR interval with -1 is the best practice for same month last year comparison.
  4. Final Answer:

    Sales Same Month Last Year = CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, YEAR)) -> Option A
  5. Quick Check:

    Shift by -1 YEAR for same month last year = C [OK]
Hint: Use YEAR interval with -1 to shift one year back [OK]
Common Mistakes:
  • Using -12 QUARTER instead of -1 YEAR
  • Shifting by -1 MONTH or -1 QUARTER incorrectly
  • Confusing months and years intervals
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard