All Microsoft exams
Free PL-300 practice test: 30 questions with answers
30 original questions for Microsoft Power BI Data Analyst, drawn from every topic area. Answer each one to see whether you got it right and why. No sign-up.
- Free questions
- 30
- Full bank
- 100 questions
All 30 PL-300 questions with answers
The same questions as the test above, grouped by exam topic. Open any question to see the answer and explanation.
Model the data (8 questions)
Question 1
A Sales fact table has many rows per product, and each product appears once in a Products table. How should the relationship be defined?
- AMany-to-one from Sales to Products with both filter directions
- BOne-to-many from Products to Sales with single filter direction
- CMany-to-many from Sales to Products with both filter directions
- DOne-to-one from Products to Sales with single filter direction
Show answer and explanationHide answer
Correct answer: BProducts is the one side and Sales is the many side, so filters should flow from Products to Sales. Many-to-many and one-to-one do not match this grain, and bidirectional filtering is not needed in a standard star schema.
Question 2
A measure must return total sales while ignoring any filter applied to the Region table but keeping filters on other tables. Which expression should you use?
- ACALCULATE([Total Sales], REMOVEFILTERS(Region))
- BCALCULATE([Total Sales], VALUES(Region))
- CCALCULATE([Total Sales], KEEPFILTERS(Region))
- DSUMX(Region, CALCULATE([Total Sales]))
Show answer and explanationHide answer
Correct answer: AREMOVEFILTERS clears the filters on the named table only. VALUES and KEEPFILTERS keep the Region filter in place, and SUMX iterates rows without removing the existing context.
Question 3
A relationship must filter only from the Date table to the Sales table, never the other way. Which setting should you use?
- AMake this relationship active set to No
- BCross filter direction set to Single
- CCardinality set to Many to many
- DCross filter direction set to Both
Show answer and explanationHide answer
Correct answer: BSingle direction filters from the one side to the many side. Both propagates filters in reverse, which can create ambiguity, and making the relationship inactive removes it from calculations entirely.
Question 4
A user needs a per-row profit value stored in the Sales table so it can be used as a slicer field. Which should you create?
- AA calculated column
- BA measure
- CA what-if parameter
- DA calculated table built with SUMMARIZE
Show answer and explanationHide answer
Correct answer: ACalculated columns are evaluated per row and stored in the model, so they can be used on slicers and axes. Measures are computed at query time and cannot be slicer fields, and what-if parameters create a disconnected scenario table.
Question 5
A Sales table has OrderDate and ShipDate, both related to the Date table, with the OrderDate relationship active. How should a measure calculate sales by ShipDate?
- AUse USERELATIONSHIP with the ShipDate relationship inside CALCULATE
- BSet the ShipDate relationship cross filter direction to Both directions
- CUse RELATED on the ShipDate column in the Date table as a lookup
- DAdd a second Date table with the same name in the data model
Show answer and explanationHide answer
Correct answer: AOnly one relationship between two tables is active at a time, so USERELATIONSHIP activates the inactive ShipDate relationship for that measure. Changing direction does not switch the key, a duplicate table causes ambiguity, and RELATED does not change the filter path.
Question 6
Which two statements about row-level security in Power BI are correct? (Choose two.)
- AWorkspace Viewers are always exempt from RLS filters
- BRLS filters must be written separately on each report page
- CRLS roles can only be tested in the Power BI service
- DRoles are defined in the model using DAX filter expressions on tables
- EView as role in Power BI Desktop lets you test a role before publishing
Show answer and explanationHide answer
Correct answer: D, ERLS roles are DAX filters on model tables, and View as role in Desktop tests them locally. Viewers are filtered by RLS, and RLS is enforced on the model rather than on individual report pages.
Question 7
A dataset with two billion rows must be queried live from a SQL data warehouse without importing it into Power BI. Which storage mode should the table use?
- ADual
- BLive connection to a Power BI dataset
- CDirectQuery
- DImport
Show answer and explanationHide answer
Correct answer: CDirectQuery sends queries to the source at report time without importing the data. Import loads data into the model, Dual caches tables for composite models, and a live connection points to an external model rather than tables in this file.
Question 8
A report needs the year-to-date total of a Total Sales measure, using a Date table column named Date. Which expression should you use?
- APARALLELPERIOD('Date'[Date], -12, YEAR)
- BDATESBETWEEN('Date'[Date], BLANK(), TODAY())
- CSAMEPERIODLASTYEAR('Date'[Date])
- DTOTALYTD([Total Sales], 'Date'[Date])
Show answer and explanationHide answer
Correct answer: DTOTALYTD is the time-intelligence function that applies a year-to-date filter to a measure. PARALLELPERIOD and SAMEPERIODLASTYEAR return shifted date sets, and DATESBETWEEN returns a table rather than a total.
Visualize and analyze the data (8 questions)
Question 9
A line chart of monthly revenue must show a forecast for the next six months. Which feature should you use?
- ADecomposition tree with a constant baseline reference line
- BForecast in the Analytics pane of the line chart
- CTrend line on a scatter chart with linear regression
- DKey influencers visual with forecast setting enabled
Show answer and explanationHide answer
Correct answer: BThe Forecast option in the Analytics pane extends a line chart's series into future periods. A scatter trend line is a fitted line, a decomposition tree breaks down a measure, and key influencers ranks factors rather than forecasting.
Question 10
Which two actions help reduce report load time in Power BI Desktop? (Choose two.)
- AReduce the number of visuals on a page and remove unused fields
- BTurn on Auto date/time for every table
- CEnable cross-highlighting between every visual on the page
- DAdd a slicer for every column in the model
- EUse Performance Analyzer to find slow visuals, then simplify or remove them
Show answer and explanationHide answer
Correct answer: A, EPerformance Analyzer shows which visuals are slow, and fewer visuals and fields mean fewer queries. Auto date/time adds hidden tables, while cross-highlighting and extra slicers add interaction queries.
Question 11
Screen reader users need to understand what a chart shows on a report page. Which setting should you add to each visual?
- AVisual header title
- BAlternative text
- CTooltip page
- DBookmark
Show answer and explanationHide answer
Correct answer: BAlt text gives a text description of a visual for screen readers. Tooltips appear on hover, bookmarks store view states, and header titles are not the description read by assistive technology.
Question 12
A user must pick any start date and any end date on a report page. Which slicer should you add?
- ARelative date slicer
- BHierarchy slicer on the Date hierarchy
- CList slicer on the Year column
- DBetween slicer on a date column
Show answer and explanationHide answer
Correct answer: DThe Between style lets users choose a start and end date. A relative date slicer filters to periods such as last 30 days, while list and hierarchy slicers select discrete values rather than a date range.
Question 13
A report must show whether two numeric measures move together across many individual products. Which visual should you use?
- AFunnel chart by stage to show sequential conversion drop-off rates
- BTreemap by category showing part-to-whole sizes of each product group
- CScatter chart with the two measures on the X and Y axes
- DStacked area chart by product showing cumulative totals of revenue
Show answer and explanationHide answer
Correct answer: CA scatter chart plots each item by its two values, which makes correlation visible. Area charts show accumulation, funnels show sequential stages, and treemaps show part-to-whole sizes, not the relationship between two measures.
Question 14
Users on a sales summary page must right-click a customer and open a detail page filtered to that customer. What should you configure?
- AA drillthrough page with Customer as the drillthrough field
- BA bookmark for each customer that saves the filter and slicer state
- CA sync slicer across the report pages with a shared selection
- DA tooltip page showing the customer summary that appears on hover
Show answer and explanationHide answer
Correct answer: ADrillthrough pages open from a right-click and carry the selected customer as a filter. Tooltip pages appear on hover, bookmarks store view states, and sync slicers keep one selection aligned across pages.
Question 15
A table should shade each product row green when its margin, calculated by a measure, is above a threshold. Which feature should you use?
- AA visual-level filter on the margin column
- BData alerts on the table visual
- CA theme JSON file with a fixed colour
- DConditional formatting driven by a measure
Show answer and explanationHide answer
Correct answer: DConditional formatting can take its colour from a measure, so cells update as the data changes. A theme sets static styling, a visual filter removes rows, and data alerts apply to dashboard tiles rather than table cells.
Question 16
A line chart of daily website visits should automatically highlight unusual spikes or drops. Which Analytics pane feature should you use?
- AMedian line
- BFind anomalies
- CKey influencers
- DSmart narrative
Show answer and explanationHide answer
Correct answer: BFind anomalies is an Analytics pane option for line charts that marks unusual points. A median line is a plain reference line, key influencers ranks contributing factors, and smart narrative writes a text summary.
Deploy and maintain assets (7 questions)
Question 17
Which two conditions must be met for a Pro user to view a report shared from a Pro workspace? (Choose two.)
- AThe report is published to web with an embed code
- BThe viewer holds a Pro or Premium Per User license
- CThe report is shared with the viewer or the viewer has a workspace role
- DThe report is exported to PDF and emailed to the viewer
- EThe dataset is set to DirectQuery only
Show answer and explanationHide answer
Correct answer: B, CViewing Pro content requires a per-user license and access to the content through sharing or a workspace role. Exporting to PDF, DirectQuery storage mode and publish to web do not grant or define that access.
Question 18
A colleague must create and edit reports in a workspace but must not publish apps. Which workspace role should you assign?
- AMember ID
- BAdmin role
- CContributor
- DViewer level
Show answer and explanationHide answer
Correct answer: CContributors can create and edit content but cannot publish an app, which Members and Admins can do. Viewers have read-only access, and Admins have more management rights than the request needs.
Question 19
Which deployment pipeline stage holds the content that business users see?
- AQuality assurance
- BTest
- CProduction
- DDevelopment
Show answer and explanationHide answer
Correct answer: CThe Production stage is the one published to end users. Development and Test hold content for building and checking changes before promotion, and quality assurance is not a deployment pipeline stage.
Question 20
An on-premises SQL Server database must refresh a dataset every hour in the Power BI service. What is required?
- AA dataflow with no gateway
- BA Power BI Desktop file on a laptop
- CAn on-premises data gateway
- DAn Azure Analysis Services server
Show answer and explanationHide answer
Correct answer: CThe on-premises data gateway lets the cloud service reach on-premises sources for scheduled refresh. Desktop files are not refreshed by the service, dataflows still need a gateway for on-premises data, and Analysis Services is a separate model server.
Question 21
Business users need read-only access to a curated set of reports and dashboards from a workspace. What should the team publish?
- AA Power BI app
- BA dataset with no reports
- CA dashboard exported as an image
- DA Power BI Desktop file emailed to users
Show answer and explanationHide answer
Correct answer: AAn app packages reports and dashboards for consumers with read-only access. An emailed file needs Desktop, a dataset alone has no visuals, and an image export loses interactivity.
Question 22
A team must move content from test to production through a controlled process with a comparison of stages. Which feature should they use?
- APublish to web
- BDataflow with a gateway
- CExport to PDF
- DDeployment pipelines
Show answer and explanationHide answer
Correct answer: DDeployment pipelines promote content through development, test and production stages and show differences between them. PDF export creates static files, publish to web creates a public embed, and dataflows prepare data rather than manage releases.
Question 23
Which two actions are valid when managing a published dataset in the Power BI service? (Choose two.)
- AEdit the PBIX table definitions directly in the service
- BChange a dataset's workspace role by editing the Desktop file
- CExport the dataset as a CSV file from its settings
- DConfigure scheduled refresh with credentials for each data source
- ESet up incremental refresh policies for large tables
Show answer and explanationHide answer
Correct answer: D, EScheduled refresh uses stored data source credentials, and incremental refresh policies limit how much data is reloaded. The service does not edit table definitions in a PBIX, workspace roles are managed separately, and it does not export whole datasets as CSV.
Prepare the data (7 questions)
Question 24
A Sales table imported from Excel stores OrderDate as text in the format 31/12/2025, which is day-first. What should you do in Power Query so the column becomes a true date?
- AChange the column type to Date using the Using Locale option with English (United Kingdom)
- BChange the column type to Date/Time/Timezone so the time zone is applied to the parsed date values
- CAdd a custom column that uses Number.From to convert the text values into numeric serial numbers for loading
- DReplace the values with a DAX CALENDAR table generated in the model with CALENDARAUTO to derive the dates
Show answer and explanationHide answer
Correct answer: AChange Type with Locale tells Power Query how to parse day-first text. Date/Time/Timezone adds a time component and zone, and Number.From returns a number, so neither fixes the parsing.
Question 25
A product list must show only products that have no matching rows in a Sales query. Which merge join kind should you use?
- AInner
- BLeft Outer
- CFull Outer
- DLeft Anti
Show answer and explanationHide answer
Correct answer: DLeft Anti returns rows from the first query that have no match in the second. Left Outer keeps matched products too, Inner keeps only matches, and Full Outer keeps everything from both sides.
Question 26
Which two actions help a Power Query refresh stay fast against a relational source? (Choose two.)
- AAdd a Table.Buffer step at the start of every query
- BTurn off Include in report refresh on all queries
- CApply filters and column removals early so they fold back to the source database
- DKeep query-folding steps before any step that cannot fold
- ELoad every query as a calculated table in the model
Show answer and explanationHide answer
Correct answer: C, DFolding pushes work to the database, and steps that break folding belong after the foldable ones. Table.Buffer forces full in-memory loading, calculated tables duplicate data, and turning off report refresh stops the query from updating.
Question 27
A workbook has one row per product with months as separate columns. The model needs one row per product and month. Which Power Query action should you use?
- ASplit column by delimiter on the month header row
- BTranspose the table so the products become columns
- CPivot column on the product name to create one column per product
- DUnpivot other columns after selecting the product column
Show answer and explanationHide answer
Correct answer: DUnpivot other columns keeps the product column and turns the month columns into attribute and value rows. Pivot does the opposite, Transpose swaps rows and columns, and splitting by delimiter does not reshape the table.
Question 28
A CSV file has an Amount column with thousands separators stored as text, such as 1,250. Which approach converts the column to a whole number?
- AChange the column type to Date and apply a date format so Power BI can read the amounts
- BChange the type with the correct locale, or use Replace Values to remove the comma before changing the type
- CRemove the Amount column from the query because text values cannot be stored as numeric data
- DUse Pivot column on the Amount column so each distinct value becomes a new column header
Show answer and explanationHide answer
Correct answer: BRemoving the separator or setting the right locale lets Power Query convert the text to a number. Pivoting reshapes rows, a date type cannot hold an amount, and removing the column loses the data.
Question 29
Dozens of monthly files with the same layout sit in one folder. Which Power Query approach applies the same steps to every file without repeating them?
- AAppend queries
- BMerge queries with a Full Outer join
- CCombine files from a folder source
- DCreate a blank query
Show answer and explanationHide answer
Correct answer: CA folder source with Combine Files builds a sample-file function that applies the same steps to every file. Append stacks queries that already exist, merge joins columns across tables, and a blank query starts empty.
Question 30
Which M function returns a list of text pieces by splitting a string on a delimiter, so the list can then be expanded into rows?
- AText.Upper
- BText.Split
- CText.Combine
- DText.Length
Show answer and explanationHide answer
Correct answer: BText.Split returns a list of strings using a delimiter. Text.Combine joins a list into one string, Text.Length returns a count of characters, and Text.Upper changes case.