Bird
Raised Fist0
Power BIbi_tool~10 mins

DATEADD for period shifts in Power BI - Cell-by-Cell Formula Trace

Choose your learning style10 modes available
Sample Data

This table shows daily sales data with dates in column A and sales amounts in column B.

CellValue
A1Date
A22024-01-01
A32024-01-02
A42024-01-03
B1Sales
B2100
B3150
B4200
Formula Trace
Sales_Last_Week = CALCULATE(SUM('Table'[Sales]), DATEADD('Table'[Date], -7, DAY))
Step 1: DATEADD('Table'[Date], -7, DAY)
Step 2: FILTER('Table', 'Table'[Date] IN shifted_dates)
Step 3: SUM('Table'[Sales]) over filtered rows
Cell Reference Map
Date
↓
Sales
The formula references the Date column to shift dates by 7 days back and sums Sales for those shifted dates.
Result
    A          B               C
1 | Date     | Sales | Sales_Last_Week |
2 |2024-01-01|  100  |       0        |
3 |2024-01-02|  150  |       0        |
4 |2024-01-03|  200  |       0        |
Since the sample data only has dates starting at 2024-01-01, shifting by -7 days results in no matching dates, so Sales_Last_Week is 0 for all rows.
Sheet Trace Quiz - 3 Questions
Test your understanding
What does DATEADD('Table'[Date], -7, DAY) do in this formula?
AShifts each date 7 days earlier
BShifts each date 7 days later
CFilters dates to only the last 7 days
DReturns the original dates without change
Key Result
DATEADD shifts a date column by a specified number of intervals (days, months, years) to enable period comparisons.

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