Practice Questions: Create semi-additive measures (PL-300 Exam Prep)

This post is a part of the PL-300: Microsoft Power BI Data Analyst Exam Prep Hub; and this topic falls under these sections:
Model the data (25–30%)
--> Create model calculations by using DAX
--> Create semi-additive measures


Below are 10 practice questions (with answers and explanations) for this topic of the exam.
There are also 2 practice tests for the PL-300 exam with 60 questions each (with answers) available on the hub.

Practice Questions

1. Identifying a Semi-Additive Measure

Question:
Which of the following metrics is most likely to require a semi-additive measure?

A. Total Sales Amount
B. Quantity Sold
C. Daily Inventory Balance
D. Total Number of Orders

Correct Answer: C

Explanation:
Inventory balance represents a snapshot in time, not an accumulated activity. Summing it across dates produces incorrect totals. Sales, quantity, and orders are fully additive across time.


2. Why SUM Produces Incorrect Results

Question:
A report sums daily account balances over a month and produces inflated totals. What is the root cause?

A. Incorrect relationships
B. Using SUM instead of a time-aware calculation
C. Missing a date hierarchy
D. Incorrect data type

Correct Answer: B

Explanation:
Account balances are semi-additive. Using SUM across time double-counts values. A time-aware calculation such as retrieving the last value is required.


3. Choosing the Correct DAX Pattern

Question:
Which DAX expression correctly returns the ending balance for a selected period?

A.

SUM(FactBalances[Balance])

B.

AVERAGE(FactBalances[Balance])

C.

CALCULATE(
    SUM(FactBalances[Balance]),
    LASTDATE('Date'[Date])
)

D.

COUNT(FactBalances[Balance])

Correct Answer: C

Explanation:
CALCULATE combined with LASTDATE ensures that only the final date in the current filter context is evaluated, which is the correct behavior for ending balances.


4. Handling Missing Dates

Question:
Some dates have no balance records. Which function ensures the last available balance is returned?

A. LASTDATE
B. FIRSTDATE
C. LASTNONBLANK
D. MAX

Correct Answer: C

Explanation:
LASTNONBLANK finds the most recent date with data, making it ideal when fact data is not recorded every day.


5. Average Over Time Scenario

Question:
You need to report the average daily inventory level for a month. Which approach is correct?

A. SUM inventory values
B. Use AVERAGE on the inventory column
C. Use AVERAGEX over the Date table
D. Use COUNT of inventory rows

Correct Answer: C

Explanation:
AVERAGEX iterates over each date, evaluating inventory per day and then averaging the results. This is the correct approach for semi-additive snapshot values.


6. Beginning Balance Requirement

Question:
Which function should be used to calculate a beginning-of-period balance?

A. LASTDATE
B. FIRSTDATE
C. MAX
D. ENDOFMONTH

Correct Answer: B

Explanation:
FIRSTDATE returns the earliest date in the current filter context, making it ideal for beginning balances.


7. Identifying Incorrect Business Logic

Question:
A measure returns correct daily balances but incorrect monthly totals. What is the most likely issue?

A. The Date table is inactive
B. The measure uses a calculated column
C. The measure is additive over time
D. Cross-filter direction is incorrect

Correct Answer: C

Explanation:
Snapshot metrics should not aggregate across time. If monthly totals are incorrect, the measure is likely being summed instead of using a semi-additive pattern.


8. Relationship to Time Intelligence

Question:
Why is a proper Date table critical for semi-additive measures?

A. It improves report performance
B. It enables slicers
C. Time intelligence functions require it
D. It reduces model size

Correct Answer: C

Explanation:
Functions like LASTDATE, FIRSTDATE, and ENDOFMONTH rely on a contiguous, marked Date table to evaluate time context correctly.


9. Month-End Balance Calculation

Question:
Which DAX expression correctly returns the month-end balance?

A.

SUM(FactBalances[Balance])

B.

CALCULATE(
    SUM(FactBalances[Balance]),
    ENDOFMONTH('Date'[Date])
)

C.

AVERAGEX('Date', FactBalances[Balance])

D.

COUNT(FactBalances[Balance])

Correct Answer: B

Explanation:
ENDOFMONTH restricts the calculation to the last date of the month, which is required for month-end snapshot metrics.


10. Recognizing Semi-Additive Behavior

Question:
Which statement best describes a semi-additive measure?

A. It aggregates correctly across all dimensions
B. It should always be stored as a calculated column
C. It aggregates across some dimensions but not time
D. It cannot use CALCULATE

Correct Answer: C

Explanation:
Semi-additive measures aggregate normally across dimensions like product or region but require special logic when evaluated across time.


Final Exam Tips

  • If a value represents a state, not an activity → think semi-additive
  • Avoid SUM across dates for snapshot metrics
  • Use CALCULATE with time functions
  • Expect scenario-based questions, not pure syntax questions

Go back to the PL-300 Exam Prep Hub main page

Leave a comment