Microsoft Certification

PL-300 — Microsoft Power BI Data Analyst Study Guide

62 practice questions with correct answers and detailed explanations. Use this guide to review concepts before taking the practice exam.

▶ Take Practice Exam 62 questions  ·  Free  ·  No registration

About the PL-300 Exam

The Microsoft Microsoft Power BI Data Analyst (PL-300) certification validates professional expertise in Microsoft technologies. This study guide covers all 62 practice questions from our PL-300 practice test, complete with correct answers and explanations to help you understand each concept thoroughly.

Review each question and explanation below, then test yourself with the full interactive practice exam to measure your readiness.

62 Practice Questions & Answers

Q1 Medium

You are creating a Power BI report and need to ensure that row-level security (RLS) is applied based on the current user's department. Which function should you use in the DAX filter expression to reference the logged-in user?

  • A USERPRINCIPALNAME() ✓ Correct
  • B IDENTITY()
  • C USERNAME()
  • D CURRENTUSER()
Explanation

USERPRINCIPALNAME() returns the user's email address in the format of a principal name, which is the recommended function for RLS in Power BI to match against user identity data.

Q2 Medium

When publishing a Power BI report to the service, you notice that refresh schedules are not available for your dataset. What is the most likely cause?

  • A The dataset uses DirectQuery exclusively ✓ Correct
  • B The report has more than 100 visuals
  • C The workspace is configured in Free capacity
  • D The dataset contains calculated columns
Explanation

DirectQuery connections do not support scheduled refreshes because data is queried directly from the source in real-time. Only Import mode and Hybrid models (with some imported tables) support scheduled refresh.

Q3 Medium

You have a Power BI model with sales data across multiple regions. You need to create a measure that calculates year-to-date (YTD) sales and must work correctly when slicers are applied to the date dimension. Which approach is most appropriate?

  • A Create a calculated column that marks YTD dates
  • B Use TOTALYTD() function with the sales column and date column ✓ Correct
  • C Use a simple SUM formula with a manual date filter
  • D Use DATESYTD() to pre-filter the data in the data model
Explanation

TOTALYTD() is specifically designed to calculate cumulative totals from the beginning of the year to the current date and automatically respects date slicers applied to the report.

Q4 Hard

Your Power BI dataset contains approximately 500 million rows of transaction data. Users report slow performance when browsing the report. What is the most effective optimization strategy?

  • A Convert all columns to text format for faster processing
  • B Use aggregations with DirectQuery to create pre-aggregated import tables ✓ Correct
  • C Split the dataset into multiple reports with fewer rows each
  • D Increase the RAM allocation to the Power BI Premium capacity
Explanation

Aggregations in Power BI allow DirectQuery connections to use pre-aggregated import tables for summary-level queries, dramatically improving performance without compromising detail access when needed.

Q5 Medium

You are designing a data model and need to decide between a star schema and a snowflake schema. Which statement best describes when you should use a snowflake schema?

  • A When you have very large fact tables and want to optimize storage by normalizing dimension tables ✓ Correct
  • B When working with real-time streaming data
  • C When query performance is the absolute priority and storage space is unlimited
  • D When all source data comes from a single table
Explanation

Snowflake schemas normalize dimension tables to save storage space, which is beneficial when dimensions are very large or contain redundant data, though they may require more complex joins.

Q6 Hard

A colleague has created a Power BI report with sensitive financial data. The report is shared with a security group, but some users within that group should not see certain rows. What is the best way to implement this restriction?

  • A Use Dynamic Row-Level Security (RLS) with a role that evaluates user credentials against a security table ✓ Correct
  • B Apply column-level security to hide sensitive columns from all users
  • C Use object-level security to restrict access to specific visuals
  • D Create separate reports for different user groups and manage sharing manually
Explanation

Dynamic RLS uses roles with DAX expressions that evaluate against the current user's identity and a security table, allowing row-level filtering based on user attributes without creating separate reports.

Q7 Easy

You have imported data from an Excel file into Power BI Desktop. The column containing dates is formatted as text (e.g., '2024-01-15'). What is the first step you should take to use this column in time-based analysis?

  • A Change the data type from Text to Date in the Data Type column of the Data pane
  • B Use the Transform Data feature to convert the column in the Power Query Editor ✓ Correct
  • C Create a relationship between this column and the Date table using the Text data type
  • D Create a new calculated column using the DATEVALUE() function
Explanation

Power Query Editor's transformation tools are the proper place to convert text dates to actual date data types, ensuring clean data transformation before the data reaches the model.

Q8 Medium

Your Power BI report uses a large dimension table with 10 million customer records, but only 5,000 customers have associated transactions. You want to improve model performance. What optimization technique should you apply?

  • A Remove all customers without transactions from the dimension table ✓ Correct
  • B Create an inactive relationship and activate it only when needed
  • C Compress the customer table by removing unnecessary columns
  • D Move the customer table to DirectQuery mode
Explanation

Including inactive customers in the dimension significantly increases model size and complexity. Removing them improves performance by reducing table size and the number of possible relationship cardinalities.

Q9 Medium

You are creating a measure that needs to show the sales amount only for products in the 'Premium' category and only for the current month. What is the most efficient way to write this measure?

  • A Create two separate measures and multiply them together
  • B Use CALCULATE() with FILTER() to apply both conditions simultaneously ✓ Correct
  • C Use SUMIFS() with filters for category and month
  • D Use SUMPRODUCT() with conditional logic for both criteria
Explanation

CALCULATE() with FILTER() allows multiple conditions to be applied efficiently in a single context, providing better performance and clarity compared to SUMIFS() or SUMPRODUCT() for complex filter scenarios.

Q10 Hard

You notice that a measure in your Power BI model returns incorrect results when a slicer is applied. Upon investigation, you find that the measure uses ALLEXCEPT() but the slicer is not being respected. What is the likely issue?

  • A The slicer is on a column that is not included in the ALLEXCEPT() function
  • B The data type of the slicer column is incompatible with the measure
  • C The measure needs to be converted to an implicit measure
  • D The ALLEXCEPT() function is preventing the slicer context from being applied ✓ Correct
Explanation

ALLEXCEPT() removes all filter context except for the specified columns, which overrides slicer selections. If you need slicers to work, you should use alternative functions like REMOVEFILTERS() or adjust your formula logic.

Q11 Medium

You are setting up incremental refresh for a dataset that contains 100 million historical records. What is the primary benefit of using incremental refresh in this scenario?

  • A It allows only new and modified rows to be refreshed, reducing refresh time and storage overhead ✓ Correct
  • B It automatically deletes old historical data to free up space
  • C It converts the dataset to DirectQuery mode automatically
  • D It reduces the initial dataset size by 50%
Explanation

Incremental refresh only refreshes the most recent data (typically the last few days) and archives older partitions, significantly reducing refresh duration and improving overall system performance.

Q12 Medium

A user reports that a measure they created displays the same value across all rows in a table visual, even though different products are selected. What is the most likely cause?

  • A The table visual is configured to show only total rows
  • B The measure implicitly uses ALL() or ALLEXCEPT(), removing row context from the visual ✓ Correct
  • C The measure's data type is set to Text instead of Decimal
  • D The measure uses CALCULATE() with the wrong filter syntax
Explanation

When a measure uses ALL() or similar functions that remove filter context, it will show the same aggregated value regardless of which products are displayed, because the row context is removed.

Q13 Hard

You need to create a Power BI report that allows users to dynamically switch between different visualizations for the same dataset without creating separate pages. Which feature should you use?

  • A Drill-through pages configured for different visualization types
  • B Power Query parameters to reload different datasets
  • C Field parameters to swap visuals and measures dynamically ✓ Correct
  • D Bookmarks with conditional visibility rules
Explanation

Field parameters (introduced in Power BI) allow users to select which measure or visual to display from a dropdown list without manual page switching, providing a seamless dynamic experience.

Q14 Hard

You have a fact table with 50 million rows and a dimension table with 10,000 rows. The relationship is one-to-many. You notice that this relationship is consuming significant memory. What optimization should you consider?

  • A Create a role-playing dimension to reduce table redundancy
  • B Convert the relationship to a many-to-many relationship
  • C Switch the dimension table to DirectQuery mode while keeping the fact table in Import mode ✓ Correct
  • D Use a composite key relationship with multiple columns
Explanation

Using DirectQuery for large dimension tables while importing fact tables can reduce memory usage significantly, though it may impact query performance, making it a trade-off decision.

Q15 Hard

You are analyzing query performance and notice that a measure is calculating across the entire dataset every time a slicer changes. What technique can you use to improve this performance?

  • A Reduce the number of rows in the fact table
  • B Use query folding to push calculations to the data source
  • C Convert the measure to a calculated column
  • D Implement aggregations to pre-calculate common query patterns ✓ Correct
Explanation

Aggregations cache pre-calculated results for common queries, allowing the engine to serve cached results instead of recalculating from raw data each time, significantly improving response times.

Q16 Medium

You have a Power BI dataset with sales data from multiple subsidiaries. Each subsidiary's finance team should only see their own subsidiary's data. You have decided to implement RLS. What is a prerequisite for this approach to work correctly?

  • A A table must exist that maps user identities (emails or IDs) to subsidiaries ✓ Correct
  • B All fact tables must contain a subsidiary column
  • C The dataset must be published to a Premium capacity
  • D All users must have the same email domain
Explanation

RLS relies on a security or mapping table that contains the relationship between user identities and the data they are permitted to see, allowing the DAX role to filter appropriately.

Q17 Medium

You are creating a dashboard that displays KPIs for multiple business units. Each business unit should see only their own KPI values. You want to minimize report maintenance. What is the best approach?

  • A Use RLS to automatically filter data based on the logged-in user's business unit and publish a single report ✓ Correct
  • B Publish the report only to each business unit's security group separately
  • C Create parameters for users to manually filter by business unit
  • D Create separate reports for each business unit
Explanation

Using RLS with a single published report is the most maintainable approach, as updates to the report automatically apply to all users without managing multiple report versions.

Q18 Medium

A Power BI report is experiencing slow performance due to a measure that uses FILTER() with complex logic across large tables. What is the most appropriate optimization technique?

  • A Replace FILTER() with SUMIFS() where possible to reduce DAX complexity ✓ Correct
  • B Create an aggregation table in the data model to pre-calculate the filtered results
  • C Break the measure into multiple simpler measures and sum them
  • D Add more RAM to the Power BI capacity to handle the complex calculation
Explanation

SUMIFS() is optimized at the engine level and typically performs better than FILTER() for standard filtering scenarios, reducing memory consumption and improving query speed.

Q19 Medium

You need to create a visual that shows the top 10 products by sales, but the selection should be dynamic based on a slicer for product category. How should you implement this?

  • A Use the Top N feature in the visual filters with a dynamic expression based on the category slicer ✓ Correct
  • B Create a separate visual for each product category
  • C Create a measure that ranks products and use a slicer to filter the category dynamically
  • D Use a static top 10 filter and manually update it when categories change
Explanation

Power BI's Top N feature in visual filters can be configured with dynamic expressions that respond to slicer selections, automatically recalculating the top products for the selected category.

Q20 Easy

Your dataset contains sales transactions with a timestamp column that includes both date and time information. However, most of your time-based analysis is at the day level. What is the best practice for optimizing this scenario?

  • A Store all timestamps as text to reduce storage requirements
  • B Create a Date table from the date part of the timestamp and use it for time-based analysis ✓ Correct
  • C Keep the timestamp column as-is and use day-level aggregations in all measures
  • D Create a calculated column that converts timestamps to dates using INT() function
Explanation

Creating a proper Date table from the timestamp data provides better performance, enables time intelligence functions, and allows for meaningful relationships with fact tables.

Q21 Hard

You are implementing a Power BI solution for a large enterprise with thousands of users. The organization uses Azure AD for authentication. Which approach provides the best balance of security and maintainability for RLS?

  • A Use Power BI service security groups to control data access
  • B Implement RLS at the report level using bookmarks
  • C Create RLS roles based on Azure AD groups rather than individual users ✓ Correct
  • D Assign each user to a separate RLS role
Explanation

Using Azure AD groups in RLS roles reduces maintenance overhead and aligns with enterprise identity management practices, automatically including users as they are added to or removed from groups.

Q22 Hard

You have configured a Power BI dataset with aggregations, but you notice that some queries are not using the aggregated tables. What is the most likely reason?

  • A The aggregation tables are too small to be useful
  • B The aggregations are defined on columns that are not indexed in the source database
  • C The queries are accessing detail-level data or using filters that are not covered by the aggregation definition ✓ Correct
  • D The dataset is in Premium capacity but aggregations are only available in Pro capacity
Explanation

Aggregations only improve performance when queries match the aggregation's granularity and filters. If a query requests data at a different granularity or with filters not in the aggregation, it must query the detail data.

Q23 Hard

You are building a financial report where calculations must respect fiscal periods that differ from calendar periods. What is the best approach?

  • A Create a custom calendar table that maps calendar dates to fiscal periods and use time intelligence functions with this table ✓ Correct
  • B Modify all date values in the data to match fiscal periods
  • C Create separate measures for each fiscal month
  • D Use DATEADD() with a +/- month offset to adjust calculations
Explanation

A custom calendar table that maps calendar dates to fiscal periods is the proper way to handle non-standard calendar logic while maintaining compatibility with Power BI's time intelligence functions.

Q24 Medium

A user is accessing a Power BI report that uses RLS. They report being unable to see any data in a particular visual. Which troubleshooting step should you perform first?

  • A Check if the user's identity is correctly mapped in the security table used by the RLS role ✓ Correct
  • B Remove the user from all Azure AD groups and re-add them
  • C Verify that the user has Pro or Premium licensing
  • D Rebuild the entire dataset to refresh the RLS rules
Explanation

The most common cause of no data appearing in an RLS-protected report is that the user's identity is not properly mapped in the security table, preventing the RLS role from returning any rows.

Q25 Medium

You have created a Power BI model with multiple measures for different currencies. These measures need to convert values based on exchange rates that change monthly. What is the most maintainable solution?

  • A Use multiple calculated columns to pre-calculate conversions for each currency
  • B Hardcode exchange rates in each measure and update them manually each month
  • C Create an Exchange Rate dimension table and use LOOKUPVALUE() in measures to apply rates dynamically ✓ Correct
  • D Store exchange rates as parameters and update them through the Power BI service
Explanation

An Exchange Rate dimension table with LOOKUPVALUE() allows dynamic rate application based on the date context, making it easy to update rates without modifying measure formulas.

Q26 Hard

Your Power BI report contains a measure that uses RELATED() to reference a column from a related dimension table. However, the measure fails when a slicer on an unrelated table is applied. Why is this occurring?

  • A The measure needs to be recalculated after applying the slicer
  • B Slicers on unrelated tables cannot coexist with RELATED() functions
  • C RELATED() only works with active relationships and breaks with filter context from unrelated tables ✓ Correct
  • D The unrelated table is causing a circular reference in the model
Explanation

RELATED() traverses active relationships to pull values from related tables. If a slicer creates unexpected filter context or the relationship is broken, RELATED() may return unexpected results or errors.

Q27 Hard

You are designing a data model where a fact table needs to reference multiple dates (OrderDate, ShipDate, DeliveryDate). What is the best practice for implementing this?

  • A Store all dates in a single column and use conditional logic to distinguish between them
  • B Create separate Date tables for each date type (OrderDate table, ShipDate table, etc.)
  • C Create a single Date table and create multiple relationships from the fact table to different date columns
  • D Create a single Date table and use role-playing dimensions by creating multiple inactive relationships ✓ Correct
Explanation

Role-playing dimensions use a single Date table with multiple relationships (one active, others inactive), allowing users to switch which date dimension is active without creating redundant table copies.

Q28 Medium

You are creating a Power BI report and need to connect to a SQL Server database. Which authentication method should you use if you want to enable Single Sign-On (SSO) for on-premises data?

  • A Basic authentication with username and password
  • B Service Principal with certificate-based authentication
  • C Anonymous connection with public access
  • D Kerberos delegation for SSO ✓ Correct
Explanation

Kerberos delegation is the authentication method that enables Single Sign-On (SSO) for on-premises SQL Server databases in Power BI. This allows users to be automatically authenticated using their Windows credentials without re-entering passwords.

Q29 Medium

Which of the following best describes the purpose of a calculated column in Power BI?

  • A It allows you to perform aggregations without creating relationships
  • B It calculates values dynamically at query time for each row in a table
  • C It stores the result in memory and is refreshed only when the data model is reloaded ✓ Correct
  • D It creates a new table that is independent of the original data source
Explanation

A calculated column stores its results in the data model and is refreshed when the entire model is refreshed. Unlike DAX measures, calculated columns add to the model size and are row-context dependent.

Q30 Hard

You need to create a measure that shows the total sales for the current month. The measure should automatically adjust based on the date context. Which DAX function would be most appropriate?

  • A SUMIFS with a WHERE clause to filter the current month
  • B SUMPRODUCT with a fixed date parameter that requires manual updates
  • C CALCULATE with MONTH and TODAY functions to evaluate in filter context ✓ Correct
  • D SUM combined with TOTALYTD to calculate year-to-date totals
Explanation

CALCULATE is the primary DAX function for modifying filter context, and when combined with time intelligence functions like MONTH and TODAY, it enables dynamic measures that automatically adjust based on the date context in your report.

Q31 Medium

When should you use a star schema instead of a normalized schema in Power BI data modeling?

  • A When you need to store data in third normal form for compliance
  • B When you have many-to-many relationships that require bridge tables
  • C When your source system requires minimal data redundancy
  • D To improve query performance and simplify report creation with denormalized dimensions ✓ Correct
Explanation

A star schema is preferred in Power BI because it denormalizes dimensions, reducing the number of joins needed and improving query performance while making report design more intuitive. This is the recommended approach for analytical workloads.

Q32 Medium

You have a Power BI dataset published to the Power BI Service. You want to ensure that certain users can only see data for their region. What is the recommended approach?

  • A Create separate reports for each region and manually distribute them
  • B Filter the data in the Power Query Editor before publishing
  • C Ask each user to create personal bookmarks to filter their specific region
  • D Use Row-Level Security (RLS) with roles defined in the Power BI Service ✓ Correct
Explanation

Row-Level Security (RLS) is the proper mechanism for restricting data access based on user identity. You define roles in Power BI with DAX filters that automatically restrict what data each user sees when they access the report.

Q33 Medium

Which Power Query transformation should you use when you need to extract data from a semi-structured JSON file?

  • A Import the JSON as-is and manually create columns in the data model
  • B Use Expand Columns to flatten nested structures into tabular format ✓ Correct
  • C Use Split Column to separate JSON key-value pairs by commas
  • D Convert JSON to XML format first, then use XML parsing functions
Explanation

Power Query's Expand Columns feature automatically flattens nested JSON structures into a tabular format by expanding records and lists into separate columns, making semi-structured data suitable for analysis.

Q34 Hard

You notice that your Power BI report is loading slowly. After investigation, you discover the issue is related to many-to-many relationships in your data model. Which optimization technique would you apply?

  • A Duplicate data in the dimension tables to avoid the relationship entirely
  • B Remove all relationships and use VLOOKUP equivalents in DAX
  • C Introduce a bridge table to convert the many-to-many relationship into two one-to-many relationships ✓ Correct
  • D Switch to DirectQuery mode to move processing to the source system
Explanation

Creating a bridge table (also called a junction table) properly handles many-to-many relationships by breaking them into two one-to-many relationships, which improves performance and maintains data integrity better than workarounds.

Q35 Medium

What is the primary advantage of using the Power BI Deployment Pipelines feature?

  • A It enables automated testing and validation before content moves from development to production ✓ Correct
  • B It converts Power BI reports into paginated reports automatically
  • C It reduces the file size of your Power BI reports by compressing data
  • D It allows you to version control your Power BI files in GitHub
Explanation

Deployment Pipelines provide a development, test, and production environment structure that allows you to test content and validate changes before promoting to production, ensuring quality and consistency.

Q36 Hard

You need to combine two tables that have no common key columns. Which approach would be most appropriate in Power Query?

  • A Use Merge Queries with a Cartesian product join
  • B Import both tables separately and create a relationship in the model using custom columns ✓ Correct
  • C Create a calculated column in the first table to match values from the second table
  • D Append the tables together and manually deduplicate rows
Explanation

When tables lack a common key, you should create new columns that can serve as join keys, either before or after importing into Power BI, then establish a relationship using those columns.

Q37 Easy

Which data type should you assign to a column containing product codes like 'PROD-001' to ensure proper sorting and filtering?

  • A Text ✓ Correct
  • B Decimal Number
  • C Currency
  • D Whole Number
Explanation

Product codes containing letters and hyphens must be stored as Text data type. Using numeric data types would cause an error or loss of information, and would result in incorrect sorting behavior.

Q38 Hard

You are using DirectQuery mode to connect to a large SQL Server table. A user complains that their report is slow when they add a certain column to a visual. What is the likely cause?

  • A The column contains calculated values that must be computed for each row
  • B The DirectQuery cache needs to be cleared in the Power BI Service
  • C The user's Power BI Desktop application needs to be updated
  • D The column has high cardinality and is causing complex queries to be sent to the source system ✓ Correct
Explanation

High-cardinality columns (many unique values) in DirectQuery mode force complex queries to be generated and executed against the source system, causing performance degradation. Such columns are better handled with import mode or by pre-aggregating data.

Q39 Medium

What is the primary purpose of using the FILTER function in DAX?

  • A To remove blank values from a column in Power Query
  • B To create a new table that contains only rows meeting specified conditions
  • C To hide specific columns from end users in the report view
  • D To modify the filter context within a measure calculation ✓ Correct
Explanation

The FILTER function modifies filter context by evaluating a condition for each row and returning a subset of data. It is commonly used within measures like CALCULATE to implement custom filtering logic.

Q40 Easy

You have created a Power BI report with multiple pages. You want users to easily navigate between related pages. Which feature should you use?

  • A Bookmarks with drill-through filters
  • B Slicers that automatically switch between pages
  • C Conditional formatting rules that highlight related pages
  • D Buttons with navigation actions and page navigation type ✓ Correct
Explanation

Buttons configured with the Page Navigation action type are the standard way to create clickable navigation between report pages. This provides an intuitive navigation experience for report users.

Q41 Hard

When creating a DAX measure, which function would you use to reference a value from a previous row in a sorted table?

  • A OFFSET function to access rows by index position
  • B Use a calculated column instead, as measures cannot access row context directly ✓ Correct
  • C LOOKUPVALUE combined with ranking functions to locate the previous row
  • D PREVIOUS function with ORDERBY clause
Explanation

Accessing previous row values requires row context, which exists in calculated columns but not in measures. Calculated columns are designed for row-by-row calculations including references to adjacent rows.

Q42 Medium

You need to ensure that sensitive financial data in your Power BI dataset is encrypted both at rest and in transit. Which security feature should you configure?

  • A Enable power BI service encryption in Power Query
  • B Apply data masking in the Power Query Editor before importing
  • C Use row-level security to restrict user access to sensitive columns
  • D Configure Transport Layer Security (TLS) and enable Premium capacity encryption in Power BI Service ✓ Correct
Explanation

TLS encrypts data in transit, while Power BI Premium capacity provides encryption at rest. Together, these features ensure that sensitive data is protected during transmission and storage in the Power BI Service.

Q43 Hard

Which of the following scenarios is best suited for using Aggregations in Power BI Premium?

  • A When you want to cache all source data in memory for instant performance
  • B When you have DirectQuery models with large tables where users frequently query at summarized levels ✓ Correct
  • C When you need to create relationships between multiple data sources
  • D When your reports require real-time streaming data updates every second
Explanation

Aggregations in Power BI Premium allow you to create pre-aggregated tables that improve query performance for DirectQuery models by storing common summarizations in memory, avoiding expensive source system queries.

Q44 Easy

You are designing a report for executives that shows KPIs. Which visualization should you use to display a single metric with a target value and color-coded status?

  • A KPI visual with actual value, target value, and status indicator ✓ Correct
  • B Gauge chart that shows progress toward a maximum value
  • C Clustered column chart with conditional formatting
  • D Card visual with multiple fields stacked vertically
Explanation

The KPI visual is specifically designed for displaying Key Performance Indicators with actual values, targets, and status indicators using color coding, making it ideal for executive dashboards.

Q45 Medium

You have a fact table with millions of rows and need to improve query performance. The table contains a datetime column with second-level precision. What optimization technique should you apply in Power Query?

  • A Delete the datetime column entirely and replace it with a date column
  • B Use a custom formula to round the datetime to the nearest hour ✓ Correct
  • C Import the full precision datetime and create a calculated column to round it
  • D Use DirectQuery mode and let the source system handle the precision
Explanation

Reducing precision in Power Query before import reduces model size and improves performance. Rounding datetime values to the required grain (hour instead of second) in Power Query is more efficient than handling it after import.

Q46 Medium

When publishing a Power BI report to the Service, you receive an error about exceeding the model size limit. Which action should you take first?

  • A Analyze and optimize the model by removing unnecessary columns, reducing data precision, and using appropriate compression techniques ✓ Correct
  • B Split the report into multiple datasets with fewer tables each
  • C Enable DirectQuery mode for all tables to avoid loading data into memory
  • D Request an upgrade to Power BI Premium for larger capacity
Explanation

Before upgrading capacity or restructuring the solution, you should optimize the existing model by removing unused columns, reducing decimal precision, and applying compression. This often resolves size issues cost-effectively.

Q47 Hard

You need to create a measure that shows the percentage of total sales. Which approach correctly implements this in DAX?

  • A Create a calculated column that divides each row's sales by the column total
  • B Divide the current sales by the total of all sales using SUM divided by SUMX
  • C Use DIVIDE with the current context sum and CALCULATE to remove filters on the product dimension ✓ Correct
  • D Apply a percentage format to the sales measure and Power BI automatically calculates percentages
Explanation

To calculate percentage of total, use DIVIDE to divide the sum of current context by CALCULATE(SUM(...), ALL(DimensionTable)) to remove filters and show the actual total, providing correct percentage calculations across different slices.

Q48 Medium

Which Power Query feature allows you to split a single column containing multiple delimited values into separate rows?

  • A Split Column - By Number of Characters
  • B Split Column by delimiter ✓ Correct
  • C Unpivot Columns to convert wide data to long format
  • D Expand Column to expand records
Explanation

The Split Column feature with a delimiter option separates combined values. However, to create separate rows (not columns), you would then use the Expand feature. For values separated by delimiters that should become rows, you typically use Split with delimiter and then expand.

Q49 Hard

You have a measure that calculates monthly sales revenue. You want to create a visual showing month-over-month growth percentage. Which approach is best?

  • A Create a second measure that uses PREVIOUSMONTH and DAX logic to calculate growth ✓ Correct
  • B Create a calculated column that compares each month to the previous month
  • C Add a date slicer and manually track changes month by month
  • D Use a clustered column chart and add a trend line to show growth visually
Explanation

Creating a second DAX measure that uses time intelligence functions like PREVIOUSMONTH allows you to dynamically calculate month-over-month growth that responds to date filtering. This is more robust than visual-level solutions.

Q50 Medium

What is the difference between Refresh and Reload in Power BI Desktop?

  • A Both terms mean the same thing and can be used interchangeably
  • B Refresh updates the data from the source, while Reload restarts the Power BI application entirely
  • C Refresh applies only to DirectQuery connections, Reload applies to imported data
  • D Refresh updates data from the source while keeping the model structure, Reload clears the entire cache and reprocesses everything ✓ Correct
Explanation

Refresh updates the imported data from the source and refreshes measures. Reload is a more complete operation that clears the entire Power BI cache and reprocesses all calculations from scratch, useful when troubleshooting issues.

Q51 Hard

You are creating a report for a multinational company that uses multiple currencies. How should you handle currency conversion in your data model?

  • A Store all amounts in local currency and create a separate conversion table with exchange rates and conversion logic using DAX ✓ Correct
  • B Store all amounts in a single base currency at the ETL level before importing into Power BI
  • C Use Power Query to automatically detect currencies and convert them without manual intervention
  • D Create a dropdown slicer that allows users to select which currency to display, then multiply by a fixed rate
Explanation

Storing amounts in local currency with a separate conversion table and implementing conversion logic in DAX provides flexibility and accuracy. This approach allows dynamic currency conversion based on user selection while preserving source data integrity.

Q52 Medium

Which setting should you configure to ensure that Power BI does not cache query results when using DirectQuery?

  • A Configure the data source to not cache results in the source system
  • B Disable Query Folding in the Power Query Editor
  • C DirectQuery queries are never cached by default, caching cannot be disabled further ✓ Correct
  • D Set the Query Timeout to zero in Model Settings
Explanation

DirectQuery by design sends queries directly to the source system and does not cache results in Power BI. Each query executed generates a new request to the source, ensuring fresh data at the cost of potential latency.

Q53 Medium

You have a Power BI dataset with sales data that updates daily. You need to ensure that users can only see data relevant to their region. Which feature should you implement?

  • A Dataset refresh schedules with filters
  • B Row-Level Security (RLS) ✓ Correct
  • C Power Query conditional transformations
  • D Column-level permissions in the workspace
Explanation

Row-Level Security (RLS) is the appropriate Power BI feature that restricts data visibility at the row level based on user identity. This ensures users see only data relevant to their assigned region or department.

Q54 Hard

When configuring incremental refresh in Power BI, what are the two required parameters that must be defined in Power Query?

  • A StartPeriod and EndPeriod as duration parameters
  • B FilterStart and FilterEnd as text parameters
  • C RangeStart and RangeEnd as datetime parameters ✓ Correct
  • D BeginDate and EndDate as integer parameters
Explanation

Incremental refresh requires RangeStart and RangeEnd as datetime parameters in Power Query to define the refresh window. These parameters enable Power BI to load only new or modified data since the last refresh.

Q55 Medium

You are creating a report with a large dataset and notice that visuals are loading slowly. Which optimization technique would be most effective?

  • A Increase the report page size
  • B Enable automatic page refresh for all visuals
  • C Add more slicers to the report
  • D Reduce the number of visible fields and use aggregations at the data model level ✓ Correct
Explanation

Reducing fields and using aggregations at the data model level decreases the amount of data processed and displayed, significantly improving visual rendering performance.

Q56 Hard

In a Power BI data model, you need to create a relationship between two tables where the foreign key column contains NULL values. What should you consider?

  • A NULL values will cause a relationship creation error and prevent the model from loading
  • B NULL values in foreign keys will automatically be filtered out and relationships will work normally
  • C You must remove all NULL values before creating any relationship in Power BI
  • D Power BI will create the relationship but NULL values may result in unmatched rows that do not appear in the related table's context ✓ Correct
Explanation

Power BI relationships handle NULL values by treating them as unmatched entries. These rows will not filter or relate to the other table, which is important to understand when designing your data model.

Q57 Medium

You have created a measure that calculates year-to-date sales. When you add it to a visual with a monthly date hierarchy, which evaluation context applies?

  • A The measure ignores the date hierarchy and uses the entire dataset
  • B The measure evaluates at the lowest level of the hierarchy (month) and aggregates across the year ✓ Correct
  • C The measure always evaluates at the year level regardless of the visual's context
  • D The measure evaluation depends on the CALCULATE function's filter arguments
Explanation

When a measure is placed in a visual with a date hierarchy, it evaluates in the context of the lowest level displayed (month in this case), then aggregates appropriately for year-to-date calculations.

Q58 Medium

Which of the following is a valid use case for using a calculated table in Power BI?

  • A To replace dimension tables that are already present in the source database
  • B To create a calendar table or a bridge table for many-to-many relationships without using DAX formulas ✓ Correct
  • C To directly query external APIs and refresh data in real-time
  • D To store large transaction-level data to improve report performance
Explanation

Calculated tables are useful for creating supporting tables like calendar tables or bridge tables using DAX formulas. They are not suitable for storing large volumes of data or replacing source tables.

Q59 Easy

You need to publish a Power BI report to a Premium capacity workspace. What is the primary advantage of using Premium capacity over shared capacity?

  • A Premium capacity eliminates the need to refresh datasets because data is always current
  • B Premium capacity automatically encrypts all data and removes the need for Row-Level Security
  • C Premium capacity provides dedicated computational resources and supports features like incremental refresh and paginated reports ✓ Correct
  • D Premium capacity allows unlimited users to access reports without concurrent user licensing
Explanation

Premium capacity offers dedicated resources that enable advanced features such as incremental refresh, paginated reports, and better performance for large datasets. Shared capacity has limitations on these features.

Q60 Hard

When using the RELATED function in DAX, what must be true about the table you are trying to reference?

  • A The table must be a calculated table, not an imported table
  • B The table can be any table in the model as long as it shares at least one column name with the current table
  • C The RELATED function works across any tables regardless of relationship definitions
  • D The table must be directly connected to the current table through an active one-to-many or one-to-one relationship ✓ Correct
Explanation

The RELATED function requires an active relationship between tables. It follows the relationship path from the current table to return values from the related table.

Q61 Easy

You are designing a report where users need to compare actual sales versus budget across multiple regions and time periods. Which visual would be most appropriate?

  • A A single-column chart showing only actual sales by region
  • B A pie chart showing the percentage distribution of budget across regions
  • C A scatter plot with regions on the x-axis and time periods on the y-axis
  • D A clustered bar or column chart displaying both actual and budget side-by-side with region and time filtering options ✓ Correct
Explanation

A clustered bar or column chart effectively displays multiple measures (actual vs. budget) side-by-side for easy comparison across dimensions like region and time, especially when combined with slicers.

Q62 Medium

In Power Query, you have imported data from multiple sources and need to combine rows from similar tables. Which transformation should you use?

  • A Pivot columns to restructure the data layout before combining sources
  • B Merge queries to join tables on a common key with one-to-one matching
  • C Group by to aggregate data before combining tables together
  • D Append queries to combine rows from multiple tables with identical or similar column structures ✓ Correct
Explanation

The Append operation in Power Query combines rows from multiple tables with the same or similar structure, placing them one after another. This is different from Merge, which performs joins based on keys.

Ready to test your knowledge?

You've reviewed all 62 questions. Take the interactive practice exam to simulate the real test environment.

▶ Start Practice Exam — Free