PL-300 study materials
PL-300 study resources

PL-300 practice questions

One question at a time. Build your PL-300 understanding.

First 50 of 200 questions. Each one lists the choices, the correct answer, and an explanation. The checker at the top of this page saves progress in this browser when it is available.

Continue in the practice tool above to load more questions, 50 at a time.

Question 1Prepare the data

In Power BI Desktop, which area do you use to connect to a data source and shape the data before it is loaded into the semantic model?

  1. Data view
  2. Model view
  3. Power Query Editor Correct answer.
  4. Report view

Explanation

Power Query Editor is the data-preparation environment where you connect to sources, preview values, and apply cleaning and transformation steps. The output of those queries is what gets loaded into the semantic model.

Question 2Prepare the data

You are profiling a column and want to see what percentage of its values are valid, contain errors, or are empty. Which profiling feature should you enable?

  1. Query diagnostics
  2. Column profile
  3. Column distribution
  4. Column quality Correct answer.

Explanation

Column quality summarizes each column as percentages of valid, error, and empty values, which makes conversion problems easy to spot. It is the profiling view specifically built around data validity.

Question 3Prepare the data

A table contains the columns Product, January, February, and March, where each month column holds a sales amount. You need a table with the columns Product, Month, and SalesAmount. Which transformation should you use?

  1. Group by
  2. Transpose
  3. Unpivot columns Correct answer.
  4. Pivot column

Explanation

Unpivoting rotates month columns into rows, producing attribute-value pairs where Month holds the former column names and the values move into a single amount column. This is the standard way to normalize a cross-tab layout.

Question 4Prepare the data

You load a CSV file whose dates are written as DD/MM/YYYY, and Power Query interprets some of them as MM/DD/YYYY or returns errors. Which action is the most reliable fix?

  1. Change the column type to Date using the source locale Correct answer.
  2. Remove the rows that failed conversion
  3. Change the column type to Text and keep the original values
  4. Change the column type to Date using the invariant locale

Explanation

Change Type With Locale tells the parser which day/month ordering the source uses, so ambiguous strings are interpreted consistently. The locale must match the file's convention rather than the authoring machine's regional settings.

Question 5Prepare the data

You have two queries, Sales2023 and Sales2024, with identical column names and data types. You need a single query that contains the rows of both. Which transformation should you use?

  1. Group by
  2. Append queries Correct answer.
  3. Transpose
  4. Merge queries

Explanation

Append stacks the rows of one query below another when the columns line up, which is the correct way to combine same-schema tables. Merge instead joins columns side by side using a matching key.

Question 6Prepare the data

You import a text file whose first row contains the column names, but Power Query displays generic headers such as Column1 and Column2. Which action should you take?

  1. Transpose the table
  2. Split the columns by delimiter
  3. Use First Row as Headers Correct answer.
  4. Remove the first row

Explanation

Use First Row as Headers promotes the first data row into the column names and replaces the generated headers. The step records the promotion so that it re-applies on every refresh.

Question 7Prepare the data

A query contains more than one row per customer. You need to keep a single row for each CustomerID value. Which transformation achieves this with the least data loss?

  1. Group the table by CustomerID and count the rows
  2. Select the CustomerID column and use Remove Duplicates Correct answer.
  3. Remove all rows that contain errors
  4. Sort the rows and delete duplicates by hand

Explanation

Remove Duplicates keeps the first occurrence of each distinct combination of values in the selected columns and drops later repeats. Selecting only CustomerID makes the de-duplication key that single column.

Question 8Prepare the data

A column stores a category value only on the first row of each group, with nulls on the rows beneath it. You need every row in a group to carry that category. Which transformation should you use?

  1. Fill Down Correct answer.
  2. Remove the empty rows
  3. Replace null values with 0
  4. Unpivot the column

Explanation

Fill Down copies the last non-null value downward into the null cells below it, propagating each group's category. It is the standard fix for this ragged, report-style layout.

Question 9Prepare the data

Column profile statistics on a large table appear to reflect only a sample of the rows. How can you make the profiling statistics cover every row?

  1. Load the query to the model and inspect the Data view
  2. Increase the preview row limit in the report settings
  3. Add an index column before enabling profiling
  4. In the status bar of Power Query Editor, base column profiling on the entire data set Correct answer.

Explanation

Column profiling defaults to evaluating only the top 1000 rows, which the status bar reports. Switching the profiling scope to the entire data set makes the statistics and distributions reflect all rows, at the cost of longer evaluation.

Question 10Prepare the data

Column Distribution reports 12 distinct values and 4 unique values for a column. What does the difference between these two numbers indicate?

  1. Eight values appear exactly once
  2. Eight of the distinct values occur in more than one row Correct answer.
  3. Eight values are null
  4. Eight rows contain errors

Explanation

Distinct counts every different value in the column, while unique counts only those values that appear exactly once. The gap therefore represents the distinct values that are repeated in more than one row.

Question 11Prepare the data

You need to list the customers in the Customers query that have no matching row in the Orders query. Which merge join kind should you use?

  1. Inner join
  2. Full outer join
  3. Left outer join
  4. Left anti join Correct answer.

Explanation

A left anti join returns only the rows from the first table that have no match in the second table. That produces exactly the unmatched-customer list without further filtering.

Question 12Prepare the data

A numeric column contains a few error cells caused by text that could not be converted. You want to keep those rows and substitute a default value. Which approach is appropriate?

  1. Delete the column and reload the source
  2. Remove empty rows
  3. Remove errors
  4. Replace errors with a specified value Correct answer.

Explanation

Replace Errors substitutes a value you supply for every error cell while leaving the rows and other columns intact. It is the right choice when the row still carries useful information.

Question 13Prepare the data

You connect to a SQL Server database and want your transformation steps translated into a single native query that the server executes. Which term describes this behavior?

  1. DirectQuery storage mode
  2. Query caching
  3. Incremental refresh
  4. Query folding Correct answer.

Explanation

Query folding occurs when Power Query translates steps into the source's native query language so the source performs the work and returns only the result. Folding reduces the volume of data transferred and speeds up refresh.

Question 14Prepare the data

Analysts must be able to change the year used to filter a source table without editing the query's M code each time. What should you create?

  1. A calculated table in the model
  2. A separate copy of the query for each year
  3. A custom column
  4. A query parameter referenced in a filter step Correct answer.

Explanation

A Power Query parameter holds a single value that can be edited through the interface, and a filter step that references it updates without touching code. Parameters also make it easy to reuse the same logic across queries.

Question 15Prepare the data

A query lists individual order lines. You need a table with one row per customer that contains the total order amount. Which transformation should you use?

  1. Remove duplicates on CustomerID
  2. Pivot column
  3. Group by CustomerID with a Sum aggregation on the amount Correct answer.
  4. Merge the query with itself

Explanation

Group By collapses many rows into one row per key and applies aggregations such as Sum to the grouped values. That yields one row per customer with a correct total.

Question 16Prepare the data

A single FullName column stores values such as 'Smith, John'. You need one column for the surname and one for the given name. Which transformation is most appropriate?

  1. Pivot the column
  2. Split Column by Delimiter using the comma Correct answer.
  3. Group by FullName
  4. Extract the last character

Explanation

Split Column by Delimiter divides the text at each comma into separate columns, which can then be trimmed and renamed. It handles the recurring structure of every row in one repeatable step.

Question 17Prepare the data

A folder contains 24 monthly CSV files with identical columns, and files for new months will be added later. You need one query that always includes every file in the folder. Which approach should you use?

  1. Connect to the Folder connector, then use Combine Files Correct answer.
  2. Merge the files using a full outer join
  3. Append the 24 files manually one at a time
  4. Import each file as a separate table and relate them

Explanation

The Folder connector with Combine Files generates a function-based query that reads every file in the folder, so newly added files are picked up on refresh. It also keeps a single place to manage transformations for all files.

Question 18Prepare the data

You need a second query that starts from the output of an existing query and should reflect any later changes made to that existing query. Which command should you use?

  1. Append As New
  2. Merge As New
  3. Reference Correct answer.
  4. Duplicate

Explanation

Reference creates a new query whose source is the original query, so edits to the original flow through to the referencing query. Duplicate instead copies the steps into an independent query that no longer tracks the original.

Question 19Prepare the data

You create a staging query that other queries use as input, and it should not appear as a table in the semantic model. What should you do?

  1. Set the query's storage mode to DirectQuery
  2. Add the query to a dataflow
  3. Move the query into a folder
  4. Clear Enable load for the query Correct answer.

Explanation

Clearing Enable load keeps the query available to other queries in Power Query while preventing it from being loaded into the model. This is the standard way to keep helper or staging queries out of the model.

Question 20Prepare the data

After the credentials for a shared SQL Server source change, refreshes fail with an authentication error. Where in Power BI Desktop do you update the credentials for that source?

  1. Report settings > Page refresh
  2. Transform data > Manage Parameters
  3. Model view > Manage relationships
  4. File > Options and settings > Data source settings Correct answer.

Explanation

Data Source Settings lists each source the file connects to and lets you edit its credentials and permissions. Updating credentials there repairs authentication failures for all queries using that source.

Question 21Prepare the data

You must match a customer table to an order table, but the keys differ slightly, such as 'Contoso Ltd' versus 'Contoso Limited'. Which merge option is designed for this situation?

  1. An inner join on the exact key
  2. An append instead of a merge
  3. A left anti join on the exact key
  4. Fuzzy matching with an appropriate similarity threshold Correct answer.

Explanation

Fuzzy merge compares text similarity rather than requiring equality, and the threshold plus an optional transformation table controls how close a match must be. It is intended for keys that are spelled or formatted inconsistently.

Question 22Prepare the data

You need a new column that multiplies the Price column by the Quantity column for each row. Which custom column formula is correct?

  1. each [Price] * [Quantity] Correct answer.
  2. Price * Quantity
  3. = Price * Quantity
  4. SUM([Price] * [Quantity])

Explanation

A custom column expression uses each to iterate over rows and square brackets to reference fields, so each [Price] * [Quantity] is evaluated row by row. Field names must be enclosed in brackets to be recognized as column references.

Question 23Prepare the data

Which transformation applied to a SQL Server source would stop subsequent steps from folding to the source query?

  1. Renaming a column
  2. Changing a column's data type
  3. Adding an index column Correct answer.
  4. Filtering rows by a column value

Explanation

Adding an index column depends on a defined row order that the source query cannot express, so folding typically stops at that step. Steps after the breaker are evaluated locally even if earlier steps folded.

Question 24Prepare the data

You load monetary amounts and must avoid tiny rounding discrepancies in downstream calculations. Which data type should you choose in Power Query?

  1. Whole Number
  2. Text
  3. Decimal Number
  4. Fixed Decimal Number Correct answer.

Explanation

Fixed Decimal Number stores currency values in a fixed-point representation with four decimal digits, avoiding the floating-point artifacts that can appear with Decimal Number. It is the recommended type for money amounts that must reconcile exactly.

Question 25Prepare the data

A text column contains non-printable control characters plus leading and trailing spaces. Which combination of transformations removes both problems?

  1. Replace Values using an empty string
  2. Clean, then Split Column by delimiter
  3. Trim only
  4. Trim, then Clean Correct answer.

Explanation

Trim removes leading and trailing whitespace, while Clean removes non-printable characters, so applying both addresses the two issues. The order does not matter much, but both steps are needed for a complete cleanup.

Question 26Prepare the data

In Power Query Editor, which data profiling feature displays the percentage of values in a column that are valid, empty, or errors?

  1. Column statistics
  2. Column quality Correct answer.
  3. Column profile
  4. Column distribution

Explanation

Column quality summarizes the proportion of valid, error, and empty values in each column. The other profiling views provide distribution or broader statistics rather than that specific breakdown.

Question 27Prepare the data

You have two queries that contain the same columns, and you need to create one query by stacking their rows. Which transformation should you use?

  1. Pivot column
  2. Merge queries as new
  3. Append queries Correct answer.
  4. Combine files

Explanation

Appending combines tables by adding rows from one table below another, provided the columns align. Merging combines columns by matching rows on a key.

Question 28Prepare the data

A table has one row per product and separate columns for January, February, and March sales. You need to reshape it into rows with Month and Sales columns. Which transformation should you use?

  1. Group rows by product
  2. Split the month column
  3. Transpose the table
  4. Unpivot columns Correct answer.

Explanation

Unpivoting turns column headers such as January and February into values in an attribute column and moves the cell values into a value column. This converts a wide layout into a tall layout.

Question 29Prepare the data

Where can you view and edit the complete M code for a query in Power Query Editor?

  1. Advanced Editor Correct answer.
  2. Manage Parameters
  3. Query Dependencies
  4. Column Profile

Explanation

The Advanced Editor displays the full M script for the selected query and allows direct editing. The other windows show dependencies, profiling statistics, or parameter management.

Question 30Prepare the data

Which transformation changes every value in a selected text column to lowercase?

  1. Extract Length
  2. Replace Values
  3. Lowercase Correct answer.
  4. Trim

Explanation

The lowercase format transformation changes all letters in the selected text column to lowercase. Replace Values, Trim, and Extract Length perform different text operations.

Question 31Prepare the data

You need to combine two tables side by side by matching rows on a common key column. Which operation should you use?

  1. Unpivot columns
  2. Merge queries Correct answer.
  3. Group By
  4. Append queries

Explanation

Merging joins two tables by matching key values and brings columns together. Appending stacks rows instead of matching keys.

Question 32Prepare the data

Which connector should you use to import a comma-separated values file from a local folder?

  1. SharePoint folder
  2. Text/CSV Correct answer.
  3. Web
  4. OData Feed

Explanation

The Text/CSV connector reads delimited text files, including comma-separated values files. The other connectors target web pages, OData services, or SharePoint content.

Question 33Prepare the data

You need to change a column header from 'CustID' to 'Customer ID' without altering the data values. Which transformation should you use?

  1. Replace Values
  2. Change Type
  3. Duplicate Column
  4. Rename Column Correct answer.

Explanation

Rename Column changes only the column header. Replace Values and Change Type affect the data or its type, not the header text.

Question 34Prepare the data

You merge Customers with Orders. You need all rows from Customers and only matching rows from Orders. Which join kind should you use?

  1. Right outer
  2. Inner
  3. Full outer
  4. Left outer Correct answer.

Explanation

A left outer join keeps every row from the first table and includes matching rows from the second table where they exist. Inner, full outer, and right outer joins have different row-retention rules.

Question 35Prepare the data

Which transformation should you use to add a new column by defining an if-then-else rule based on another column?

  1. Group By
  2. Column From Examples
  3. Conditional Column Correct answer.
  4. Pivot Column

Explanation

Conditional Column adds a column whose values are determined by explicit if-then-else logic. Group By, Pivot Column, and Column From Examples serve different reshaping or derivation purposes.

Question 36Prepare the data

A column contains values such as 'North-123' and 'South-456'. You need only the region text before the hyphen. Which transformation should you use?

  1. Split Column by Number of Characters
  2. Replace Values
  3. Extract Text Before Delimiter Correct answer.
  4. Trim

Explanation

Extract Text Before Delimiter returns the characters to the left of a specified delimiter such as a hyphen. Splitting by character count would depend on fixed lengths, which these values do not have.

Question 37Prepare the data

A text column contains numbers such as '1.234,56' using a European locale. You need to convert them to decimal numbers correctly. Which approach should you use?

  1. Change Type to Decimal Number using the source locale Correct answer.
  2. Apply Trim and Clean, then change type to Text
  3. Replace the comma with a period and change type to Whole Number
  4. Change Type to Decimal Number using the current locale

Explanation

When delimiters differ from the local settings, the data type conversion must use the locale of the source data so the period and comma are interpreted correctly. Using the current locale can misread the thousands and decimal separators.

Question 38Prepare the data

A table has identifier columns CustomerID and OrderDate, plus several month columns. Several new month columns will be added each quarter. You need to unpivot all columns except the identifiers so future columns are included automatically. What should you do?

  1. Select all current month columns, then use Unpivot Columns
  2. Select CustomerID and OrderDate, then apply Pivot Column to the month columns
  3. Use Unpivot Other Columns after selecting the identifier columns Correct answer.
  4. Select all columns, then use Transpose

Explanation

Unpivot Other Columns keeps the selected identifier columns fixed and unpivots every other column, including columns added later. Selecting specific month columns would not automatically include future columns.

Question 39Prepare the data

A data source contains publicly available reference data and can be shared with other users without restrictions. Which privacy level should you set?

  1. Private
  2. Public Correct answer.
  3. Confidential
  4. Organizational

Explanation

The Public privacy level is intended for data that can be shared freely and has no confidentiality restrictions. Private and Organizational levels impose stricter separation rules.

Question 40Prepare the data

You have FirstName and LastName columns and need a single FullName column with a space between the values. Which transformation should you use?

  1. Group By
  2. Unpivot Columns
  3. Split Column
  4. Merge Columns Correct answer.

Explanation

Merge Columns combines two or more text columns into one and lets you choose a separator such as a space. Split Column performs the reverse operation.

Question 41Prepare the data

A Discount column contains null values. You need to replace each null with 0 while keeping all other values unchanged. Which transformation should you use?

  1. Replace Values Correct answer.
  2. Remove Empty
  3. Fill > Down
  4. Replace Errors

Explanation

Replace Values can find null entries and replace them with a specified value such as 0. Fill Down copies the previous non-null value instead of inserting a fixed replacement.

Question 42Prepare the data

You need to round a UnitPrice column to two decimal places for reporting, while keeping the column numeric. Which transformation should you use?

  1. Split Column
  2. Round Correct answer.
  3. Change Type to Text
  4. Remove Duplicates

Explanation

The Round transformation changes numeric values to a specified number of decimal places while keeping them numeric. Converting to text or splitting would not preserve the numeric type for calculations.

Question 43Prepare the data

You need a custom column that calculates the number of whole days between OrderDate and ShipDate. Which formula should you use?

  1. Number.Round([ShipDate] - [OrderDate])
  2. Duration.Days([ShipDate] - [OrderDate]) Correct answer.
  3. Date.AddDays([OrderDate], [ShipDate])
  4. Date.Day([ShipDate] - [OrderDate])

Explanation

Subtracting one date from another produces a duration, and Duration.Days returns the number of whole days in that duration. Date.AddDays adds a number of days to a date rather than calculating a difference.

Question 44Prepare the data

You need to concatenate City and Country columns into one value separated by a comma and space. Which expression should you use in a custom column?

  1. Text.Combine({[City], [Country]}, ", ") Correct answer.
  2. Text.Trim([City] & [Country] & ", ")
  3. Text.Split([City], ",") & [Country]
  4. Text.Length([City] & [Country] & ", ")

Explanation

Text.Combine joins a list of text values using a specified separator, so it produces City, Country. The other expressions either omit the separator between the two values or return a different result.

Question 45Prepare the data

You merge two tables on CustomerID, but no rows match because one key is text and the other is numeric. What should you do before merging?

  1. Make both keys the same data type Correct answer.
  2. Change both columns to Date
  3. Apply a fuzzy merge with a similarity threshold of 0.8
  4. Remove the key columns

Explanation

Merge operations compare key values by data type, so text and numeric representations of the same identifier may not match. Converting both key columns to the same type allows equality matching to succeed.

Question 46Prepare the data

You need to create a table containing every combination of products and regions. What is a valid way to produce this Cartesian product in Power Query?

  1. Use a left anti join between Products and Regions and expand all columns
  2. Append the Products query to the Regions query and then remove duplicate rows
  3. Merge the queries on a dummy key with the same value in every row Correct answer.
  4. Group both queries by name and then merge them using an inner join

Explanation

A Cartesian product can be produced by giving every row the same dummy key in both tables and merging on that key, so every product matches every region. Appending or anti-joining does not generate all combinations.

Question 47Prepare the data

A column contains JSON text such as {"customer":"Contoso","amount":100}. You need separate Customer and Amount columns. Which transformation sequence should you use?

  1. Pivot Column, then Remove Duplicates
  2. Split Column by Delimiter, then Change Type to Decimal Number
  3. Parse > JSON, then expand the resulting Record column Correct answer.
  4. Group By, then Unpivot Columns

Explanation

Parsing JSON converts the text into structured records or lists, and expanding the resulting record exposes fields such as customer and amount as separate columns. Splitting text by delimiters is unreliable for nested JSON.

Question 48Prepare the data

You pivot a table where each OrderID can have multiple rows for the same Attribute value. The pivot step returns errors. What should you do before pivoting?

  1. Change all columns to Text and then use the Pivot Column transformation
  2. Aggregate values so each OrderID and Attribute pair is unique Correct answer.
  3. Use Append queries instead of Merge so duplicate rows are combined
  4. Remove the Attribute column and then pivot the remaining text columns

Explanation

Pivot Column expects at most one value per identifier and attribute combination, so duplicate pairs cause errors. Aggregating duplicates or adding an index to make each pair unique prepares the table for pivoting.

Question 49Prepare the data

You have a query that transforms one table, and you need to apply the same transformation logic to each table returned from a folder. What should you create?

  1. A privacy level that allows combining all tables
  2. A custom function built from the transformation query Correct answer.
  3. A parameter with a list of allowed values for each table
  4. A separate data source credential for each table

Explanation

Converting the transformation query into a custom function allows the same logic to be invoked for each table from the folder. Parameters and privacy levels control inputs and data combination rules, not reusable transformation logic.

Question 50Prepare the data

You need to separate rows that fail a numeric conversion into a query for review while keeping successful rows. Which M construct should you use in a custom column?

  1. Text.Trim([Amount])
  2. Number.Round([Amount], 0)
  3. try [Amount] otherwise null Correct answer.
  4. Date.From([Amount])

Explanation

The try expression evaluates a value and returns a record indicating success or failure, and otherwise supplies a fallback such as null for errors. Filtering on the fallback lets you isolate failed conversions from successful rows.