Bird
Raised Fist0
Tableaubi_tool~8 mins

LOD with date dimensions 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 - LOD with date dimensions
Business Question

How can we analyze total sales per year and compare it with sales per month using Level of Detail (LOD) expressions with date dimensions?

Sample Data
Order IDOrder DateSales
10012023-01-15150
10022023-02-20200
10032023-02-25100
10042023-03-10250
10052024-01-05300
10062024-02-15350
10072024-03-20400
Dashboard Components
  • KPI Card: Total Sales per Year
    Formula: { FIXED YEAR([Order Date]) : SUM([Sales]) }
    Explanation: Calculates total sales for each year regardless of other filters.
    Example values:
    • 2023: 700
    • 2024: 1050
  • Bar Chart: Sales per Month
    Dimension: MONTH([Order Date])
    Measure: SUM([Sales])
    Explanation: Shows monthly sales totals, filtered by year if selected.
    Example values for 2023:
    • Jan: 150
    • Feb: 300
    • Mar: 250
  • Table: Detailed Orders
    Columns: Order ID, Order Date, Sales
    Shows individual sales records.
Dashboard Layout
+----------------------+-----------------------+
| Total Sales per Year  | Sales per Month Chart  |
|      (KPI Card)      |                       |
+----------------------+-----------------------+
|          Detailed Orders Table               |
+---------------------------------------------+
Interactivity

A year filter allows users to select a specific year. When a year is selected:

  • The Sales per Month bar chart updates to show monthly sales only for that year.
  • The Detailed Orders table filters to show orders only from the selected year.
  • The Total Sales per Year KPI card remains unchanged because the LOD expression fixes sales by year ignoring the filter, showing total sales for all years.
Self Check

If you add a filter to select the year 2023, which components update and how?

  • Sales per Month Chart: Updates to show only months in 2023 with sales totals.
  • Detailed Orders Table: Shows only orders from 2023.
  • Total Sales per Year KPI: Does not change; still shows total sales per year for all years because of the fixed LOD calculation.
Key Result
Dashboard shows total sales per year using LOD, monthly sales trends, and detailed order data with year filtering.

Practice

(1/5)
1. What does a FIXED LOD expression with DATETRUNC('month', [Order Date]) do in Tableau?
easy
A. Calculates a value fixed at the month level, ignoring view filters on date.
B. Calculates a value that changes with every day in the month.
C. Filters data to only show the first day of each month.
D. Aggregates data by year instead of month.

Solution

  1. Step 1: Understand FIXED LOD with DATETRUNC

    FIXED LOD fixes calculation at the specified date granularity, here month.
  2. Step 2: Effect on calculation

    It ignores filters on date and calculates once per month, not per day.
  3. Final Answer:

    Calculates a value fixed at the month level, ignoring view filters on date. -> Option A
  4. Quick Check:

    LOD with DATETRUNC('month') fixes by month [OK]
Hint: FIXED + DATETRUNC fixes calculation at chosen date level [OK]
Common Mistakes:
  • Thinking it filters data instead of fixing calculation
  • Confusing month with day granularity
  • Assuming it aggregates by year
2. Which of the following is the correct syntax for a FIXED LOD expression to calculate total sales by quarter in Tableau?
easy
A. {FIXED [DATETRUNC('quarter', [Order Date])] : SUM([Sales])}
B. {FIXED [Order Date], DATETRUNC('quarter') : SUM([Sales])}
C. {FIXED DATETRUNC('quarter', [Order Date]) : SUM(Sales)}
D. {FIXED DATETRUNC('quarter', [Order Date]) : SUM([Sales])}

Solution

  1. Step 1: Check FIXED LOD syntax

    Correct syntax is {FIXED [dimension] : aggregation} where dimension can be an expression like DATETRUNC.
  2. Step 2: Validate each option

    {FIXED DATETRUNC('quarter', [Order Date]) : SUM([Sales])} correctly uses {FIXED DATETRUNC('quarter', [Order Date]) : SUM([Sales])} with proper brackets and field names.
  3. Final Answer:

    {FIXED DATETRUNC('quarter', [Order Date]) : SUM([Sales])} -> Option D
  4. Quick Check:

    Correct FIXED LOD syntax uses brackets and field names [OK]
Hint: Use curly braces and brackets correctly in FIXED LOD [OK]
Common Mistakes:
  • Missing brackets around field names
  • Incorrect placement of DATETRUNC
  • Using aggregation inside DATETRUNC
3. Given the FIXED LOD expression {FIXED DATETRUNC('year', [Order Date]) : SUM([Sales])}, what will be the result if the view shows data by month for 2023 with monthly sales as [1000, 1500, 1200]?
medium
A. [1000, 1500, 1200]
B. [3700, 3700, 3700]
C. [1233, 1233, 1233]
D. [0, 0, 0]

Solution

  1. Step 1: Calculate yearly total sales

    Sum monthly sales: 1000 + 1500 + 1200 = 3700 for the year 2023.
  2. Step 2: Apply FIXED LOD at year level

    LOD fixes total sales at year level, so each month shows 3700 regardless of monthly values.
  3. Final Answer:

    [3700, 3700, 3700] -> Option B
  4. Quick Check:

    Year-level FIXED LOD repeats yearly total per month [OK]
Hint: LOD FIXED at year repeats yearly total for all months [OK]
Common Mistakes:
  • Assuming monthly sums instead of yearly total
  • Adding averages instead of sums
  • Confusing FIXED with INCLUDE or EXCLUDE
4. You wrote this LOD expression: {FIXED [DATETRUNC('month', [Order Date])] : SUM([Sales])} but Tableau shows an error. What is the likely problem?
medium
A. DATETRUNC cannot be used inside FIXED LOD expressions.
B. DATETRUNC should be wrapped in square brackets as a field.
C. Unnecessary square brackets around the DATETRUNC expression.
D. DATETRUNC expression must be inside parentheses, not brackets.

Solution

  1. Step 1: Check syntax for FIXED LOD with expressions

    When using an expression like DATETRUNC inside FIXED, it must NOT be enclosed in square brackets to be treated as a dimension (brackets are only for field names).
  2. Step 2: Identify the bracket issue

    The expression has unnecessary square brackets around DATETRUNC('month', [Order Date]), causing syntax error.
  3. Final Answer:

    Unnecessary square brackets around the DATETRUNC expression. -> Option C
  4. Quick Check:

    Expressions in FIXED must not be bracketed [OK]
Hint: Bracket expressions inside FIXED LOD properly [OK]
Common Mistakes:
  • Putting brackets around DATETRUNC inside FIXED
  • Confusing parentheses and brackets
  • Assuming DATETRUNC is a field, not a function
5. You want to compare monthly sales to the total sales of the year for each month in Tableau. Which LOD expression correctly calculates the yearly total sales fixed by year to use in this comparison?
hard
A. {FIXED DATETRUNC('year', [Order Date]) : SUM([Sales])}
B. {FIXED [YEAR([Order Date])] : SUM([Sales])}
C. {INCLUDE DATETRUNC('year', [Order Date]) : SUM([Sales])}
D. {EXCLUDE DATETRUNC('month', [Order Date]) : SUM([Sales])}

Solution

  1. Step 1: Identify correct date truncation for year

    DATETRUNC('year', [Order Date]) returns the first day of the year, suitable for fixing yearly level.
  2. Step 2: Use FIXED LOD for consistent yearly total

    FIXED LOD with DATETRUNC('year', [Order Date]) fixes sales at year level, ignoring view filters.
  3. Step 3: Compare monthly sales to yearly total

    This expression allows comparing each month's sales to the fixed yearly total.
  4. Final Answer:

    {FIXED DATETRUNC('year', [Order Date]) : SUM([Sales])} -> Option A
  5. Quick Check:

    FIXED + DATETRUNC('year') fixes yearly total for comparison [OK]
Hint: Use FIXED with DATETRUNC('year') for yearly totals [OK]
Common Mistakes:
  • Using YEAR() instead of DATETRUNC for FIXED
  • Using INCLUDE or EXCLUDE instead of FIXED
  • Excluding month instead of fixing year