PL-300 cheat sheet

Updated October 9, 2026

Last-minute reference for PL-300. Prepare, model and visualise are equal in weight; manage and secure is the smallest.

Exam facts

Duration100 minutes
Passing score700 / 1000
PriceSet per country or region; shown at booking
Languages10
RenewalFree, every 12 months

Skill areas

AreaWeight
Prepare the data25–30%
Model the data25–30%
Visualize and analyze the data25–30%
Manage and secure Power BI15–20%

Requirement to answer

RequirementAnswer
Stack two tables with the same columnsAppend Queries
Add columns from another table by keyMerge Queries
Months as columns, need one row per monthUnpivot Other Columns
Derived query that follows the originalReference
Independent copy of a queryDuplicate
Switch source server without editing queriesParameter
Profile all rows, not the first 1000Column profiling on entire data set
Very large source, live dataDirectQuery
Second date column on the fact tableInactive relationship + USERELATIONSHIP
Ratio that totals correctlyMeasure with DIVIDE
Percent of totalCALCULATE with ALL / REMOVEFILTERS
Year to date, last yearTOTALYTD, SAMEPERIODLASTYEAR on a marked date table
Balance that must not add across timeSemi-additive: LASTDATE / CLOSINGBALANCE
Same time variants across many measuresCalculation group
Find the slow visualPerformance Analyzer
Smaller modelRemove columns, reduce granularity, star schema
Right-click to a filtered detail pageDrillthrough
Small chart on hoverTooltip page
Toggle between visualsBookmarks + buttons + Selection pane
Same slicer on several pagesSync slicers
Pixel-perfect printable outputPaginated report
Phone-friendlyPhone (mobile) layout
Why did the value riseAnalyze: Explain the increase
Read-only content for many consumersApp with audiences
On-premises source refreshOn-premises data gateway
Alert when a tile passes a valueData alert on a dashboard tile
Only authorised reviewers mark trustedCertified endorsement
Each user sees own rowsDynamic RLS with USERPRINCIPALNAME

DAX patterns

PatternExpression
Percent of totalDIVIDE([Sales], CALCULATE([Sales], ALL('Product')))
Last yearCALCULATE([Sales], SAMEPERIODLASTYEAR('Date'[Date]))
Year to dateTOTALYTD([Sales], 'Date'[Date])
Use inactive relationshipCALCULATE([Sales], USERELATIONSHIP(Sales[ShipDate], 'Date'[Date]))
Closing balanceCALCULATE(SUM(Stock[Units]), LASTDATE('Date'[Date]))
Dynamic RLS filter[Email] = USERPRINCIPALNAME()

Workspace roles

RoleRemember
AdminEverything
MemberEdits, publishes and updates the app, adds people with equal or lower roles
ContributorCreates and edits content, cannot manage access
ViewerViews only; RLS applies

Common traps

  • Merge adds columns; append adds rows.
  • Only one active relationship between two tables.
  • Time intelligence needs a contiguous, marked date table.
  • Calculated columns are row-by-row at refresh; measures respond to filter context.
  • RLS roles need members added in the service; Admin, Member and Contributor bypass them.
  • Promote is open to writers; certify is for authorised reviewers.
  • A cloud source usually needs no gateway.

See the exam tips and the study plan for the longer version.