PL-300 cheat sheet
Last-minute reference for PL-300. Prepare, model and visualise are equal in weight; manage and secure is the smallest.
Exam facts
| Duration | 100 minutes |
| Passing score | 700 / 1000 |
| Price | Set per country or region; shown at booking |
| Languages | 10 |
| Renewal | Free, every 12 months |
Skill areas
| Area | Weight |
|---|---|
| Prepare the data | 25–30% |
| Model the data | 25–30% |
| Visualize and analyze the data | 25–30% |
| Manage and secure Power BI | 15–20% |
Requirement to answer
| Requirement | Answer |
|---|---|
| Stack two tables with the same columns | Append Queries |
| Add columns from another table by key | Merge Queries |
| Months as columns, need one row per month | Unpivot Other Columns |
| Derived query that follows the original | Reference |
| Independent copy of a query | Duplicate |
| Switch source server without editing queries | Parameter |
| Profile all rows, not the first 1000 | Column profiling on entire data set |
| Very large source, live data | DirectQuery |
| Second date column on the fact table | Inactive relationship + USERELATIONSHIP |
| Ratio that totals correctly | Measure with DIVIDE |
| Percent of total | CALCULATE with ALL / REMOVEFILTERS |
| Year to date, last year | TOTALYTD, SAMEPERIODLASTYEAR on a marked date table |
| Balance that must not add across time | Semi-additive: LASTDATE / CLOSINGBALANCE |
| Same time variants across many measures | Calculation group |
| Find the slow visual | Performance Analyzer |
| Smaller model | Remove columns, reduce granularity, star schema |
| Right-click to a filtered detail page | Drillthrough |
| Small chart on hover | Tooltip page |
| Toggle between visuals | Bookmarks + buttons + Selection pane |
| Same slicer on several pages | Sync slicers |
| Pixel-perfect printable output | Paginated report |
| Phone-friendly | Phone (mobile) layout |
| Why did the value rise | Analyze: Explain the increase |
| Read-only content for many consumers | App with audiences |
| On-premises source refresh | On-premises data gateway |
| Alert when a tile passes a value | Data alert on a dashboard tile |
| Only authorised reviewers mark trusted | Certified endorsement |
| Each user sees own rows | Dynamic RLS with USERPRINCIPALNAME |
DAX patterns
| Pattern | Expression |
|---|---|
| Percent of total | DIVIDE([Sales], CALCULATE([Sales], ALL('Product'))) |
| Last year | CALCULATE([Sales], SAMEPERIODLASTYEAR('Date'[Date])) |
| Year to date | TOTALYTD([Sales], 'Date'[Date]) |
| Use inactive relationship | CALCULATE([Sales], USERELATIONSHIP(Sales[ShipDate], 'Date'[Date])) |
| Closing balance | CALCULATE(SUM(Stock[Units]), LASTDATE('Date'[Date])) |
| Dynamic RLS filter | [Email] = USERPRINCIPALNAME() |
Workspace roles
| Role | Remember |
|---|---|
| Admin | Everything |
| Member | Edits, publishes and updates the app, adds people with equal or lower roles |
| Contributor | Creates and edits content, cannot manage access |
| Viewer | Views 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.