PL-300 study materials
PL-300 study resources

PL-300 cheat sheet

PL-300 · Keep the key ideas within reach.

Quick reference

Prepare the data

  • Column profiling in Power Query scans the first 1000 rows by default; select 'Column profiling based on entire dataset' in the status bar to profile every row.

  • Merge joins tables horizontally on matching key columns (Inner, Left Outer, Right Outer, Full Outer, Left Anti, Right Anti); Append stacks tables vertically, aligning rows by matching column names.

  • Query folding translates steps into one native query at the source; steps such as Add Index or merging a non-foldable source break folding - confirm with View Native Query.

  • Use 'Using Locale' when a text column must be converted under a specific culture, for example resolving dd/MM/yyyy versus MM/dd/yyyy source dates.

  • Unpivot Columns converts wide cross-tab columns into Attribute/Value pairs; Pivot Column performs the inverse and aggregates duplicate values.

  • Group By supports Sum, Average, Min, Max, Count Rows, Count Distinct Rows and All Rows; All Rows returns the detail rows as a nested table column.

  • Privacy levels are None, Public, Organizational and Private; when sources are combined the most restrictive level applies and may prevent folding.

  • Errors are values in Power Query: Remove Errors deletes the row, Replace Errors substitutes a value, and M handles them with try ... otherwise.

  • Dataflows run the transformation in the Power BI service and store output tables in the workspace's Azure Data Lake Storage Gen2 account.

Quick reference

Model the data

  • Star schema: fact tables hold keys and numeric measures, dimension tables hold descriptive attributes, and relationships run one-to-many from dimension to fact with single-direction filtering.

  • Filter context flows from the 'one' side to the 'many' side; the reverse requires bidirectional cross-filtering, which can raise an ambiguous relationship error when multiple paths exist.

  • CALCULATE(expression, filters...) evaluates the expression in a modified filter context and overwrites existing filters on the same columns unless KEEPFILTERS is applied.

  • SUMX, AVERAGEX and COUNTX iterate row by row over a table and aggregate an expression; use them when the expression must be evaluated per row before aggregation.

  • USERELATIONSHIP inside CALCULATE activates an inactive relationship for that calculation only; RELATED returns one value from the one side and RELATEDTABLE returns many-side rows.

  • A date table needs one row per date, contiguous dates covering the data, no blank dates, and must be set with 'Mark as date table' before time-intelligence functions behave correctly.

  • DIVIDE(numerator, denominator [, alternate]) returns BLANK, or the alternate value, instead of an error when the denominator is zero or blank.

  • Calculated columns and calculated tables are computed at refresh and stored in the model; measures are computed at query time and consume no model memory.

  • Variables declared with VAR and returned with RETURN are evaluated once, so reuse them to avoid recomputing an expensive expression.

Quick reference

Visualize and analyze the data

  • Filter scope: visual-level applies to one visual, page-level to one page, report-level to all pages, and drillthrough filters apply only when a drillthrough page is opened.

  • Sync slicers from View > Sync slicers to apply one slicer selection across pages; sync and visibility are set independently for each page.

  • Bookmarks capture display state (visibility), data state (filters and slicers) and the current page; use them with buttons for navigation and storytelling.

  • Drillthrough requires a drillthrough field on the target page, and the 'Keep all filters' option preserves the source page filter context.

  • A what-if parameter creates a table with GENERATESERIES plus a slicer; read the selected value in DAX with SELECTEDVALUE(Parameter[Value]).

  • Key Influencers ranks which categorical fields most increase or decrease a chosen metric and needs a model with an imported or DirectQuery table containing explanatory columns.

  • Performance Analyzer logs DAX query time, visual display time and rendering time per visual, so it locates slow visuals rather than measuring total page load.

  • A dashboard is a single-page canvas of tiles pinned from one or more reports and supports data alerts and Q&A; only tiles pinned from a live report page carry that page's filters.

  • Conditional formatting can be driven by rules, a gradient or a field value, and applied to background color, font color, data bars, icons and web URL.

Quick reference

Manage and secure Power BI

  • Workspace roles: Admin manages the workspace, members and deletion; Member publishes and updates the app; Contributor creates and edits content but cannot publish the app; Viewer is read-only.

  • Apps package workspace content for distribution with audiences, where each audience receives a different content set; content changes reach users only after the app is updated.

  • Deployment pipelines move content through Development, Test and Production stages using deployment rules to swap dataset parameters per stage; permissions are not copied.

  • An on-premises data gateway in standard mode supports scheduled refresh and DirectQuery to on-premises sources; personal mode is bound to one user and cannot be shared.

  • Scheduled refresh limits: 8 refreshes per day per dataset on Pro or shared capacity, 48 per day on Premium, PPU or Fabric capacity.

  • Row-level security roles are authored in Desktop as DAX table filters, verified with View as role, and assigned to users or groups in the dataset's Security page; workspace Admins, Members and Contributors can see all data.

  • Promoted endorsement can be applied by any author with write permission; Certified endorsement requires a certifier designated by the Power BI admin.

  • Sensitivity labels come from Microsoft Purview, travel with exported files, and can enforce encryption and restrict export to Excel, PDF and PowerPoint.

  • Dynamic RLS typically matches USERPRINCIPALNAME() against a security mapping table; sharing a report grants read access, while Build permission on the dataset lets recipients create content on it.