Bird
Raised Fist0
Tableaubi_tool~8 mins

Year-over-year comparison in Tableau - Dashboard Guide

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Dashboard Mode - Year-over-year comparison
Dashboard Goal

Compare sales performance this year versus last year to see growth or decline.

Sample Data
YearMonthSales
2023Jan1000
2023Feb1200
2023Mar1300
2022Jan900
2022Feb1100
2022Mar1250
Dashboard Components
  • KPI Card: Total Sales This Year
    Formula: SUM(IF [Year] = 2023 THEN [Sales] ELSE 0 END)
    Result: 3500
  • KPI Card: Total Sales Last Year
    Formula: SUM(IF [Year] = 2022 THEN [Sales] ELSE 0 END)
    Result: 3250
  • KPI Card: Year-over-Year Growth %
    Formula: ((SUM(IF [Year] = 2023 THEN [Sales] ELSE 0 END) - SUM(IF [Year] = 2022 THEN [Sales] ELSE 0 END)) / SUM(IF [Year] = 2022 THEN [Sales] ELSE 0 END)) * 100
    Result: 7.69%
  • Line Chart: Monthly Sales Comparison
    X-axis: Month
    Y-axis: Sales
    Lines: One for 2023, one for 2022
    Shows monthly sales trends side by side
  • Table: Sales by Year and Month
    Columns: Year, Month, Sales
    Shows raw sales numbers for detail
Dashboard Layout
+----------------------+----------------------+
| Total Sales This Year | Total Sales Last Year |
|        (KPI)          |        (KPI)          |
+----------------------+----------------------+
| Year-over-Year Growth % (KPI)               |
+---------------------------------------------+
|                                             |
|           Monthly Sales Comparison           |
|               (Line Chart)                   |
|                                             |
+---------------------------------------------+
|                                             |
|             Sales by Year and Month          |
|                   (Table)                    |
|                                             |
+---------------------------------------------+
    
Interactivity

A year filter lets you select one or both years. Selecting a single year updates KPIs and the table to show only that year's data. The line chart updates to show monthly sales for the selected years. Hovering over points on the line chart highlights the corresponding month in the table for easy comparison.

Self Check

If you add a filter to show only Year = 2023, which components update and how?

  • The Total Sales This Year KPI shows 3500.
  • The Total Sales Last Year KPI hides or shows 0 because 2022 is filtered out.
  • The Year-over-Year Growth % KPI recalculates or hides because last year data is missing.
  • The Monthly Sales Comparison line chart shows only the 2023 line.
  • The Sales by Year and Month table shows only 2023 rows.
Key Result
Dashboard comparing monthly and total sales for 2023 versus 2022 with growth percentage.

Practice

(1/5)
1. What is the main purpose of a year-over-year comparison in Tableau?
easy
A. To compare values from one year to the previous year
B. To calculate the total sales for a single year
C. To display data only for the current year
D. To filter data by month

Solution

  1. Step 1: Understand year-over-year comparison

    Year-over-year comparison is used to see how a value changes from one year to the next.
  2. Step 2: Identify the correct purpose

    Comparing values from one year to the previous year matches the definition of year-over-year comparison.
  3. Final Answer:

    To compare values from one year to the previous year -> Option A
  4. Quick Check:

    Year-over-year = compare year to previous year [OK]
Hint: Year-over-year means comparing this year to last year [OK]
Common Mistakes:
  • Confusing year-over-year with total yearly sales
  • Thinking it filters data instead of comparing years
  • Assuming it only shows current year data
2. Which Tableau function is commonly used to get the previous year's value for year-over-year calculations?
easy
A. SUM()
B. WINDOW_SUM()
C. DATEPART()
D. LOOKUP()

Solution

  1. Step 1: Identify function for previous value

    LOOKUP() function in Tableau returns a value from a previous or next row, useful for previous year values.
  2. Step 2: Confirm correct function

    WINDOW_SUM() sums over a window, DATEPART() extracts date parts, SUM() totals values, but only LOOKUP() fetches previous year value directly.
  3. Final Answer:

    LOOKUP() -> Option D
  4. Quick Check:

    Previous year value = LOOKUP() [OK]
Hint: LOOKUP() fetches previous row values, perfect for last year [OK]
Common Mistakes:
  • Using SUM() instead of LOOKUP() for previous year
  • Confusing DATEPART() with fetching previous values
  • Using WINDOW_SUM() which sums but doesn't get previous year
3. Given this Tableau calculation for year-over-year growth:
SUM([Sales]) - LOOKUP(SUM([Sales]), -1)
What does this calculation return?
medium
A. The percentage growth of sales year-over-year
B. The difference in sales between the current year and the previous year
C. The sales for the previous year only
D. The total sales for the current year

Solution

  1. Step 1: Analyze the calculation components

    SUM([Sales]) gives current year sales; LOOKUP(SUM([Sales]), -1) fetches previous year sales.
  2. Step 2: Understand the subtraction

    Subtracting previous year sales from current year sales gives the difference in sales year-over-year.
  3. Final Answer:

    The difference in sales between the current year and the previous year -> Option B
  4. Quick Check:

    Current year sales - previous year sales = difference [OK]
Hint: Subtract LOOKUP() from current sum for difference [OK]
Common Mistakes:
  • Thinking it calculates percentage growth
  • Assuming it returns only previous year sales
  • Confusing it with total sales calculation
4. You created a year-over-year calculation using LOOKUP but the results are incorrect. What is the most likely cause?
medium
A. The calculation uses SUM instead of AVG
B. The data source is missing the Sales field
C. The table calculation direction is not set to compute using Year
D. The filter is applied after the calculation

Solution

  1. Step 1: Identify common error in LOOKUP calculations

    LOOKUP depends on table calculation direction; if not set to Year, it fetches wrong rows.
  2. Step 2: Confirm why direction matters

    Setting compute using Year ensures LOOKUP moves along years, giving correct previous year values.
  3. Final Answer:

    The table calculation direction is not set to compute using Year -> Option C
  4. Quick Check:

    Wrong direction = wrong previous year value [OK]
Hint: Always set table calc direction to Year for LOOKUP [OK]
Common Mistakes:
  • Ignoring table calculation direction
  • Changing aggregation from SUM to AVG unnecessarily
  • Assuming missing fields cause LOOKUP errors
5. You want to create a dashboard showing year-over-year sales growth percentage. Which calculation correctly computes this in Tableau?
 (SUM([Sales]) - LOOKUP(SUM([Sales]), -1)) / LOOKUP(SUM([Sales]), -1) * 100 
hard
A. This calculation will cause a division by zero error if previous year sales are zero
B. This calculation should use WINDOW_SUM instead of SUM
C. This calculation correctly computes the year-over-year growth percentage
D. This calculation needs to add 1 before multiplying by 100

Solution

  1. Step 1: Understand the calculation formula

    The formula calculates difference divided by previous year sales, then multiplies by 100 for percentage.
  2. Step 2: Identify potential issue

    If previous year sales are zero, division by zero occurs causing error or infinite result.
  3. Step 3: Evaluate other options

    WINDOW_SUM is not needed here; adding 1 is incorrect for percentage growth calculation.
  4. Final Answer:

    This calculation will cause a division by zero error if previous year sales are zero -> Option A
  5. Quick Check:

    Division by zero risk if previous year sales = 0 [OK]
Hint: Check for zero in denominator to avoid errors [OK]
Common Mistakes:
  • Ignoring division by zero possibility
  • Replacing SUM with WINDOW_SUM unnecessarily
  • Adding 1 incorrectly in percentage formula