Power BI Data Analyst (PL-300) Practice Exam
Practice questions for the Microsoft Power BI Data Analyst (PL-300) certification, following the skills measured as of April 20, 2026: preparing data in Power Query, including connecting to sources and shared semantic models, data source settings and privacy levels, choosing Import, DirectQuery, Dual or Direct Lake, parameters, profiling, cleaning, transforming, merging and appending; modeling data with star schemas, table and column properties, role-playing dimensions, relationships and cross-filter direction, date tables, DAX measures with CALCULATE, time intelligence, semi-additive and statistical functions, quick measures, calculation groups, and performance tuning with Performance Analyzer and DAX query view; visualizing and analyzing data with visual selection, themes, conditional formatting, filtering, Copilot, visual calculations, paginated reports, bookmarks, tooltips, drillthrough, sync slicers, accessibility, mobile layout, automatic page refresh, AI visuals, forecasting and anomaly detection; and managing and securing Power BI with workspaces and roles, apps, distribution, endorsement, gateways, scheduled refresh, item and semantic model permissions, row-level security, sensitivity labels and data alerts. Every question includes a written explanation.
100 questions · 12 free preview
Studying more than one? All Microsoft Power BI & Fabric exams for $29 · every exam for $79
Free sample questions
- Sample · question 1 · Column From Examples
A Contacts query at Birchfield Events has a FullName column such as "Okafor, Adaeze". The analyst wants a new column that shows the first name only, and she would rather type two or three expected results than write M code. Which Power Query feature should she use?
- A.Add Column > Column From Examplescorrect
- B.Transform > Detect Data Type
- C.Home > Keep Rows
- D.Add Column > Index Column
Why: Column From Examples generates the transformation logic from sample output values that you type, and shows the M it builds so you can check it. An index column adds sequential numbers, Detect Data Type only sets column types, and Keep Rows filters rows rather than deriving text from another column.
Open this question on its own page → - Sample · question 2 · Fuzzy matching merge
Supplier names from two systems at Ostrava Metals differ slightly, for example "Brandt Steel GmbH" and "Brandt Steel Gmbh.". An exact merge leaves many suppliers unmatched. Which Power Query option is designed for this situation?
- A.Enable fuzzy matching in the Merge dialog and adjust the similarity thresholdcorrect
- B.Use an Inner join instead of a Left outer join
- C.Append the two supplier queries
- D.Change the supplier name columns to the Whole number type
Why: Fuzzy matching compares text values by similarity rather than exact equality, and its similarity threshold and options such as ignoring case control how close values must be to match. Changing the join kind does not make near-identical names equal. Appending stacks rows without matching them, and text names cannot be converted to whole numbers.
Open this question on its own page → - Sample · question 3 · Split column into rows
Each row of a Courses table holds a semicolon-separated list of trainers in the Trainers column, such as "Lund;Achebe;Ruiz". The model needs one row per course and trainer. Which transformation achieves this in one step?
- A.Transpose the Trainers column
- B.Group By Course with an All Rows aggregation
- C.Split Column by Delimiter using a semicolon, with the advanced option to split into rowscorrect
- D.Split Column by Delimiter using a semicolon, with the default option to split into columns
Why: Splitting by a delimiter into rows creates a separate row for each value in the list while repeating the other columns, giving one row per course and trainer. Splitting into columns creates Trainers.1, Trainers.2 and so on, which would still need unpivoting. Grouping nests rows instead of separating them, and transposing swaps rows and columns of the whole table.
Open this question on its own page → - Sample · question 4 · DISTINCTCOUNT for order count
An OrderLines table at Pinecrest Books has one row per book in each order, so each OrderNumber appears several times. Which measure returns the number of orders?
- A.SUM(OrderLines[OrderNumber])
- B.DISTINCTCOUNT(OrderLines[OrderNumber])correct
- C.COUNTROWS(OrderLines)
- D.COUNT(OrderLines[OrderNumber])
Why: DISTINCTCOUNT counts each order number once, no matter how many lines the order has. COUNT and COUNTROWS both count every line, which overstates the number of orders, and summing order numbers produces a meaningless total.
Open this question on its own page → - Sample · question 5 · RELATED in calculated column
In the Sales table, which sits on the many side of a relationship to Product, the analyst needs a calculated column with each product's standard cost so it can be multiplied by quantity row by row. Which expression should the column use?
- A.RELATEDTABLE('Product')
- B.SUM('Product'[StandardCost])
- C.RELATED('Product'[StandardCost])correct
- D.LOOKUPVALUE(Sales[Quantity], 'Product'[StandardCost], 1)
Why: RELATED follows the many-to-one relationship from the current Sales row to its product and returns a single value from the one side. RELATEDTABLE goes the other way and returns a table of related rows. The LOOKUPVALUE expression searches the wrong columns, and SUM returns the total cost of all products on every row.
Open this question on its own page → - Sample · question 6 · Previous month with DATEADD
A matrix shows monthly revenue at Skerry Telecom. The finance team wants a column that shows the previous month's revenue next to each month. Which measure is correct, assuming a marked Date table?
- A.CALCULATE([Revenue], DATEADD('Date'[Date], 1, MONTH))
- B.CALCULATE([Revenue], STARTOFMONTH('Date'[Date]))
- C.CALCULATE([Revenue], DATESMTD('Date'[Date]))
- D.CALCULATE([Revenue], DATEADD('Date'[Date], -1, MONTH))correct
Why: DATEADD with -1 and MONTH shifts the dates in the current context back by one month, returning the prior month's revenue for each row. A positive interval returns the next month. DATESMTD gives month-to-date dates of the current month, and STARTOFMONTH returns only the first date of the current month.
Open this question on its own page → - Sample · question 7 · Small multiples by region
Regional directors want to compare the monthly sales trend of eight regions side by side, each in its own small chart that shares the same axes, without building eight separate visuals. What should the analyst do?
- A.Add Region to the Small multiples field well of a line chartcorrect
- B.Add Region to the Legend of a single line chart
- C.Create a bookmark for each region
- D.Add Region to the drillthrough fields
Why: Small multiples split one visual into a grid of copies, one per value of the chosen field, with shared axes so the trends are easy to compare. A legend draws all eight lines on one chart, which becomes cluttered. Bookmarks would show one region at a time, and drillthrough opens a different page.
Open this question on its own page → - Sample · question 8 · Hide drillthrough-only page
A report has a detail page that should be reached only by drillthrough from other pages. Readers should not see it as a page tab in the Power BI service. What should the analyst do?
- A.Set the page's canvas size to Tooltip
- B.Move the page to a separate report
- C.Delete the page and recreate it as a tooltip page
- D.Hide the page so it is not shown in the page list, while drillthrough to it still workscorrect
Why: A hidden page does not appear in the page tabs or navigation for readers, but it can still be opened through drillthrough, buttons and bookmarks. A tooltip page or tooltip canvas is shown on hover rather than through drillthrough. Moving the page to another report would require setting up cross-report drillthrough for no benefit.
Open this question on its own page → - Sample · question 9 · Constant line for target
A clustered column chart shows daily calls handled per agent. The contact centre manager wants a horizontal line at the service target of 120 calls so agents below target stand out. What is the simplest way to add it?
- A.Create a calculated column that stores 120 for every row
- B.Add 120 as a text box on top of the chart
- C.Add a Y-axis constant line with a value of 120 in the Analytics panecorrect
- D.Add a forecast in the Analytics pane
Why: A constant line in the Analytics pane draws a reference line at a fixed value, or at a value from a measure, across the chart and can be labelled. A calculated column adds data to the model without drawing a line. A forecast predicts future values, and a text box is not tied to the axis scale.
Open this question on its own page → - Sample · question 10 · Pin live report page
A plant manager wants a dashboard tile that shows a whole report page, including its slicers, and lets him interact with the page from the dashboard. What should the analyst pin?
- A.A screenshot of the page uploaded as an image tile
- B.A text tile with a link to the report
- C.Each visual on the page as a separate tile
- D.The entire report page, by using Pin to a dashboard for the pagecorrect
Why: Pinning a live report page puts the whole page on the dashboard as one tile, and the visuals and slicers on it remain interactive. Pinning visuals one by one creates static tiles that do not respond to slicers. An image or a text link does not show live, interactive content on the dashboard.
Open this question on its own page → - Sample · question 11 · App audiences for content visibility
One workspace at Glenrock Health holds clinical, finance and HR reports. Clinicians must see only the clinical reports in the workspace app, and finance staff only the finance reports. What should the analyst configure?
- A.Use RLS roles to hide entire reports
- B.Create audiences in the app and choose which content each audience can seecorrect
- C.Give clinicians the Viewer role and finance staff the Contributor role
- D.Create a separate workspace app for each group from the same workspace
Why: App audiences let one app show different subsets of the workspace content to different groups. A workspace can publish only one workspace app. Workspace roles give access to all workspace content rather than selected reports, and RLS filters rows of data rather than hiding whole reports.
Open this question on its own page → - Sample · question 12 · Gauge for progress to goal
An executive wants to see at a glance how close this quarter's revenue is to the quarterly goal, shown as a single value on a circular arc with the goal marked on it. Which visual fits best?
- A.Stacked column chart
- B.Gaugecorrect
- C.Scatter chart
- D.Table
Why: A gauge shows one value on a circular arc between a minimum and a maximum, and it can show a target value as a marker, which suits progress toward a goal. A scatter chart shows relationships between measures, a stacked column chart compares parts across categories, and a table lists values without showing progress visually.
Open this question on its own page →
Like the sample?
Other practice exams
- AnthropicClaude Certified Architect — Foundations100 questions · $19
- CompTIACompTIA Security+ (SY0-701)100 questions · $19
- ISC2CISSP100 questions · $19
- DatabricksDatabricks Data Engineer Associate100 questions · $19
- DatabricksDatabricks Data Engineer Professional100 questions · $19
- Google CloudGoogle Cloud Associate Cloud Engineer100 questions · $19
- Google CloudGoogle Cloud Professional Cloud Architect100 questions · $19
- Google CloudGoogle Cloud Professional Data Engineer100 questions · $19
- HashiCorpTerraform Associate (004)100 questions · $19
- Microsoft Power BI & FabricFabric Analytics Engineer (DP-600)100 questions · $19
- SnowflakeSnowPro Core (COF-C03)250 questions · $19
- SnowflakeSnowPro Advanced: Data Engineer100 questions · $19
- SnowflakeSnowPro Advanced: Architect100 questions · $19
- AWSAWS Cloud Practitioner (CLF-C02)100 questions · $19
- AWSAWS Solutions Architect Associate (SAA-C03)100 questions · $19
- AWSAWS AI Practitioner (AIF-C01)100 questions · $19
- Microsoft AzureAzure Fundamentals (AZ-900)100 questions · $19
- Microsoft AzureAzure Administrator (AZ-104)100 questions · $19
- Microsoft AzureAzure AI Fundamentals (AI-901)100 questions · $19
- Microsoft AzureAzure Solutions Architect Expert (AZ-305)100 questions · $19