Bird
Raised Fist0
Tableaubi_tool~10 mins

Year-over-year comparison in Tableau - Interactive Code Practice

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
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to calculate the sales for the previous year using Tableau's LOOKUP function.

Tableau
LOOKUP(SUM([Sales]), [1])
Drag options to blanks, or click blank then click option'
A0
B1
C-1
D2
Attempts:
3 left
💡 Hint
Common Mistakes
Using positive offset like 1 which looks forward instead of backward.
Using 0 which returns the current row value.
2fill in blank
medium

Complete the calculation to find the year-over-year sales growth percentage.

Tableau
(SUM([Sales]) - [1]) / ABS([1])
Drag options to blanks, or click blank then click option'
ALOOKUP(SUM([Sales]), -1)
BTOTAL(SUM([Sales]))
CAVG([Sales])
DSUM([Sales])
Attempts:
3 left
💡 Hint
Common Mistakes
Using current year's sales instead of previous year's sales in the formula.
Dividing by current year's sales instead of previous year's sales.
3fill in blank
hard

Fix the error in this calculation that attempts to compute year-over-year sales difference but returns incorrect results.

Tableau
SUM([Sales]) - [1]
Drag options to blanks, or click blank then click option'
ASUM([Sales])
BLOOKUP(SUM([Sales]), -1)
CLOOKUP(SUM([Sales]), 1)
DPREVIOUS_VALUE(SUM([Sales]))
Attempts:
3 left
💡 Hint
Common Mistakes
Using positive offset which looks forward instead of backward.
Using PREVIOUS_VALUE which does not behave as expected here.
4fill in blank
hard

Fill both blanks to create a calculation that returns the year-over-year sales growth percentage formatted as a percentage.

Tableau
IFNULL(ROUND((SUM([Sales]) - [1]) / ABS([2]) * 100, 2), 0) + '%'
Drag options to blanks, or click blank then click option'
ALOOKUP(SUM([Sales]), -1)
BSUM([Sales])
DAVG([Sales])
Attempts:
3 left
💡 Hint
Common Mistakes
Using current year's sales in one or both blanks.
Using different functions for the two blanks causing errors.
5fill in blank
hard

Fill all three blanks to create a calculation that returns the year-over-year sales growth ratio, handles division by zero, and formats the result as a percentage string.

Tableau
IF(ABS([1]) > 0, STR(ROUND((SUM([Sales]) - [2]) / ABS([3]) * 100, 1)) + '%', 'N/A')
Drag options to blanks, or click blank then click option'
ALOOKUP(SUM([Sales]), -1)
DSUM([Sales])
Attempts:
3 left
💡 Hint
Common Mistakes
Using current year's sales in any blank causing incorrect calculations.
Not handling division by zero properly.

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