PL-300: Microsoft Power BI Data Analyst Practice Exam
Validates ability to prepare data, model data, visualize and analyze data, and deploy and maintain assets using Power BI.
Practice 609 exam-style PL-300 questions with full answer explanations, then take timed mock exams that score like the real thing.
What the PL-300 exam covers
- Prepare the Data168 questions
- Model the Data153 questions
- Visualize and Analyze the Data147 questions
- Deploy and Maintain Assets141 questions
Free PL-300 sample questions
A sample of 10 questions with answers and explanations. Sign up free to practice all 609.
-
You are connecting to a SQL Server database using Power Query. You notice that some transformation steps have a green bar indicator in the Applied Steps pane. What does this indicate?
- AThe step uses a native query that cannot be modified
- BThe step contains an error
- CThe step is being folded back to the data sourceCorrect
- DThe step was automatically generated by Power Query
✓ Correct answer: CIn the Applied Steps pane, Power Query indicates query folding capability for steps that it can translate into native source operations such as a SQL statement. When folding occurs, the transformation is executed by the SQL Server engine rather than locally in Power Query's mashup engine, which reduces the volume of data transferred and improves refresh performance. The indicator tells you the source is still doing the work, so keeping folding intact for as long as possible is a key optimization goal.
Why the other options are wrong- AA native query that cannot be modified is not what the folding indicator represents; folding means the step is being translated to native operations, not that you are locked into a fixed native query.
- BAn error in the step would surface as an error icon or warning, not as the green indicator that signals successful query folding.
- DAutomatic generation by Power Query is unrelated to folding; the indicator reflects where the step executes (the source) rather than how the step was created.
-
You have a table with columns for Product, Month, and SalesAmount. The Month column contains values like 'January', 'February', etc. as separate rows. You need to transform this so each month becomes its own column with sales values. Which Power Query transformation should you apply?
- Aroup By
- BUnpivot Columns
- Civot ColumnCorrect
- Dranspose
✓ Correct answer: CWhen you need to transform row values into column headers (converting each distinct Month value into its own column with corresponding SalesAmount values), you are performing a pivot operation. The Pivot Column transformation takes the unique values from a column and creates new columns for each unique value, with aggregated data from another column filling the cells. This is the inverse of unpivoting.
Why the other options are wrong- Aroup By is incorrect because grouping aggregates data based on unique values in a column but does not rotate the data structure; it produces summarized results in rows, not columns.
- BUnpivot Columns is incorrect because unpivoting converts columns into rows, which is the opposite of what is needed here.
- Dranspose is incorrect because transposing merely flips rows and columns but does not use the values from the Month column as new column headers or properly aggregate sales values.
-
A data analyst notices that a Power Query step that groups rows by region and sums revenue breaks query folding against an Azure SQL Database. The analyst needs this aggregation but also wants to keep query folding intact for upstream steps. What should the analyst do?
- AReplace the Power Query grouping with a SQL view in Azure SQL Database and connect to the viewCorrect
- BMove the grouping step before all filter steps
- CRight-click the step and select 'View Native Query' to verify folding, then rewrite the step using Table.Group with a foldable expression
- DSwitch the connection to DirectQuery mode to avoid folding concerns
✓ Correct answer: AGrouping and aggregation operations in Power Query typically break query folding because these operations require reading all rows to calculate group-level sums. However, when you create a SQL view in Azure SQL Database that performs the grouping and aggregation at the database level, Power Query can fold the connection to that view as a native SELECT statement against a pre-computed aggregate. This maintains folding on upstream filter steps since the database returns pre-aggregated data, eliminating the need for Power Query to perform expensive row-by-row processing locally.
Why the other options are wrong- BMove the grouping step before all filter steps is incorrect because the order of steps does not affect whether Table.Group is foldable; this operation breaks folding regardless of step position.
- CRight-click the step and select 'View Native Query' to verify folding, then rewrite the step using Table.Group with a foldable expression is incorrect because most GroupBy operations are not foldable in Power Query regardless of how they are written; the M language has limited support for folding complex aggregations.
- DSwitch the connection to DirectQuery mode is incorrect because this changes the entire data refresh mechanism and does not address the underlying problem that the grouping operation itself breaks folding.
-
You are optimizing a Power BI data model and want to reduce its size. The model contains a column called TransactionDescription with high-cardinality text values that is never used in filters, slicers, or relationships. What should you do?
- ASet the column's Summarize By property to None
- BMove the column to a separate table with a one-to-one relationship
- CRemove the column from the model if it is not needed, or keep it only in the source queryCorrect
- DChange the column's data type to Binary
✓ Correct answer: CHigh-cardinality text columns that are never used in filtering, relationships, or measures consume significant memory in a Power BI model because each unique value must be indexed and stored. Since TransactionDescription is not used for any analytical purpose, the most effective way to reduce model size is to exclude it entirely from the imported data model. If the column might be needed for drill-through reports or future requirements, it can remain in the source query but be excluded from the Power BI import, keeping the model lean while preserving the option to add it later.
Why the other options are wrong- ASet the column's Summarize By property to None is incorrect because this property controls aggregation behavior in visuals, not memory consumption; the column data is still stored in memory regardless of summarization setting.
- BMove the column to a separate table with a one-to-one relationship is incorrect because this adds complexity and does not reduce memory usageāthe data still resides in the model with the added overhead of maintaining a relationship.
- DChange the column's data type to Binary is incorrect because changing data type does not address the fundamental issue of high cardinality consuming memory.
-
An analyst creates a calculated column in the Sales table: PriceCategory = IF(Sales[UnitPrice] > 100, "Premium", IF(Sales[UnitPrice] > 50, "Standard", "Budget")). After publishing, the analyst realizes this logic should have been a measure instead. Why might a measure be preferred?
- ACalculated columns cannot use IF statements
- BMeasures are faster to write than calculated columns
- CA calculated column consumes storage for every row in the table and is computed at refresh time, whereas a measure is computed on demand and does not increase the dataset sizeCorrect
- DMeasures can be used in relationships but calculated columns cannot
✓ Correct answer: CCalculated columns are materialized at refresh time and stored in the data model, consuming memory for every row in the Sales table. Each row must hold the computed PriceCategory value. In contrast, measures are computed on-demand only when referenced in a visual or calculation, consuming no additional storage. For static logic like price categorization that does not need to respond to filter context changes, a calculated column is actually more efficient at query time. However, for flexible logic that should adapt to user filters and slicers, measures are preferred because they adjust dynamically. The storage penalty of calculated columns becomes significant in large fact tables and affects the overall dataset size uploaded to Power BI Service.
Why the other options are wrong- ACalculated columns can use IF statements and any DAX function, so that is not the limiting factor.
- BMeasures are not faster to write; the performance difference is in storage and query evaluation, not authoring speed.
- DMeasures and calculated columns are both independent of relationships; neither can be used in relationship definitions.
-
You need to create a visualization that shows the proportion of sales for each product category as part of a whole. Which visual type is most appropriate?
- Acatter plot
- Bonut chartCorrect
- Caterfall chart
- Dtacked bar chart
✓ Correct answer: BA donut chart displays each category as a slice of a single ring, conveying each product category's share of the whole sales total. It is well suited to part-to-whole comparisons across a small number of categories. That matches the goal of showing proportions of a total.
Why the other options are wrong- AA scatter plot shows the relationship between two numeric measures, not part-to-whole proportions.
- CA waterfall chart shows cumulative additions and subtractions to a running total, not category shares of a whole.
- DA stacked bar chart can show composition but is better for comparing composition across multiple bars; for a single whole split into category proportions, the donut chart is the intended answer.
-
You are distributing Power BI content to business users. Which TWO methods can you use to share reports with users who do not have edit permissions? (Choose two.)
- AShare a report link with view permissionsCorrect
- BPublish an app from a workspaceCorrect
- CExport the .pbix file and email it
- DGive users Admin role in the workspace
✓ Correct answer: A, BThese are the two primary methods to distribute Power BI reports to users without giving them edit permissions. Direct report sharing with view permissions provides access to individual reports while restricting modifications. Publishing an app from a workspace packages multiple reports and dashboards together and distributes them to users with view-only access by default. Both methods maintain content governance while enabling consumption.
Why the other options are wrong- CExport the .pbix file and email it is incorrect because sharing .pbix files requires recipients to have Power BI Desktop and grants full editing capabilities when they open the file, violating the view-only permission requirement.
- DGive users Admin role in the workspace is incorrect because Admin role provides full management and editing capabilities, which is the opposite of view-only access and violates the principle of least privilege.
-
You need to publish a Power BI report to the Power BI service and configure a scheduled refresh. The data source is an Excel file stored on a SharePoint Online site. Which gateway is required?
- AOn-premises data gateway in personal mode
- BOn-premises data gateway in standard mode
- CNo gateway is required because SharePoint Online is a cloud data sourceCorrect
- DAzure Data Factory integration runtime
✓ Correct answer: CAn on-premises data gateway is only needed to reach data that lives behind the corporate firewall. SharePoint Online is a Microsoft cloud service, so the Power BI Service can connect to it directly using cloud credentials without any gateway. Scheduled refresh works against it without installing a gateway.
Why the other options are wrong- AA personal-mode gateway is for on-premises sources on an individual's machine, which is unnecessary for a cloud source.
- BA standard-mode gateway bridges on-premises data, not cloud sources like SharePoint Online.
- DAzure Data Factory integration runtime is unrelated to Power BI scheduled refresh of a cloud SharePoint file.
-
Which best practice should be followed when managing Model within Model the Data?
- APerform all changes manually through the management console
- BAutomate repeatable processes using infrastructure as codeCorrect
- CAvoid automation to maintain direct hands-on control
- DUse undocumented ad-hoc scripts maintained by one person
✓ Correct answer: BModel management practices should prioritize automation through infrastructure as code to ensure model changes are consistent, auditable, and easily deployable across environments. IaC enables version control of model definitions, peer review of changes, and reproducible deployments. This automation creates a reliable, scalable foundation for maintaining complex data models.
Why the other options are wrong- APerform all changes manually through the management console is incorrect because manual changes lack auditability and are difficult to reproduce consistently.
- CAvoid automation to maintain direct hands-on control is incorrect because manual model management scales poorly and introduces error-prone, inconsistent results.
- DUse undocumented ad-hoc scripts maintained by one person is incorrect because this creates fragility, prevents knowledge sharing, and introduces organizational risk when that individual becomes unavailable.
-
A consultant is reviewing the DAX measures configuration at Adventure Works. Which two actions should be performed to optimize the implementation? (Choose two.)
- Aiterator functions
- BRole-playing dimensions
- Csynonyms for Q&ACorrect
- Ddate tablesCorrect
- EDisable DAX measures monitoring
✓ Correct answer: C, Ddate tables Synonyms for Q&A and properly configured date tables are essential for optimizing DAX measures and improving the natural language query experience in Power BI. Synonyms help the Q&A feature understand business terminology and user vocabulary, enabling more accurate question interpretation and measure recommendations. Date tables provide the foundational time intelligence support that DAX measures depend on for time-based calculations and comparisons. Together, these elements enhance both performance and usability of measure configurations.
Why the other options are wrong- AIterator functions is incorrect because these are advanced DAX functions for specialized calculations, not optimization actions for measure configuration.
- BRole-playing dimensions is incorrect because these create multiple relationship paths from a single dimension table but are not core optimizations for general DAX measures implementation.
- EDisable DAX measures monitoring is incorrect because disabling monitoring reduces visibility into measure performance and health, contradicting the goal of optimization.
PL-300 practice exam FAQ
How many questions are in the PL-300 practice exam on CertGrid?
CertGrid has 609 practice questions for PL-300: Microsoft Power BI Data Analyst, covering 4 exam domains. The real PL-300 exam has about 50 questions.
What is the passing score for PL-300?
The PL-300 exam passing score is 700, and you have about 120 minutes to complete it. CertGrid scores your practice attempts the same way so you know when you are ready.
Are these official PL-300 exam questions?
No. CertGrid is an independent practice platform. Questions are written to mirror the style and concepts of PL-300: Microsoft Power BI Data Analyst, with full explanations, but they are not official or copied vendor exam items. They are original practice questions designed to help you genuinely learn the material.
Can I practice PL-300 for free?
Yes. You can start practicing PL-300: Microsoft Power BI Data Analyst for free with daily practice and sample questions. Paid plans unlock full timed exams, complete explanations, and domain analytics.