PL-300 Model the data Practice Question
You are a Power BI data analyst for a financial services company. Your semantic model contains a fact table named Transactions with columns TransactionID, AccountID, TransactionDate, and Amount. You also have a dimension table named Accounts with AccountID, AccountType, and OpeningDate. You need to create a calculated column in the Transactions table that returns the account type for each transaction. Which DAX function should you use?
⚠ Common exam trap
The trap here is choosing LOOKUPVALUE because it seems straightforward, but it ignores the existing relationship that RELATED can leverage more efficiently and with less code.
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
✓
RELATED(Accounts[AccountType])
RELATED is the correct function to retrieve a value from the one side of a relationship in a calculated column on the many side. It uses the existing relationship between Transactions and Accounts to return the account type for each transaction. LOOKUPVALUE is a fallback when no relationship exists, while CALCULATE and USERELATIONSHIP serve different purposes.
Answer analysis
Option-by-option breakdown
For each option: why learners choose it and why it is or isn't the right answer here.
- ✗
LOOKUPVALUE(Accounts[AccountType], Accounts[AccountID], Transactions[AccountID])
Why it's wrong here
LOOKUPVALUE can retrieve a value from another table based on matching criteria, but it is unnecessary when a relationship exists. It is slower because it scans the table for each row. RELATED is optimized for relationship-based lookups and should be used instead. LOOKUPVALUE is better when no relationship exists or when multiple criteria are needed.
- ✓
RELATED(Accounts[AccountType])
Why this is correct
RELATED is used in a calculated column on the many side of a relationship to fetch a value from the related table on the one side. Since Transactions is related to Accounts via AccountID, RELATED(Accounts[AccountType]) returns the account type for each transaction. This function leverages the existing relationship and is efficient for row-level lookups.
- ✗
USERELATIONSHIP(Accounts[AccountID], Transactions[AccountID])
Why it's wrong here
USERELATIONSHIP is used within CALCULATE to activate an inactive relationship for a measure calculation. It does not return a value by itself and is not applicable in a calculated column for row-level lookups. It is meant for scenarios where multiple relationships exist between tables and you need to specify which one to use in a measure.
- ✗
CALCULATE(MAX(Accounts[AccountType]), RELATEDTABLE(Accounts))
Why it's wrong here
CALCULATE with RELATEDTABLE is used in measures to modify filter context, not for simple row-level lookups in calculated columns. RELATEDTABLE returns a table of related rows, and MAX would attempt to aggregate a text column, which is invalid. This approach is overly complex and incorrect for retrieving a single related value.
Go deeper
Related to this question
About these practice questions
Courseiva writes every PL-300 question from scratch — 524 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 →
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.