Bird
Raised Fist0
Tableaubi_tool~10 mins

Logical functions (IF, IIF, CASE) 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 return 'High' if Sales is greater than 1000.

Tableau
IF [Sales] [1] 1000 THEN 'High' ELSE 'Low' END
Drag options to blanks, or click blank then click option'
A<=
B<
C=
D>
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<' instead of '>' will check the wrong condition.
Using '=' will check for equality, not greater than.
2fill in blank
medium

Complete the IIF function to return 'Yes' if Profit is positive, otherwise 'No'.

Tableau
IIF([Profit] [1] 0, 'Yes', 'No')
Drag options to blanks, or click blank then click option'
A<=
B>
C<
D=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '<=' will include zero and negative profits incorrectly.
Using '=' checks only if Profit equals zero.
3fill in blank
hard

Fix the error in the CASE statement to categorize Region correctly.

Tableau
CASE [Region] WHEN 'East' THEN 'East Coast' WHEN 'West' [1] 'West Coast' ELSE 'Other' END
Drag options to blanks, or click blank then click option'
AIF
BELSE
CTHEN
DWHEN
Attempts:
3 left
💡 Hint
Common Mistakes
Using ELSE instead of THEN after WHEN causes syntax errors.
Using IF inside CASE is incorrect syntax.
4fill in blank
hard

Fill both blanks to create a CASE statement that returns 'Low', 'Medium', or 'High' based on Sales.

Tableau
CASE WHEN [Sales] [1] 500 THEN 'Low' WHEN [Sales] [2] 1500 THEN 'Medium' ELSE 'High' END
Drag options to blanks, or click blank then click option'
A<=
B>
C<
D>=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '>' in the first condition would exclude 500 from 'Low'.
Using '>=' in the second condition would misclassify values.
5fill in blank
hard

Fill all three blanks to create an IIF nested function that returns 'Profit', 'Loss', or 'Break-even' based on Profit value.

Tableau
IIF([Profit] [1] 0, 'Profit', IIF([Profit] [2] 0, 'Loss', [3]))
Drag options to blanks, or click blank then click option'
A>
B<
C'Break-even'
D=
Attempts:
3 left
💡 Hint
Common Mistakes
Using '=' instead of '>' or '<' will not cover all cases correctly.
Forgetting to put quotes around 'Break-even' causes errors.

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