Microsoft · Free Practice Questions · Last reviewed May 2026
30real exam-style questions organised by domain, each with the correct answer highlighted and a plain-English explanation of why it's right — and why the others are wrong.
A company uses Power BI to analyze sales data from a SQL Server database. The database contains a table 'Sales' with 10 million rows. The business analysts need to create daily reports that aggregate sales by region and product category. To optimize report performance, which data preparation technique should be applied?
Increase the row limit in Power Query to load all rows.
Remove unused columns from the query.
Import the entire table and aggregate in Power BI.
Perform aggregation in SQL before importing.
Aggregating at source reduces rows significantly.
During data refresh in Power BI, an error occurs: 'The column 'OrderID' of the table 'Orders' contains a duplicate value and this column is part of a primary key.' The table 'Orders' is imported from an Azure SQL database. What is the most likely cause of this error?
The 'Orders' table was reordered in Power Query.
Data type mismatch between the source and Power BI.
A calculated column is referencing the 'Orders' table.
The source table has duplicate 'OrderID' values.
Duplicate values violate the primary key constraint.
A data analyst needs to combine two queries in Power Query: 'Sales2023' and 'Sales2024', both with identical column structures. Which operation should the analyst use to append the rows from 'Sales2024' to 'Sales2023'?
Append Queries
Append stacks rows from multiple tables.
Merge Queries
Group By
Pivot Column
A Power BI report contains a table with a column 'Date' of type date. The report users need to filter data by fiscal year, which starts on April 1. What is the best practice to support this requirement during data preparation?
Create a separate date table in Power Query with a fiscal year column.
A dedicated date table is the recommended approach.
Split the date column into year, month, and day columns.
Use a DAX calculated table to generate fiscal year dates.
Add a calculated column in the existing table using DAX.
When importing data from a CSV file, Power Query detects that the first row contains column headers. However, the actual data starts from row 2. The analyst notices that some rows have extra columns due to commas within quoted fields. What is the most efficient way to handle this issue?
Remove the top row and then split columns manually.
Change the file encoding from UTF-8 to ANSI.
Use 'Split Column by Delimiter' and choose 'Comma' with the option to split at each occurrence.
This correctly handles quoted commas.
Use 'Replace Values' to replace commas with semicolons.
Which TWO actions can improve data refresh performance in Power BI?
Merge all queries into a single query.
Add calculated columns in Power Query instead of DAX.
Disable load for intermediate queries used only for reference.
Prevents unnecessary data loading.
Filter rows at the source to reduce data volume.
Fewer rows means faster refresh.
Keep all columns from the source data to avoid re-importing.
Want more Prepare the data practice?
Practice this domainYour Power BI dataset uses DirectQuery to an Azure SQL Database. Users complain that the report is slow. You need to improve query performance without changing the data source. What should you do?
Reduce the number of columns and rows retrieved by the report visuals.
Less data means faster queries.
Add more visuals to the report to distribute the load.
Switch the dataset to Import mode.
Increase the scheduled refresh frequency.
You have a Power BI dataset that is refreshed every hour from an on-premises data source using an enterprise gateway. The refresh consistently fails at 2:00 AM. What is the most likely cause?
The on-premises data gateway is scheduled to reboot at 2:00 AM.
A reboot would cause the gateway to be unavailable.
The refresh is failing due to a transient network error.
The data source is undergoing maintenance in the cloud.
The scheduled refresh time conflicts with another refresh.
Which TWO actions should you take to ensure that a Power BI report deployed to production is available to users even if the gateway is offline for maintenance?
Create a Power BI Premium capacity to ensure high availability.
Schedule the dataset refresh to run during the maintenance window.
Use DirectQuery instead of Import mode to avoid gateway dependency.
Create a separate dataset in the cloud that caches the data.
A cloud dataset can be refreshed when the gateway is online.
Implement a disaster recovery plan that includes a secondary gateway.
A secondary gateway can take over during maintenance.
Which THREE steps should you perform to deploy a Power BI solution from development to production using deployment pipelines?
Create a new workspace manually in production.
Set up deployment pipeline rules to modify parameters (e.g., database name).
Rules automate configuration changes.
Assign Power BI Pro licenses to all developers.
Deploy content from development to test, then to production.
Sequential deployment is the pipeline workflow.
Create a development workspace and add content.
Content starts in development.
You are troubleshooting connectivity to a Power BI Premium dataset via the XMLA endpoint. A user reports that they cannot connect using SQL Server Management Studio (SSMS) but can view reports in the Power BI service. The user's email is user3@contoso.com. What is the most likely cause?
External connections are blocked by the configuration.
The user does not have permission to view reports.
The user is not in the allowedUsers list for the XMLA endpoint.
Only user1 and user2 are allowed.
The XMLA endpoint is disabled.
You deploy a Power BI app to a workspace with an app-only license (Premium Per User). Users report that they can access the app but cannot see any visuals in the reports. The dataset uses Import mode. What is the most likely issue?
The report uses DirectQuery and the data source is offline.
The users do not have a Premium Per User license assigned.
PPU content requires PPU license to render.
The report is published to a shared dataset that has been deleted.
The dataset has row-level security (RLS) that filters all rows for these users.
Want more Deploy and maintain assets practice?
Practice this domainA Power BI data model includes a table 'Orders' with columns OrderID, CustomerID, OrderDate, SalesAmount. The model also has a 'Date' table and a 'Customer' table. The relationships are: Orders[CustomerID] -> Customer[CustomerID] (many-to-one, single direction) and Orders[OrderDate] -> Date[Date] (many-to-one, single direction). A user creates a measure that sums SalesAmount and then filters by a slicer on Customer[City]. The slicer works correctly. However, when the user adds another slicer on Date[Year], the measure does not respect both slicers simultaneously. What is the most likely cause?
The Customer and Date tables are not related to each other.
The relationship between Orders and Date is inactive.
The relationships are set to single direction, so filters from Date do not propagate to Orders.
The measure might be using ALL or ALLEXCEPT that removes the filter context from the Date table.
If the measure removes filters from Date, then the slicer on Date[Year] would be ignored.
A Power BI developer has a fact table that contains sales data at the transaction level. The table includes columns: TransactionID, ProductID, CustomerID, DateKey, Quantity, UnitPrice, Discount, and SalesAmount. The developer wants to create a measure for total sales after discount. Which approach is best for performance and accuracy?
Create a measure: SUM(Sales[SalesAmount]) - SUM(Sales[Discount])
Add a calculated column in Power Query: NetAmount = Quantity * UnitPrice - Discount, then create a measure: SUM(Sales[NetAmount])
Calculated columns are computed at refresh time, improving query performance.
Create a measure: SUMX(Sales, Sales[Quantity] * Sales[UnitPrice] - Sales[Discount])
Create a measure: SUM(Sales[Quantity] * Sales[UnitPrice]) - SUM(Sales[Discount])
A Power BI developer is designing a data model for sales analysis. The model includes a Sales fact table and dimension tables: Product, Customer, Date, and Store. Which TWO design considerations are best practices for optimizing query performance?
Configure bidirectional cross-filtering between all dimension tables and the fact table.
Use multiple inactive relationships between fact and dimension tables to support different analyses.
Create a separate date table and mark it as a date table to enable time intelligence functions.
A date table is essential for time-based calculations and filtering.
Use many-to-many relationships between dimension tables and the fact table to simplify the model.
Reduce the cardinality of columns in dimension tables by using surrogate keys instead of natural keys.
Lower cardinality improves compression and query performance.
A Power BI developer is designing a semantic model that will be used by multiple departments. The developer wants to ensure that the model follows best practices for performance and usability. Which TWO actions should the developer take?
Use a star schema with dimension and fact tables.
Star schema optimizes query performance and simplifies user understanding.
Hide foreign key columns from report view.
Hiding key columns prevents confusion and ensures users only see relevant fields.
Use calculated columns instead of measures for aggregations.
Combine all data into a single flat table to simplify the model.
Enable bidirectional cross-filtering between all tables.
After loading the data using the Power Query M code shown in the exhibit, the model contains a table with 10,000 rows. However, when users filter by OrderDate in a report, the filter does not affect the aggregated TotalDue values. What is the most likely reason?
The TotalDue column is not a numeric type.
The data is pre-aggregated in Power Query, so report-level filters cannot re-aggregate.
Pre-grouping in Power Query loses the detail rows; filters cannot re-evaluate aggregates without the underlying data.
The dataset is not refreshing properly.
The Date table has no relationship to the Sales table.
A Power BI report uses a DirectQuery data source. The model includes a calculated column that uses the RELATED function to bring a value from another table. The report is performing slowly. What design change would most improve performance without compromising functionality?
Remove the RELATED function and merge tables in the source query.
Convert the model to Import mode.
Use a measure instead of a calculated column.
Replace the calculated column with a calculated table that includes the related column.
A calculated table is materialized in the model, reducing query-time computation and improving performance.
Want more Model the data practice?
Practice this domain27% of exam · 6 sample questions below
A Power BI report includes a slicer for 'Year' and a line chart showing monthly sales. The report designer wants to ensure that when a user selects a year in the slicer, the line chart shows only the months of that year, with month names on the x-axis sorted chronologically. Which TWO actions must be taken?
Mark the Date table as a date table in the model.
Marking the table as a date table enables time intelligence functions and ensures proper date behavior.
Create a date hierarchy with Year and Month.
Set the slicer to 'Single select' mode.
Set the 'Sort by Column' property for Month to a numeric month number column.
This ensures months are sorted chronologically rather than alphabetically.
Hide the Month column in the Date table.
A company has a Power BI dataset that includes a table 'Orders' with columns: OrderID, CustomerID, OrderDate, ShipDate, and Amount. They want to create a measure that calculates the number of orders shipped within 3 days of the order date. Which THREE of the following steps are necessary to create this measure?
Use FILTER to filter the Orders table based on the condition.
FILTER is required to restrict rows to those shipped within 3 days.
Use COUNTROWS without any filter.
Use SUM to add up the Amount column.
Use COUNTROWS inside CALCULATE.
CALCULATE with COUNTROWS and a filter condition counts the filtered rows.
Use DATEDIFF to calculate the difference between ShipDate and OrderDate.
DATEDIFF is used to calculate the date difference in days.
A Power BI report contains a page with many visuals that use a large DirectQuery dataset. The report is slow to load. Which design change would most improve the initial page load time?
Reduce the number of visuals on the page
Fewer visuals mean fewer queries, improving load time.
Increase the default page-level filter to limit data
Use a slicer to let users choose what to see
Create aggregations on the dataset
Which are valid ways to create a calculated table in Power BI? (Select all that apply)
VALUES(Customer[Country])
VALID: VALUES returns a single-column table of distinct values from a column, which can be used to create a calculated table.
CALCULATE(SUM(Sales[Amount]), ALL(Sales))
FILTER(Products, Products[Color] = "Red")
VALID: FILTER returns a table that is a subset of rows from another table based on a condition, suitable for calculated table creation.
CALENDARAUTO()
VALID: CALENDARAUTO is a dedicated function that returns a table containing a contiguous date range, commonly used for time intelligence.
SUMMARIZE(Sales, Sales[ProductID], "Total", SUM(Sales[Amount]))
VALID: SUMMARIZE returns a table with grouped data and aggregated columns, a standard calculated table method.
Which TWO are required components of a Power BI Paginated Report?
A subscription
A map visual
A dataset
Every paginated report needs at least one dataset.
A data source
Every paginated report needs a data source.
A query parameter
A Power BI admin applies the Azure Policy shown in the exhibit. What is the effect of this policy?
No one can read any datasets
Users cannot read datasets in the finance workspace
All users can read datasets in all workspaces
Only users in the finance workspace can read datasets
The condition allows only the finance workspace.
Want more Visualize and analyze the data practice?
Practice this domain17% of exam · 6 sample questions below
You are a Power BI administrator. A user reports that a shared dashboard shows 'Sensitive data detected' for certain visualizations, but the dashboard is configured with row-level security (RLS). What is the most likely cause of this issue?
The dashboard owner has not granted the user 'Build' permission on the dataset.
RLS is incorrectly configured and allowing users to see data they should not.
A Microsoft Purview sensitivity label is applied to the dataset or report.
Correct. A Microsoft Purview sensitivity label applied to the dataset or report causes the warning. Sensitivity labels take precedence over RLS in terms of data classification warnings.
The user is viewing the dashboard in a browser that does not support sensitivity labels.
A Power BI administrator needs to enforce that all datasets published to the service use certified data sources only. Which two settings should be configured? (Choose two.)
Use Microsoft Sentinel to audit Power BI activity logs and flag non-certified data sources.
Enable 'Certification' for dataflows in the Power BI tenant settings.
Enabling certification for dataflows allows dataflows to be marked as certified, which encourages the use of certified dataflows in datasets, contributing to enforcement.
Enable 'Certification' for data sources in the Power BI tenant settings.
Enabling certification for data sources allows data sources to be certified, directly supporting the requirement that datasets use only certified data sources.
Configure row-level security (RLS) on all datasets.
Set up B2B guest user permissions to restrict external data sources.
You are a Power BI administrator. A user reports that their scheduled data refresh fails with error 'The data source credentials are no longer valid.' The dataset uses a SQL Server database with Windows authentication. What should you do first to resolve the issue?
Reinstall the on-premises data gateway on the server.
Reassign the dataset to a different Premium capacity.
Modify the dataset to use 'Impersonate the authenticated user' for data sources.
Ask the user to update the data source credentials in the Power BI service dataset settings.
Windows credentials may expire; updating them in the service resolves the error.
You are a Power BI administrator. Your organization uses Microsoft Purview to manage sensitivity labels. You need to ensure that when a report is exported to PDF, the sensitivity label is automatically applied to the PDF file. What should you configure?
Enable the tenant setting 'Apply sensitivity labels to exported data' in the Power BI admin portal.
This setting ensures that when a report with a sensitivity label is exported, the label is embedded in the exported file.
Enable 'Microsoft Purview Information Protection' file encryption settings.
Set the default sensitivity label for the workspace to 'Confidential'.
Configure a Microsoft Purview auto-labeling policy for Power BI reports.
A Power BI administrator wants to allow users to create dashboards and reports, but prevent them from sharing content outside the organization. Which two settings should be configured in the Power BI admin portal? (Choose two.)
Disable 'Create workspaces' in the tenant settings.
Disable 'Export data' in the tenant settings.
Disable 'Featured tables' in the tenant settings.
Disable 'Share content with external users' in the tenant settings.
This setting prevents users from sharing reports and dashboards with external email addresses.
Disable 'Publish to web' in the tenant settings.
This prevents users from creating public embed codes that can be shared outside the organization.
You are a Power BI administrator. A Power BI dataset owner reports that the dataset is not refreshing automatically, but manual refreshes work fine. The dataset uses a cloud data source (Azure SQL Database) with OAuth2 credentials. What is the most likely cause?
Row-level security (RLS) is misconfigured.
The on-premises data gateway is offline.
The dataset exceeds the refresh limit for the assigned capacity.
The OAuth2 token used for the data source credentials has expired.
Expired OAuth tokens prevent automatic refreshes, but manual refreshes prompt the user to reauthenticate.
Want more Manage and secure Power BI practice?
Practice this domainThe PL-300 exam has 50 questions and must be completed in 120 minutes. The passing score is 700/1000.
Business intelligence scenario questions on Power BI data models, DAX expressions, report design, row-level security, deployment pipelines, and governance. Some question sets are case-study based, presenting a business scenario followed by multiple related questions.
The exam covers 5 domains: Prepare the data, Deploy and maintain assets, Model the data, Visualize and analyze the data, Manage and secure Power BI. Questions are weighted by domain — higher-weight domains appear more on your actual exam.
No. These are original exam-style practice questions written against the official Microsoft PL-300 exam objectives. They are not copied from the real exam. Courseiva focuses on genuine understanding, not memorisation of braindumps.
Courseiva tracks your accuracy per domain and routes you toward weak areas automatically. Free, no account required.