PL-300 Visualize and analyze the data Practice Question
Exhibit
Refer to the exhibit.
```dax
Sales YoY % =
VAR CurrentYearSales = SUM('Sales'[Amount])
VAR PreviousYearSales = CALCULATE(SUM('Sales'[Amount]), SAMEPERIODLASTYEAR('Date'[Date]))
RETURN
DIVIDE(CurrentYearSales - PreviousYearSales, PreviousYearSales)
```You have a Power BI report with the DAX measure shown in the exhibit. Users report that the measure returns blank for some months even though sales data exists for both current and previous years. What is the most likely cause?
Answer choices
Why each option matters
Answer the question above first, then reveal the full breakdown to understand why each option is right or wrong.
Correct answer & explanation
✓
The 'Date' table is not marked as a date table or is missing dates.
The correct answer is B: the 'Date' table is not marked as a date table or is missing dates. Time-intelligence functions such as SAMEPERIODLASTYEAR, DATEADD, and TOTALYTD rely on a contiguous, complete date table marked as a date table; if dates are missing or the table is not marked, the measure returns blank for those months even when underlying sales exist. Option A is wrong because SUM vs. SUMX affects row-context aggregation, not time-intelligence blank results. Option C is wrong because DIVIDE handles division by zero by returning BLANK or an alternate result, which is not the cause of missing months. Option D is wrong because single cross-filter direction is the default and correct setting for a one-to-many Date-to-Sales relationship and does not cause blanks in time intelligence.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
The measure uses SUM instead of SUMX.
Why it's wrong here
Using SUM instead of SUMX is not the cause of the blank. SUM is a scalar aggregation that sums a single column and is functionally equivalent to SUMX over a column iterator for a plain column reference, with better performance. SUMX would only be required if the expression needed a row-by-row calculation, such as Quantity * Price, which is not implied by the scenario. The blank result stems from a filter context issue in time intelligence, not from the choice of aggregation function.
- ✓
The 'Date' table is not marked as a date table or is missing dates.
Why this is correct
SAMEPERIODLASTYEAR is a time intelligence function that requires a contiguous, continuous set of dates to shift the filter context back one year. If the 'Date' table is not explicitly marked as a date table (via the 'Mark as Date Table' setting) or is missing dates that exist in the 'Sales' table, the function cannot establish the previous year's date range and returns BLANK. Marking the table ensures Power BI validates that dates are unique and cover the full span of data, which is a prerequisite for reliable year-over-year calculations.
- ✗
The DIVIDE function is incorrectly handling division by zero.
Why it's wrong here
DIVIDE is specifically built to handle division by zero by returning BLANK instead of an error, so it would not cause a blank result when the denominator is non-zero. In this case, the blank appears because the previous year sales value itself is blank due to the broken time intelligence filter, causing DIVIDE to evaluate as BLANK. The function is doing exactly what it should; the root cause lies upstream in the date context, not in the division logic.
- ✗
The relationship between 'Sales' and 'Date' is set to cross-filter direction single.
Why it's wrong here
Cross-filter direction controls whether filters propagate from one table to the other in a relationship (single or both directions), which affects how unrelated tables interact in a report. It has no bearing on how SAMEPERIODLASTYEAR shifts dates, because time intelligence operates on the date column values and the existing filter context, not on the filter propagation mechanics. A single-direction relationship from 'Date' to 'Sales' is actually the standard setup and would not prevent the function from working if the date table is properly configured.
Go deeper
Related to this question
About these practice questions
One of 524 original PL-300 practice questions on Courseiva, each with a full explanation and wrong-answer analysis — not exam dumps or protected exam content. Learn why practice questions differ from exam dumps →
JA
Written by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
This PL-300 practice question is part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style practice questions with explanations, topic-based practice, mock exams, readiness tracking, and study analytics to help learners prepare for the PL-300 exam.