Courseiva
Prepare the datamediumMultiple ChoiceObjective-mapped

PL-300 Prepare the data Practice Question

You have a Power BI dataset that includes a date table created using CALENDAR(). You need to ensure that the date table always covers the full range of dates present in the fact table, even after new data is loaded. What should you do?

⚠ Common exam trap

Watch out — candidates often choose Option A (fixed dates) because they think a static range is simpler and sufficient, but they overlook the requirement for the date table to dynamically cover the full range after new data loads, which only a dynamic CALENDAR expression can achieve.

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

Create the date table using CALENDAR(MIN('Fact'[Date]), MAX('Fact'[Date]))

Using `CALENDAR(MIN('Fact'[Date]), MAX('Fact'[Date]))` dynamically computes the date range from the fact table's actual data. This ensures that when new data is loaded with dates outside the previous range, the date table automatically expands to cover the full range, maintaining referential integrity for time intelligence calculations.

Answer analysis

Option-by-option breakdown

For each option: why learners choose it and why it is or isn't the right answer here.

  • Use a fixed start and end date in the CALENDAR function

    Why it's wrong here

    A hard-coded CALENDAR range, such as CALENDAR(DATE(2020,1,1), DATE(2023,12,31)), is static and will not expand when new transactions are loaded with dates outside that range. This can leave future date values in the fact table without matching rows in the date table, causing orphaned records and broken relationships after a refresh. You would also need to manually edit the DAX every time your data span grows, which defeats the purpose of a maintainable model.

  • Create a disconnected date table

    Why it's wrong here

    A disconnected date table is not joined to the fact table via a physical relationship, so a normal filter applied to its dates will not propagate to fact rows. To make it useful, you would have to write complex measure-level DAX using functions like TREATAS to bridge the filter context, which is error-prone and hinders intuitive reporting. For a self-service data model, the date table should be connected to the fact column so standard slicers, visuals, and time intelligence work without custom workarounds.

  • Create the date table using CALENDAR(MIN('Fact'[Date]), MAX('Fact'[Date]))

    Why this is correct

    CALENDAR(MIN('Fact'[Date]), MAX('Fact'[Date])) generates a date table whose range is dynamically derived from the fact table's minimum and maximum dates on each refresh. This ensures the date table always covers the exact span of transactional activity, automatically expanding when new data includes later or earlier dates. Because the range is computed rather than hard-coded, it requires no manual maintenance and provides a continuous set of date keys suitable for marking as the model's date table and enabling time intelligence.

  • Enable Auto Date/Time in the model

    Why it's wrong here

    Enabling Auto Date/Time creates hidden date hierarchies for each date column, but it does not create a single, reusable date table that you can mark as the model's date table. These auto-generated tables are based on the current min and max of each column; after a refresh that adds rows with a wider date range, they may update, but they are still isolated per column and cannot include custom attributes like fiscal quarters. Additionally, they are not visible as tables in the Fields pane, making them awkward for consistent time intelligence and reporting.

About these practice questions

Courseiva writes every PL-300 question from scratch — 217 in total, each with an explanation and a wrong-answer breakdown. None are copied from real exams or dumps. Learn why practice questions differ from exam dumps →

How Courseiva writes practice questions · Editorial policy

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.