Bird
Raised Fist0
Tableaubi_tool~5 mins

Logical functions (IF, IIF, CASE) in Tableau - Step-by-Step 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
Introduction
Logical functions in Tableau help you make decisions in your data. They let you check conditions and show different results based on those checks. This is useful when you want to categorize data or create new fields based on rules.
When you want to label sales as 'High' or 'Low' based on a threshold.
When you need to assign regions to sales reps based on their location codes.
When you want to create a new field that shows 'Yes' if a customer bought more than 5 items, otherwise 'No'.
When you want to group products into categories using multiple conditions.
When you want to replace missing or null values with a default value.
Steps
Step 1: Click
- Analysis menu > Create Calculated Field
A dialog box opens to create a new calculated field
💡 Name your calculated field clearly, like 'Sales Category'
Step 2: Type
- Calculation editor
You enter the logical formula using IF, IIF, or CASE
💡 Start with IF for simple conditions, IIF for short true/false, CASE for multiple choices
Step 3: Click
- OK button in the calculation editor
The new calculated field appears in the Data pane under Dimensions or Measures
Step 4: Drag
- New calculated field to Rows or Columns shelf or to Marks card
The visualization updates to show data grouped or filtered by your logical condition
Before vs After
Before
Data shows raw sales numbers without categories
After
Data shows sales categorized as 'High' or 'Low' based on sales amount
Settings Reference
Calculation editor
📍 Analysis menu > Create Calculated Field
Write logical expressions to create new fields based on conditions
Default: Empty editor
Common Mistakes
Forgetting to close IF statements with END
Tableau requires END to finish IF blocks, otherwise calculation errors occur
Always add END after the IF...THEN...ELSE parts
Using IIF for multiple conditions
IIF only handles one true/false check, not multiple cases
Use IF or CASE for multiple conditions
Not handling NULL values in logical expressions
NULL can cause unexpected results or errors
Use ISNULL() or include ELSE clauses to handle NULLs
Summary
Logical functions let you create new fields based on conditions in Tableau.
Use IF for flexible conditions, IIF for simple true/false, and CASE for multiple choices.
Always close IF statements with END and handle NULL values carefully.

Practice

(1/5)
1. Which logical function in Tableau is best for checking a simple true or false condition?
easy
A. IF
B. CASE
C. IIF
D. SWITCH

Solution

  1. Step 1: Understand the purpose of IF

    The IF function evaluates a condition and returns one value if true and another if false, perfect for simple true/false checks.
  2. Step 2: Compare with other functions

    CASE is for multiple fixed values, IIF is a shorthand for IF but with null handling, and SWITCH is not a Tableau function.
  3. Final Answer:

    IF -> Option A
  4. Quick Check:

    Simple true/false check = IF [OK]
Hint: Use IF for simple true/false decisions [OK]
Common Mistakes:
  • Confusing CASE with IF for simple conditions
  • Using IIF without needing null handling
  • Thinking SWITCH is a Tableau function
2. Which of the following is the correct syntax for the IIF function in Tableau?
easy
A. IIF(condition ? true_result : false_result)
B. IIF(condition THEN true_result ELSE false_result END)
C. IIF(condition, true_result, false_result)
D. IIF(condition, true_result)

Solution

  1. Step 1: Recall IIF syntax

    IIF takes three arguments: a condition, the result if true, and the result if false, written as IIF(condition, true_result, false_result).
  2. Step 2: Check other options

    IIF(condition THEN true_result ELSE false_result END) uses IF syntax, C uses ternary operator syntax (not Tableau), and D misses the false_result argument.
  3. Final Answer:

    IIF(condition, true_result, false_result) -> Option C
  4. Quick Check:

    IIF syntax = IIF(condition, true, false) [OK]
Hint: IIF always needs three parts: condition, true, false [OK]
Common Mistakes:
  • Omitting the false_result argument
  • Using IF syntax inside IIF
  • Confusing with ternary operator syntax
3. What will be the result of this Tableau calculation?
CASE [Region]
  WHEN 'East' THEN 'Group A'
  WHEN 'West' THEN 'Group B'
  ELSE 'Other'
END

If [Region] is 'West'?
medium
A. 'Group A'
B. 'Group B'
C. 'Other'
D. Null

Solution

  1. Step 1: Understand CASE evaluation

    The CASE statement checks [Region] value. If it matches 'West', it returns 'Group B'.
  2. Step 2: Apply the input value

    Since [Region] is 'West', the second WHEN condition matches, so output is 'Group B'.
  3. Final Answer:

    'Group B' -> Option B
  4. Quick Check:

    CASE 'West' = 'Group B' [OK]
Hint: CASE returns first matching WHEN value [OK]
Common Mistakes:
  • Choosing ELSE value when a WHEN matches
  • Confusing CASE with IF syntax
  • Assuming Null if no match without ELSE
4. Identify the error in this Tableau formula:
IF [Sales] > 1000 THEN 'High' ELSEIF [Sales] > 500 THEN 'Medium' ELSE 'Low' END
medium
A. ELSEIF should be ELSE IF (two words)
B. Missing END keyword
C. Incorrect use of ELSE instead of ELSEIF
D. IF cannot compare numeric values

Solution

  1. Step 1: Check IF syntax in Tableau

    Tableau requires ELSE IF as two separate words, not ELSEIF as one word.
  2. Step 2: Verify other parts

    The formula has END keyword, ELSE is used correctly, and IF can compare numbers.
  3. Final Answer:

    ELSEIF should be ELSE IF (two words) -> Option A
  4. Quick Check:

    Use ELSE IF, not ELSEIF in Tableau [OK]
Hint: Use ELSE IF as two words in Tableau IF statements [OK]
Common Mistakes:
  • Writing ELSEIF as one word
  • Forgetting END keyword
  • Thinking IF can't compare numbers
5. You want to create a calculated field that labels sales as 'Low' if below 500, 'Medium' if between 500 and 1000, and 'High' if above 1000. Which Tableau formula correctly uses logical functions to do this?
hard
A. IF [Sales] <= 500 THEN 'Low' ELSEIF [Sales] < 1000 THEN 'Medium' ELSE 'High' END
B. CASE WHEN [Sales] < 500 THEN 'Low' WHEN [Sales] <= 1000 THEN 'Medium' ELSE 'High' END
C. IF [Sales] < 500 THEN 'Low' ELSEIF [Sales] <= 1000 THEN 'Medium' ELSE 'High' END
D. IIF([Sales] < 500, 'Low', IIF([Sales] <= 1000, 'Medium', 'High'))

Solution

  1. Step 1: Analyze the requirement

    We need three labels based on sales ranges: below 500, 500 to 1000, and above 1000.
  2. Step 2: Evaluate each option

    IF [Sales] < 500 THEN 'Low' ELSEIF [Sales] <= 1000 THEN 'Medium' ELSE 'High' END uses ELSEIF (incorrect syntax, should be ELSE IF). CASE WHEN [Sales] < 500 THEN 'Low' WHEN [Sales] <= 1000 THEN 'Medium' ELSE 'High' END uses CASE incorrectly because CASE in Tableau matches exact values, not ranges. IF [Sales] <= 500 THEN 'Low' ELSEIF [Sales] < 1000 THEN 'Medium' ELSE 'High' END has overlapping conditions and incorrect ELSE IF syntax. IIF([Sales] < 500, 'Low', IIF([Sales] <= 1000, 'Medium', 'High')) correctly nests IIF functions to handle ranges properly.
  3. Final Answer:

    IIF([Sales] < 500, 'Low', IIF([Sales] <= 1000, 'Medium', 'High')) -> Option D
  4. Quick Check:

    Nested IIF handles ranges correctly [OK]
Hint: Use nested IIF for multiple range conditions [OK]
Common Mistakes:
  • Using CASE for range conditions
  • Writing ELSEIF instead of ELSE IF
  • Overlapping or missing conditions