Bird
Raised Fist0
Power BIbi_tool~5 mins

SAMEPERIODLASTYEAR in Power BI - Step-by-Step Guide

Choose your learning style10 modes available
Introduction
SAMEPERIODLASTYEAR helps you compare data from the same time period in the previous year. It is useful when you want to see how your sales or other numbers changed year over year for the same dates.
When you want to compare this year's sales for January to last year's January sales.
When your dashboard needs to show last year's revenue for the same month currently selected.
When you want to analyze customer growth by comparing the same quarter this year and last year.
When you want to create a report showing year-over-year changes in expenses for the same date range.
When you want to highlight seasonal trends by comparing the same period last year.
Steps
Step 1: Open the Power BI Desktop file with your data model
- Power BI Desktop main window
Your report and data model are visible
Step 2: Click on the Modeling tab
- Ribbon at the top
Modeling tools are shown
Step 3: Click on New measure
- Modeling tab
A formula bar appears to enter a DAX expression
Step 4: Type the measure formula using SAMEPERIODLASTYEAR, for example: Total Sales Last Year = CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR('Calendar'[Date]))
- Formula bar
The new measure is created and added to the Fields list
💡 Make sure you have a proper Date table marked as a date table in your model
Step 5: Add a visual like a line chart or card to your report
- Report canvas
The visual appears on the report
Step 6: Drag the new measure Total Sales Last Year to the visual's Values field
- Visualizations pane
The visual shows sales data for the same period last year
Before vs After
Before
A sales report shows total sales for the current year only, for example, $100,000 for January 2024
After
The report shows total sales for January 2023 as well, for example, $90,000, allowing easy year-over-year comparison
Settings Reference
Date Table
📍 Modeling tab > Mark as Date Table
Defines the date column used by time intelligence functions like SAMEPERIODLASTYEAR
Default: None
New Measure
📍 Modeling tab > New measure
Create calculations like SAMEPERIODLASTYEAR to compare data year over year
Default: None
Common Mistakes
Using SAMEPERIODLASTYEAR without a proper Date table marked as a date table
The function depends on a continuous date column to work correctly and will return errors or wrong results without it
Create a calendar table with continuous dates and mark it as a date table in the model before using SAMEPERIODLASTYEAR
Applying SAMEPERIODLASTYEAR on a non-date column
The function only works with date columns and will not return meaningful results on other data types
Use a date column from your calendar or date table in the SAMEPERIODLASTYEAR function
Summary
SAMEPERIODLASTYEAR lets you compare data from the same time period in the previous year.
It requires a proper date table marked as a date table in your model.
Use it in measures to create year-over-year comparisons in your reports.

Practice

(1/5)
1. What is the main purpose of the SAMEPERIODLASTYEAR function in Power BI?
easy
A. To calculate the total sales for the current year
B. To compare data from the same period in the previous year
C. To filter data for the current month only
D. To create a new date column with next year's dates

Solution

  1. Step 1: Understand the function's purpose

    SAMEPERIODLASTYEAR shifts the date context back exactly one year to compare the same time periods.
  2. Step 2: Identify the correct use case

    It is used to compare measures like sales or revenue from this year to the same period last year.
  3. Final Answer:

    To compare data from the same period in the previous year -> Option B
  4. Quick Check:

    SAMEPERIODLASTYEAR compares last year's period [OK]
Hint: Think "same time last year" for comparison [OK]
Common Mistakes:
  • Confusing it with total aggregation functions
  • Using it to filter current year data
  • Assuming it creates future dates
2. Which of the following is the correct syntax to use SAMEPERIODLASTYEAR with a date column named Sales[Date]?
easy
A. SAMEPERIODLASTYEAR('Sales'[Date])
B. SAMEPERIODLASTYEAR(Sales[Date])
C. SAMEPERIODLASTYEAR(Sales.Date)
D. SAMEPERIODLASTYEAR([SalesDate])

Solution

  1. Step 1: Recognize correct table and column reference

    In DAX, table and column names are referenced as 'TableName'[ColumnName], so 'Sales'[Date] is correct.
  2. Step 2: Check syntax correctness

    SAMEPERIODLASTYEAR(Sales[Date]) omits single quotes around the table name. SAMEPERIODLASTYEAR(Sales.Date) uses invalid dot notation. SAMEPERIODLASTYEAR([SalesDate]) uses an incorrect column name format.
  3. Final Answer:

    SAMEPERIODLASTYEAR('Sales'[Date]) -> Option A
  4. Quick Check:

    Correct DAX column reference uses quotes and brackets [OK]
Hint: Use single quotes for table, brackets for column [OK]
Common Mistakes:
  • Omitting single quotes around table name
  • Using dot notation instead of brackets
  • Referencing columns without table name
3. Given the measure:
Sales LY = CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date]))

If total sales for March 2023 are 1000, and for March 2022 are 800, what will Sales LY show when filtered on March 2023?
medium
A. 800
B. 1800
C. 1000
D. 0

Solution

  1. Step 1: Understand the measure calculation

    The measure sums sales amounts but shifts the date filter to the same period last year using SAMEPERIODLASTYEAR.
  2. Step 2: Apply the filter context for March 2023

    When filtered on March 2023, the measure returns sales from March 2022, which is 800.
  3. Final Answer:

    800 -> Option A
  4. Quick Check:

    Sales LY shows last year's same period sales [OK]
Hint: SAMEPERIODLASTYEAR shifts filter to last year [OK]
Common Mistakes:
  • Assuming it sums current year sales
  • Adding current and last year sales
  • Returning zero if no explicit filter
4. You wrote this measure:
Sales LY = CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR(Sales[Date]))

But it returns an error. What is the likely cause?
medium
A. Measure name cannot contain spaces
B. SUM function cannot be used inside CALCULATE
C. SAMEPERIODLASTYEAR requires a numeric column
D. Missing single quotes around the table name 'Sales'

Solution

  1. Step 1: Check table and column references

    The table name 'Sales' must be enclosed in single quotes when referenced in DAX, so Sales[Date] is invalid.
  2. Step 2: Understand function requirements

    SUM inside CALCULATE is valid, SAMEPERIODLASTYEAR requires a date column, and measure names can have spaces.
  3. Final Answer:

    Missing single quotes around the table name 'Sales' -> Option D
  4. Quick Check:

    Table names need single quotes in DAX [OK]
Hint: Always quote table names in DAX formulas [OK]
Common Mistakes:
  • Forgetting single quotes around table names
  • Thinking SUM can't be inside CALCULATE
  • Assuming SAMEPERIODLASTYEAR needs numeric columns
5. You want to create a measure that shows the percentage change in sales compared to the same period last year. Which DAX formula correctly uses SAMEPERIODLASTYEAR to calculate this?
hard
A. Sales YoY % = CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date])) - SUM('Sales'[Amount])
B. Sales YoY % = SUM('Sales'[Amount]) / SAMEPERIODLASTYEAR('Sales'[Date])
C. Sales YoY % = DIVIDE(SUM('Sales'[Amount]) - CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date])), CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date])))
D. Sales YoY % = SUM('Sales'[Amount]) - CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date]))

Solution

  1. Step 1: Understand the percentage change formula

    Percentage change = (Current - Previous) / Previous, so we need current sales minus last year's sales divided by last year's sales.
  2. Step 2: Analyze each option

    Sales YoY % = DIVIDE(SUM('Sales'[Amount]) - CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date])), CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date]))) correctly uses DIVIDE to avoid errors and calculates the difference over last year's sales. Sales YoY % = SUM('Sales'[Amount]) / SAMEPERIODLASTYEAR('Sales'[Date]) divides sales by a date column, which is invalid. Sales YoY % = CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date])) - SUM('Sales'[Amount]) subtracts current from last year without division. Sales YoY % = SUM('Sales'[Amount]) - CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date])) calculates difference but not percentage.
  3. Final Answer:

    Sales YoY % = DIVIDE(SUM('Sales'[Amount]) - CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date])), CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Sales'[Date]))) -> Option C
  4. Quick Check:

    Percentage change = (Current - LastYear) / LastYear [OK]
Hint: Use DIVIDE for safe percentage calculations [OK]
Common Mistakes:
  • Dividing by a date column instead of sales
  • Forgetting to divide difference by last year's sales
  • Subtracting without calculating percentage
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