Bird
Raised Fist0
Power BIbi_tool~20 mins

Why intermediate DAX solves business questions in Power BI - Challenge Your Understanding

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Intermediate DAX Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ dax_lod_result
intermediate
2:00remaining
Calculate Total Sales for Each Region Using Intermediate DAX

You have a sales table with columns: Region, SalesAmount. You want to calculate total sales per region using an intermediate DAX measure with SUMX and VALUES.

Which DAX measure produces the correct total sales per region?

ATotal Sales = SUMX(VALUES(Sales[Region]), CALCULATE(SUM(Sales[SalesAmount])))
BTotal Sales = SUM(Sales[SalesAmount])
CTotal Sales = CALCULATE(SUM(Sales[SalesAmount]), ALL(Sales[Region]))
DTotal Sales = SUMX(Sales, Sales[SalesAmount])
Attempts:
2 left
💡 Hint

Think about how VALUES returns unique regions and SUMX iterates over them.

🎯 Scenario
intermediate
2:00remaining
Using Intermediate DAX to Calculate Year-Over-Year Growth

You have a sales table with Year and SalesAmount. You want to calculate the year-over-year (YoY) growth percentage using intermediate DAX.

Which DAX measure correctly calculates YoY growth?

AYoY Growth = SUM(Sales[SalesAmount]) / CALCULATE(SUM(Sales[SalesAmount]), NEXTYEAR(Calendar[Date]))
BYoY Growth = CALCULATE(SUM(Sales[SalesAmount]), PREVIOUSYEAR(Calendar[Date])) / SUM(Sales[SalesAmount])
CYoY Growth = DIVIDE(SUM(Sales[SalesAmount]) - CALCULATE(SUM(Sales[SalesAmount]), SAMEPERIODLASTYEAR(Calendar[Date])), CALCULATE(SUM(Sales[SalesAmount]), SAMEPERIODLASTYEAR(Calendar[Date])))
DYoY Growth = SUM(Sales[SalesAmount]) - SUM(Sales[SalesAmount])
Attempts:
2 left
💡 Hint

Use SAMEPERIODLASTYEAR to get last year's sales for comparison.

🔧 Formula Fix
advanced
2:00remaining
Identify the Error in This Intermediate DAX Measure

Consider this DAX measure intended to calculate average sales per customer:

Avg Sales per Customer = AVERAGEX(Customer, SUM(Sales[SalesAmount]))

What is the error in this measure?

AThe table 'Customer' is not specified correctly; it should be 'Customers' or a valid table name.
BSUM(Sales[SalesAmount]) cannot be used inside AVERAGEX because it returns a scalar, not a row context value.
CAVERAGEX requires a table expression, but 'Customer' is a column, not a table.
DThe measure is correct and will return average sales per customer.
Attempts:
2 left
💡 Hint

Check if the table name used in AVERAGEX exists and is spelled correctly.

❓ visualization
advanced
2:00remaining
Choose the Best Visualization for Showing Sales Trends by Product Category

You want to show how sales change over time for different product categories. Which visualization type best communicates this information clearly and accessibly?

APie chart showing total sales by product category for the latest year.
BStacked area chart with time on the x-axis and sales on the y-axis, colored by product category.
CTable listing sales numbers by product category and year.
DScatter plot with sales on x-axis and product category on y-axis.
Attempts:
2 left
💡 Hint

Think about how to show trends over time and compare categories.

🧠 Conceptual
expert
2:00remaining
Why Use Intermediate DAX Measures Instead of Calculated Columns for Business Questions?

Which reason best explains why intermediate DAX measures are preferred over calculated columns when solving complex business questions in Power BI?

AMeasures store data physically in the model, making them easier to manage.
BCalculated columns are faster to compute and always preferred for performance.
CCalculated columns can be used in visuals but measures cannot.
DMeasures are calculated dynamically based on filters and context, providing flexible and efficient analysis.
Attempts:
2 left
💡 Hint

Think about how measures respond to user interactions and filters.

Practice

(1/5)
1. What is the main reason intermediate DAX helps solve business questions better than basic DAX?
easy
A. It only works with small datasets.
B. It changes the calculation context to focus on specific data.
C. It uses simpler functions that are easier to understand.
D. It avoids using any filters or conditions.

Solution

  1. Step 1: Understand calculation context in DAX

    Intermediate DAX uses functions like CALCULATE to change the context, focusing calculations on specific data subsets.
  2. Step 2: Compare with basic DAX

    Basic DAX performs calculations in the default context without filtering or modifying data focus.
  3. Final Answer:

    It changes the calculation context to focus on specific data. -> Option B
  4. Quick Check:

    Calculation context = focus on data [OK]
Hint: Remember: CALCULATE changes context to answer specific questions [OK]
Common Mistakes:
  • Thinking intermediate DAX is simpler than basic DAX
  • Believing it only works on small data
  • Ignoring the role of filters in calculations
2. Which of the following is the correct syntax to calculate total sales filtered by a specific product category using CALCULATE in DAX?
easy
A. SUM(Sales[Amount]) FILTER Sales[Category] = "Bikes"
B. CALCULATE(SUM(Sales[Amount]), Sales[Category] == "Bikes")
C. CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Category] = "Bikes"))
D. CALCULATE(Sales[Amount], Sales[Category] == "Bikes")

Solution

  1. Step 1: Understand CALCULATE with FILTER

    CALCULATE requires an expression and a filter table; FILTER creates a table filtered by condition.
  2. Step 2: Check syntax correctness

    CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Category] = "Bikes")) correctly uses CALCULATE with SUM and FILTER function with proper syntax.
  3. Final Answer:

    CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Category] = "Bikes")) -> Option C
  4. Quick Check:

    CALCULATE + FILTER = correct syntax [OK]
Hint: Use FILTER inside CALCULATE for complex conditions [OK]
Common Mistakes:
  • Using '==' instead of '=' in DAX
  • Omitting FILTER function when needed
  • Wrong order of arguments in CALCULATE
3. Given the measure:
Total Sales Bikes = CALCULATE(SUM(Sales[Amount]), Sales[Category] = "Bikes")
What will be the result if the Sales table has:
- Bikes sales: 1000
- Accessories sales: 500
- Clothing sales: 300
?
medium
A. 1000
B. 0
C. 500
D. 1800

Solution

  1. Step 1: Understand the filter applied

    The measure filters Sales to only include rows where Category = "Bikes".
  2. Step 2: Sum the filtered sales

    Only Bikes sales (1000) are summed; other categories are excluded.
  3. Final Answer:

    1000 -> Option A
  4. Quick Check:

    Sum filtered by Bikes = 1000 [OK]
Hint: Filter limits sum to Bikes only [OK]
Common Mistakes:
  • Summing all categories ignoring filter
  • Confusing Accessories or Clothing sales as Bikes
  • Assuming filter includes multiple categories
4. You wrote this DAX measure:
Sales Bikes = CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Category] == "Bikes"))
But it returns an error. What is the problem?
medium
A. Using '==' instead of '=' for comparison in DAX.
B. SUM cannot be used inside CALCULATE.
C. FILTER cannot be used inside CALCULATE.
D. Missing quotation marks around Bikes.

Solution

  1. Step 1: Check comparison operator in DAX

    DAX uses single '=' for equality, not '==' like some programming languages.
  2. Step 2: Identify syntax error

    Using '==' causes syntax error; replacing with '=' fixes it.
  3. Final Answer:

    Using '==' instead of '=' for comparison in DAX. -> Option A
  4. Quick Check:

    Use '=' for equality in DAX [OK]
Hint: Use single '=' for comparisons in DAX [OK]
Common Mistakes:
  • Confusing DAX syntax with other languages
  • Thinking FILTER can't be inside CALCULATE
  • Forgetting quotes around text values
5. You want to calculate the percentage growth of sales for the current year compared to the previous year using intermediate DAX. Which approach correctly uses CALCULATE and FILTER to achieve this?
hard
A. Growth % = SUM(Sales[Amount]) - SUM(Sales[Amount])
B. Growth % = SUM(Sales[Amount]) / SUM(Sales[Amount])
C. Growth % = CALCULATE(SUM(Sales[Amount]), Sales[Year] = MAX(Sales[Year]) + 1)
D. Growth % = DIVIDE(SUM(Sales[Amount]) - CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Year] = MAX(Sales[Year]) - 1)), CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Year] = MAX(Sales[Year]) - 1)))

Solution

  1. Step 1: Calculate current and previous year sales

    Use SUM(Sales[Amount]) for current year and CALCULATE with FILTER for previous year sales.
  2. Step 2: Compute percentage growth

    Subtract previous year sales from current year sales, then divide by previous year sales using DIVIDE for safe division.
  3. Final Answer:

    Growth % = DIVIDE(SUM(Sales[Amount]) - CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Year] = MAX(Sales[Year]) - 1)), CALCULATE(SUM(Sales[Amount]), FILTER(Sales, Sales[Year] = MAX(Sales[Year]) - 1))) -> Option D
  4. Quick Check:

    Use CALCULATE + FILTER for previous year, DIVIDE for growth [OK]
Hint: Use CALCULATE with FILTER for previous year sales [OK]
Common Mistakes:
  • Not filtering previous year correctly
  • Dividing by zero without DIVIDE function
  • Using wrong year comparison operators
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard