Courseiva
Back to Microsoft Power BI Data Analyst PL-300 questions

Scenario-based practice

Hard Difficulty Questions

Practise Microsoft Power BI Data Analyst PL-300 practice questions — original exam-style scenarios covering every exam domain, with detailed explanations, wrong-answer analysis, and common exam traps.

20
scenario questions
PL-300
exam code
Microsoft
vendor

Scenario guide

How to approach hard difficulty questions

These are the questions most candidates get wrong. They require connecting multiple concepts, reading tricky output, or knowing edge-case behaviour that isn't on most study cards. Practising them trains you to operate under uncertainty — a necessary skill on the real exam.

Quick answer

Hard Difficulty Questions questions test whether you can apply the concept in context, not just recognise a definition.

How the topic appears in realistic exam-style scenarios.

Which detail in the question changes the correct answer.

How to eliminate plausible but wrong options.

How to connect the question back to the wider exam objective.

Related practice questions

Related PL-300 topic practice pages

Scenario questions usually connect to one or more exam topics. Use these links to review the underlying concepts behind the scenario.

Practice set

Practice scenarios

Question 1hardmultiple choice
Full question →

You have a Power BI report that uses DirectQuery to a SQL Server database. Users report that the report is slow when filtering by a slicer on a large dimension table. You need to improve performance without changing the data source. Which approach should you take?

Question 2hardmultiple choice
Full question →

You have a Power BI model with tables: Sales (DateKey, Amount) and Date (DateKey, Year, Month, Day). The measure above is intended to show sales for the current year ignoring any filters on date. However, when placed in a matrix with Month on rows, it returns the same value for every month. What is the most likely reason?

Exhibit

Refer to the exhibit. The following DAX expression is used in a measure:

CALCULATE(
    SUM(Sales[Amount]),
    FILTER(
        ALL(Date),
        Date[Year] = MAX(Date[Year])
    )
)
Question 3hardmultiple choice
Full question →

You are a Power BI developer for a financial services company. The company has a large transactional database in Azure Synapse Analytics. The database contains a table 'Transactions' with 2 billion rows. The table includes columns: TransactionID, AccountID, TransactionDate, Amount, Type (Deposit/Withdrawal), Status (Pending/Completed). You need to build a Power BI semantic model that allows executives to analyze monthly trends of completed deposit amounts by account type (e.g., Savings, Checking). The account type is in a separate 'Accounts' table (1 million rows) with columns: AccountID, AccountType, CustomerID. The model must refresh within 2 hours. Due to the large data volume, you cannot import the entire Transactions table. What should you do?

Question 4hardmulti select
Full question →

Which TWO are valid reasons to use a dataflow in Power BI when preparing data?

Question 5hardmulti select
Full question →

Which TWO are best practices for optimizing Power Query performance? (Choose two.)

Question 6hardmultiple choice
Full question →

You are connecting Power BI to an Azure SQL Database. The database contains a table 'Orders' with 10 million rows. You need to minimize the data load time and ensure that only the most recent 30 days of data are imported. Which approach should you use?

Question 7hardmultiple choice
Full question →

You are troubleshooting a Power Query transformation that groups sales data by ProductID. The query runs slowly and you suspect the filter is being applied after loading all rows. What change would improve performance by pushing the filter to the source?

Exhibit

Refer to the exhibit.

```
M query:
let
    Source = Sql.Database("myserver.database.windows.net", "SalesDB"),
    SalesTable = Source{[Schema="dbo",Item="Sales"]}[Data],
    FilteredRows = Table.SelectRows(SalesTable, each [OrderDate] >= #date(2023,1,1)),
    GroupedRows = Table.Group(FilteredRows, {"ProductID"}, {{"TotalSales", each List.Sum([Amount]), type number}})
in
    GroupedRows
```
Question 8hardmulti select
Full question →

You have a Power BI data model with a table named Employees that contains: EmployeeID, ManagerID, Department, and Salary. You need to create a parent-child hierarchy for the reporting structure. Which THREE actions should you perform?

Question 9hardmulti select
Full question →

Which THREE of the following are best practices for optimizing data load performance in Power BI?

Question 10hardmultiple choice
Full question →

A company wants to create a Power BI report that shows sales performance by region. The data contains a table 'Sales' with columns: Date, Amount, RegionID, and ProductID. They also have a 'Regions' table with RegionID and RegionName. They want to display a matrix visual with RegionName on rows and Year on columns, with the sum of Amount as values. However, the report displays only 'RegionID' instead of 'RegionName'. What is the most likely cause?

Question 11hardmultiple choice
Full question →

Refer to the exhibit. You have defined row-level security (RLS) in a Power BI semantic model using Role-level security. The JSON shows three rules for the 'Sales' and 'Targets' tables. The user 'john@contoso.com' belongs to this role. John's manager column in the Sales table has the value 'john@contoso.com'. What data will John see when he queries the model?

Exhibit

Refer to the exhibit.
```
{
  "rules": [
    {
      "table": "Sales",
      "filter": "Sales[Region] = 'West'"
    },
    {
      "table": "Sales",
      "filter": "Sales[Manager] = USERNAME()"
    },
    {
      "table": "Targets",
      "filter": "Targets[Region] = 'West'"
    }
  ]
}
```
Question 12hardmultiple choice
Full question →

You are a data analyst at a global retail company. You are building a Power BI semantic model to analyze sales performance across 50 countries. The data source is an Azure SQL Database with tables: Sales (SalesID, ProductID, StoreID, DateKey, Quantity, Amount), Products (ProductID, ProductName, CategoryID), Stores (StoreID, StoreName, CountryID), Countries (CountryID, CountryName), and Dates (DateKey, Date, Year, Month, Quarter). The model must support: 1) Hierarchical drill-down from Year to Quarter to Month. 2) Slicers for Country and Product Category. 3) Measures for Total Sales, Year-over-Year growth, and Moving Average (last 12 months). 4) The ability to filter by date range (e.g., last 3 months) while preserving the ability to show YoY growth for the selected period. The database contains 500 million rows in the Sales table. The company has strict performance requirements: report pages must load within 5 seconds. You need to design the model in Power BI Desktop. Which approach should you take?

Question 13hardmultiple choice
Full question →

Refer to the exhibit. You have the above Power Query M expression. You notice that the query is taking a long time to load. You suspect that query folding is not occurring for the filter on the Year column. What is the most likely reason?

Exhibit

let
    Source = Sql.Database("sqlserver01", "SalesDB"),
    dbo_Sales = Source{[Schema="dbo",Item="Sales"]}[Data],
    #"Filtered Rows" = Table.SelectRows(dbo_Sales, each [Year] >= 2020)
in
    #"Filtered Rows"
Question 14hardmultiple choice
Full question →

You are a data analyst for a global retail company. The company uses Power BI Premium capacity. You are building a dataset that combines sales data from three sources: 1. An Azure SQL Database that stores transactional sales data (10 million rows per day, retained for 5 years). 2. A SharePoint Online folder containing monthly Excel reports from regional offices (each report has a different structure). 3. A Dataverse table that contains customer feedback scores.

Requirements: - The dataset must support near real-time reporting for the current month's sales (maximum 15-minute latency). - Historical sales data (older than current month) can be refreshed daily. - Customer feedback scores should be updated every hour. - The Excel reports from SharePoint must be combined into a single table with consistent columns. - The final dataset should be optimized for fast query performance.

You need to design the data preparation strategy. What should you do?

Question 15hardmulti select
Full question →

Which THREE of the following are best practices for designing a Power BI data model?

Question 16hardmulti select
Full question →

Which THREE of the following are best practices when designing a Power BI data model for performance?

Question 17hardmultiple choice
Full question →

You are designing a Power BI report for a sales team. The team needs to see revenue by product category, but also want to view daily trends for a selected product. The data has over 10 million rows. What visual design approach minimizes report load time?

Question 18hardmultiple choice
Full question →

You are reviewing a Power BI model definition with incremental refresh policy. The Sales table has an incremental refresh policy that refreshes the last 365 days. However, the report shows data for dates beyond 365 days ago. What is the most likely reason?

Exhibit

Refer to the exhibit.

```
{
  "tables": [
    {
      "name": "Sales",
      "columns": [
        {"name": "Date", "dataType": "dateTime"},
        {"name": "ProductID", "dataType": "int64"},
        {"name": "SalesAmount", "dataType": "double"}
      ],
      "partitions": [
        {
          "name": "CurrentYear",
          "mode": "incrementalRefresh",
          "source": {
            "type": "m",
            "expression": "let ..."
          },
          "refreshPolicy": {
            "policyType": "basic",
            "incrementalGranularity": "day",
            "incrementalPeriods": 365,
            "incrementalPeriodsOffset": 0
          }
        }
      ]
    }
  ]
}
```
Question 19hardmultiple choice
Full question →

You are a Power BI administrator for a large enterprise. The company has a Power BI tenant with thousands of workspaces. You need to audit all shared links (shareable links) that have been created across the tenant to identify any that are shared with external users. You also need to revoke any links that were created more than 90 days ago. You want to use a PowerShell script to accomplish this efficiently. The script must output a CSV file with columns: LinkId, WorkspaceName, ReportName, CreatedDate, ExternalSharing. What should you do?

Question 20hardmultiple choice
Full question →

You are designing a report for executives. The report contains a matrix visual with many rows and columns. Users complain that the visual is slow to render. Which design change would most improve performance?

These PL-300 practice questions are part of Courseiva's free Microsoft certification practice question bank. Courseiva provides original exam-style PL-300 questions with detailed explanations, topic-based practice, mock exams, readiness tracking, and study analytics.