PL-300 Model the data Practice Question
You are creating a Power BI semantic model for a university. The model includes a Student table with columns StudentID, Name, and EnrollmentDate. You need to create a calculated column that categorizes students into 'New' if EnrollmentDate is within the last 30 days from today, otherwise 'Existing'. Which DAX formula should you use?
⚠ Common exam trap
Watch out — candidates often confuse time intelligence functions like DATEADD, which require a date table or column, with scalar date arithmetic using TODAY(), leading to invalid syntax or incorrect logic.
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
✓
IF(Student[EnrollmentDate] >= TODAY() - 30, "New", "Existing")
The correct formula must compare the enrollment date to a date 30 days before today and return 'New' or 'Existing' accordingly. Using TODAY() minus 30 days provides the cutoff date. The IF function then evaluates each row and assigns the correct category, ensuring accurate classification based on the enrollment recency.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
IF(Student[EnrollmentDate] >= TODAY() - 30, "Existing", "New")
Why it's wrong here
This formula reverses the logic: it returns 'Existing' if the enrollment date is within the last 30 days, and 'New' otherwise. That is the opposite of the required categorization. The condition is correct, but the true and false results are swapped, so it would misclassify students.
- ✗
IF(Student[EnrollmentDate] >= TODAY() - 30, "New", "Existing", "Unknown")
Why it's wrong here
The IF function in DAX takes only three arguments: a logical test, a value if true, and a value if false. Providing a fourth argument is invalid syntax and will cause an error. This formula incorrectly attempts to add an 'Unknown' category, which is not supported in the standard IF function and would not compile.
- ✗
IF(Student[EnrollmentDate] >= DATEADD(TODAY(), -30, DAY), "New", "Existing")
Why it's wrong here
DATEADD is a time intelligence function that operates on a column of dates or a date table, not on a single scalar date like TODAY(). Using DATEADD with TODAY() as the first argument is invalid because DATEADD expects a table expression or a column reference that yields a set of dates. This formula would result in an error or unexpected behavior when used in a calculated column.
- ✓
IF(Student[EnrollmentDate] >= TODAY() - 30, "New", "Existing")
Why this is correct
This formula uses the IF function to check if the EnrollmentDate is greater than or equal to the date 30 days ago from today. If true, it returns 'New'; otherwise, 'Existing'. The TODAY() function returns the current date, and subtracting 30 gives the date 30 days ago. This correctly categorizes students based on the last 30 days and is a valid calculated column expression.
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 and reviewed by Johnson Ajibi, MSc IT Security
Senior Network & Security Engineer · founder of Courseiva
Last reviewed September 2026 · checked against the official Microsoft exam blueprint
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.