Microsoft Power BI Data Analyst PL-300 (PL-300) — Questions 901966

966 questions total · 13pages · All types, answers revealed

Page 12

Page 13 of 13

901
MCQeasy

You are preparing data for a Power BI report. The source data contains a 'CustomerName' column with values like 'John, Doe'. You need to split this column into two columns: 'FirstName' and 'LastName'. The comma is used as a delimiter, but some names have a space after the comma. Which split method should you use?

A.Split by number of characters using a fixed width
B.Split by delimiter using semicolon
C.Split by delimiter using comma, then use 'Trim' to remove extra spaces
D.Split by delimiter using comma, using 'Left-most delimiter'
AnswerC

Splitting by comma and then trimming cleans the data.

Why this answer

Option C is correct because splitting by comma and then trimming extra spaces handles the inconsistent spacing after the comma (e.g., 'John, Doe' vs 'John, Doe'). Power Query's 'Split Column by Delimiter' using comma will separate the values, and the subsequent 'Trim' step removes leading/trailing spaces from the resulting columns, ensuring clean 'FirstName' and 'LastName' values without manual cleanup.

Exam trap

The trap here is that candidates may think 'Left-most delimiter' or a simple split is sufficient, overlooking the need to trim extra spaces, which Power Query does not do automatically when splitting by delimiter.

How to eliminate wrong answers

Option A is wrong because splitting by number of characters using fixed width assumes a consistent character count for first and last names, which is not the case with variable-length names like 'John, Doe' vs 'Alexander, Hamilton'. Option B is wrong because splitting by semicolon ignores the actual delimiter in the data (comma), resulting in no split and leaving the column unchanged. Option D is wrong because using 'Left-most delimiter' would only split on the first comma if multiple commas existed, but the data has only one comma per entry; more critically, it does not address the trailing space after the comma, leaving ' Doe' with a leading space in the last name column.

902
MCQhard

You are designing a Power BI report to analyze customer churn. The data model includes a 'Customers' table and a 'Churn' table. You need to create a measure that calculates the churn rate for each month, defined as the number of customers who churned that month divided by the total number of active customers at the beginning of the month. What is the best approach?

A.Create a calculated table that summarizes active customers at the start of each month.
B.Write a measure using COUNTROWS and FILTER.
C.Use the RANKX function to order customers by churn date.
D.Create a calculated column in the 'Customers' table to mark churned status per month.
AnswerA

A calculated table can capture the snapshot count needed for the denominator.

Why this answer

Option C is correct because a churn rate requires a snapshot of active customers at the start of each month, which is best achieved with a calculated table that shows the count per month. Option A is wrong because a calculated column would be static and not respect month boundaries. Option B is wrong because RANKX is unrelated.

Option D is wrong because a simple measure would not properly handle the denominator.

903
MCQmedium

You have a Power BI report that uses a date hierarchy (Year, Quarter, Month) on the axis of a line chart. Users want to drill down from year to quarter to month. However, the drill-down feature is not working. What is the most likely cause?

A.The date field is placed in the Axis field well without creating a hierarchy.
B.The line chart does not support drill-down functionality.
C.The date table is not marked as a date table in the model.
D.Cross-filtering from another visual is interfering.
AnswerA

Drill-down requires explicit hierarchy in the field well.

Why this answer

Option C is correct because the drill-down feature requires a hierarchy in the field well. If only the date field is used without explicit hierarchy, drill-down is disabled. Option A is wrong because the line chart supports drill-down with hierarchies.

Option B is wrong because cross-filtering does not disable drill-down. Option D is wrong because drill-down does not require a date table relationship.

904
Multi-Selectmedium

Which TWO actions should you take to reduce the size of a Power BI dataset? (Choose two.)

Select 2 answers
A.Filter out rows that are not needed.
B.Remove unnecessary columns during import.
C.Disable query folding to improve performance.
D.Add calculated columns to precompute values.
E.Use DirectQuery instead of Import.
AnswersA, B

Reduces the number of rows and thus dataset size.

Why this answer

Option A is correct because filtering out unnecessary rows at the source reduces the number of rows loaded into the Power BI dataset, directly decreasing the data volume and storage size. This is a fundamental data reduction technique that minimizes memory consumption and improves refresh performance.

Exam trap

The trap here is that candidates often confuse 'improving performance' with 'reducing dataset size' — disabling query folding can hurt performance and does not reduce size, while DirectQuery changes the architecture rather than reducing an existing Import dataset's size.

905
Multi-Selecthard

You are working with a Power Query that uses a merge operation between two tables. The merge is based on a column with text values, but some values have leading or trailing spaces. Which THREE steps can you take to ensure the merge works correctly?

Select 3 answers
A.Use the 'Transform' tab to change the case to uppercase for both columns.
B.Remove duplicate rows from both tables.
C.Create a custom column that contains the trimmed and normalized value, then merge on that column.
D.Split the column by delimiter and merge on the first part.
E.Trim the text columns in both tables before merging.
AnswersA, C, E

This normalizes case, which helps if there are case differences.

Why this answer

Option A is correct because using the 'Transform' tab to change the case to uppercase for both columns ensures that the merge operation is case-insensitive, which is necessary when text values have leading or trailing spaces but also differ in case. This step normalizes the text values, making the merge more reliable by eliminating case mismatches that could cause the merge to fail or produce incorrect results.

Exam trap

The trap here is that candidates may think removing duplicates or splitting columns solves the whitespace issue, but only trimming and case normalization directly address the root cause of mismatched text values due to spaces and case differences.

906
MCQmedium

You need to create a calculated column that categorizes sales amounts into 'Low', 'Medium', and 'High' based on thresholds. Which DAX expression should you use?

A.SWITCH(TRUE(), Sales[Amount] < 100, "Low", Sales[Amount] < 500, "Medium", "High")
B.IF(Sales[Amount] < 100, "Low", IF(Sales[Amount] < 500, "Medium", "High"))
C.SELECTEDVALUE(Sales[Amount]) & "Category"
D.SWITCH(Sales[Amount], 100, "Low", 500, "Medium", "High")
AnswerA

SWITCH with TRUE() is recommended for multiple conditions.

Why this answer

Option A is correct because it uses SWITCH(TRUE(), ...) to evaluate multiple conditions sequentially, returning the first matching result. This is the standard pattern for categorizing continuous values into discrete buckets in DAX, as SWITCH evaluates conditions in order and stops at the first TRUE condition.

Exam trap

Microsoft often tests the distinction between SWITCH with exact matching (Option D) and SWITCH with TRUE() for range-based logic, leading candidates to choose the simpler-looking SWITCH without TRUE() and miss the range evaluation.

How to eliminate wrong answers

Option B is wrong because while the nested IF logic works, it is less readable and less performant than SWITCH(TRUE()) for multiple conditions; however, it is not incorrect per se, but the question asks for the expression to use, and SWITCH is the recommended pattern in DAX for clarity and efficiency. Option C is wrong because SELECTEDVALUE returns a single value from a column when there is one distinct value in the current filter context, and concatenating it with 'Category' does not perform any threshold-based categorization. Option D is wrong because SWITCH without TRUE() performs exact match comparisons, so it would only return 'Low' when Amount equals exactly 100 and 'Medium' when Amount equals exactly 500, not for ranges.

907
Multi-Selecteasy

You are importing data from a folder containing multiple CSV files with identical structure. You use the 'Combine files' transform in Power Query. Which TWO statements are true about this process?

Select 2 answers
A.The sample file is automatically selected as the first file in alphabetical order.
B.Only the sample file is imported; other files are ignored.
C.The combine process uses Power Automate to merge files.
D.Power Query creates a function that applies the same transformations to each file.
E.Power Query creates a sample file query that serves as a template for all files.
AnswersD, E

An auto-generated function is used to process each file using the sample file's steps.

Why this answer

Option D is correct because when you use the 'Combine files' transform in Power Query, it automatically generates a function that applies the same transformations (e.g., promoting headers, changing data types) to each CSV file in the folder. This function is invoked for every file, ensuring consistent data shaping across all files.

Exam trap

The trap here is that candidates often confuse the 'sample file' as being the only file imported (Option B) or think the process uses an external tool like Power Automate (Option C), when in reality Power Query handles the entire merge natively with a generated function.

908
MCQeasy

You are preparing data for a report that needs to be refreshed every 30 minutes to meet near real-time requirements. Which Power BI feature should you use?

A.Use DirectQuery mode to connect to the source database.
B.Import data and schedule refresh every 30 minutes.
C.Use a streaming dataset with real-time data.
D.Use a push dataset to send data from the source.
AnswerA

DirectQuery queries the source on each interaction, providing near real-time data.

Why this answer

DirectQuery mode allows Power BI to query the source database directly without importing data, enabling near real-time refreshes by executing queries against the source every time a report is interacted with or when the dataset is refreshed. This meets the 30-minute refresh requirement without the latency of data import, as the data remains in the source and is not copied into Power BI.

Exam trap

The trap here is that candidates often confuse 'near real-time' with 'real-time' and choose streaming or push datasets, but the question specifies a 30-minute refresh interval, which aligns with DirectQuery's scheduled refresh capability rather than continuous data ingestion.

How to eliminate wrong answers

Option B is wrong because Import mode requires a scheduled refresh that copies data into Power BI, and while it can be set to every 30 minutes, the import process introduces latency and storage overhead, making it less suitable for near real-time needs compared to DirectQuery. Option C is wrong because streaming datasets are designed for real-time data ingestion (e.g., from Azure Stream Analytics or REST APIs) and are limited to visuals that support automatic page refresh, not for scheduled 30-minute refreshes from a source database. Option D is wrong because push datasets allow external systems to push data into Power BI via the REST API, but they require custom code to send data every 30 minutes and do not support scheduled refresh from a source database; they are intended for real-time scenarios, not periodic database queries.

909
Multi-Selectmedium

Which TWO actions should you take to optimize a star schema in Power BI?

Select 2 answers
A.Denormalize dimension tables into the fact table.
B.Create a date table and mark it as a date table.
C.Remove unnecessary columns from dimension tables.
D.Use bidirectional cross-filtering for all relationships.
E.Add calculated columns to the fact table for filtering.
AnswersB, C

This enables time intelligence functions and improves performance.

Why this answer

Creating a date table and setting it as a date table is a best practice for time intelligence. Creating calculated columns in the fact table is generally discouraged because it increases storage and query time.

910
MCQhard

You have a data model with two relationships between Sales and Date: one active (OrderDateKey) and one inactive (ShipDateKey). The DAX expression uses USERELATIONSHIP(Sales[DateKey], 'Date'[DateKey]). Which date will be used for filtering?

A.Ship dates
B.Both order and ship dates
C.Order dates
D.No relationship, all dates
AnswerA

The inactive relationship is activated by USERELATIONSHIP.

Why this answer

Option B is correct because USERELATIONSHIP activates the specified relationship. The relationship is defined by the columns Sales[DateKey] and Date[DateKey]; if this matches the ShipDateKey relationship, it uses ship dates. Option A is incorrect because USERELATIONSHIP overrides the active relationship.

Option C is incorrect because it activates the specified relationship. Option D is incorrect because the expression does not ignore filters.

911
Multi-Selecthard

Which TWO DAX functions can be used to create a dynamic title that shows the currently selected year in a report, assuming a date table with a Year column?

Select 2 answers
A.SUM('Date'[Year])
B.DISTINCT('Date'[Year])
C.CONCATENATEX(VALUES('Date'[Year]), 'Date'[Year], ", ")
D.SELECTEDVALUE('Date'[Year])
E.CALCULATE(VALUES('Date'[Year]))
AnswersC, D

Joins multiple selected years into a string.

Why this answer

Options A and C are correct. SELECTEDVALUE returns the single selected value from a column; if multiple values are selected, it returns blank or a default. CONCATENATEX can be used to combine multiple selected years into a string.

Option B is wrong because CALCULATE does not return a text value. Option D is wrong because SUM is mathematical. Option E is wrong because DISTINCT returns a table, not a scalar.

912
MCQmedium

A company uses Power BI to analyze sales data from a SQL Server database. The database contains a table 'Sales' with 10 million rows. The business analysts need to create daily reports that aggregate sales by region and product category. To optimize report performance, which data preparation technique should be applied?

A.Increase the row limit in Power Query to load all rows.
B.Remove unused columns from the query.
C.Import the entire table and aggregate in Power BI.
D.Perform aggregation in SQL before importing.
AnswerD

Aggregating at source reduces rows significantly.

Why this answer

Option D is correct because performing aggregation in SQL before importing reduces the data volume from 10 million rows to a much smaller aggregated result set. This minimizes memory consumption and speeds up report rendering in Power BI, as the heavy lifting is done on the SQL Server engine rather than in Power Query or the Power BI data model.

Exam trap

The trap here is that candidates often assume removing columns or filtering rows is sufficient, but the question specifically targets aggregation of millions of rows, where source-side aggregation is the only scalable solution.

How to eliminate wrong answers

Option A is wrong because increasing the row limit in Power Query does not improve performance; it forces Power Query to load all 10 million rows, increasing memory usage and refresh time. Option B is wrong because removing unused columns helps reduce data size but does not address the core issue of aggregating 10 million rows; the row count remains the same, and Power BI still must process all rows. Option C is wrong because importing the entire table and aggregating in Power BI moves the aggregation workload to the Power BI engine, which is less efficient than performing it at the database source, leading to higher memory and CPU usage during data refresh.

913
MCQhard

You are debugging a Power Query that imports a CSV file. The exhibit shows the M code. The CSV file contains a header row and data. Some rows have a comma inside a quoted field (e.g., "Smith, John"). What issue will arise from this code?

A.The encoding 1252 is incorrect for the file.
B.The QuoteStyle.None option will cause commas inside quotes to be treated as delimiters.
C.The number of columns specified (5) is too many.
D.The Promoted Headers step will fail because the first row contains quotes.
AnswerB

QuoteStyle.None ignores quoting, so commas inside quotes break columns.

Why this answer

Option B is correct because the M code uses `QuoteStyle.None`, which tells Power Query to treat commas inside quoted fields as column delimiters rather than as part of the field value. This causes rows with values like "Smith, John" to be split incorrectly, resulting in extra columns and misaligned data. The correct option for CSV files with quoted fields is `QuoteStyle.Csv`, which respects the standard CSV quoting rules.

Exam trap

The trap here is that candidates may assume the issue is with encoding or column count, but the core problem is the misuse of `QuoteStyle.None` instead of `QuoteStyle.Csv`, which directly causes quoted commas to be misinterpreted as delimiters.

How to eliminate wrong answers

Option A is wrong because encoding 1252 (Windows Latin-1) is a common encoding for CSV files and is not inherently incorrect; the issue is unrelated to encoding. Option C is wrong because specifying 5 columns is not inherently too many; the problem is that quoted commas cause extra splits, not that the column count is excessive. Option D is wrong because the Promoted Headers step uses the first row as column names, and quotes in that row are handled by the CSV parser; the failure occurs in the data rows due to QuoteStyle.None, not in the header promotion.

914
Multi-Selecthard

Which THREE of the following are valid reasons to use a composite model (mixed storage mode) in Power BI?

Select 3 answers
A.To enable real-time data from a DirectQuery source while using imported historical data.
B.To use aggregations on large fact tables while keeping other tables imported.
C.To improve relationship performance between tables.
D.To create calculated tables based on DirectQuery sources.
E.To combine data from a DirectQuery source with imported tables.
AnswersA, B, E

This hybrid approach is a common use case.

Why this answer

Options B, C, and E are correct. Option B: Composite models allow combining DirectQuery and Import. Option C: Aggregations can be used for large datasets.

Option E: Real-time data from DirectQuery with aggregated historical data. Option A is wrong because composite models do not automatically improve relationship performance. Option D is wrong because calculated tables are not supported in DirectQuery sources.

915
Multi-Selectmedium

Which TWO of the following are valid methods to transform data in Power Query?

Select 2 answers
A.Use 'Unpivot Columns' to turn selected columns into attribute-value pairs.
B.Use 'Split Column' to divide a column into multiple columns based on a delimiter.
C.Use 'Pivot Column' to turn unique values from a column into multiple columns.
D.Use 'Merge Queries' to combine rows from multiple tables based on a key.
E.Use 'Append Queries' to combine columns from two tables.
AnswersA, C

Unpivot is a valid transformation.

Why this answer

Options B and D are correct. Option A is wrong because 'Group By' is a transformation, not a merge. Option C is wrong because 'Append' is a transformation.

Option E is wrong because 'Split Column' is a transformation.

916
MCQmedium

You are creating a Power BI report that includes a scatter chart with many data points. Users want to identify outliers quickly. Which approach should you recommend?

A.Add a trend line to the scatter chart and use analytics pane to highlight outliers
B.Use a line chart to see spikes
C.Add a table with conditional formatting to show high values
D.Convert to a histogram to see distribution
AnswerA

Trend line and outlier detection in analytics pane directly identify outliers.

Why this answer

Option C is correct because adding a trend line and highlighting outliers helps identify them. Option A is wrong because a table is not visual. Option B is wrong because a line chart is for trends.

Option D is wrong because a histogram shows distribution, not outliers individually.

917
MCQeasy

You need to audit Power BI activity for compliance. Which tool should you use to access detailed logs of user actions?

A.Microsoft Defender XDR
B.Microsoft Purview compliance portal (Audit)
C.Microsoft Purview Data Map
D.Power BI Premium capacity metrics app
AnswerB

Audit logs capture user activities.

Why this answer

Option A is correct because Microsoft Purview provides unified audit logs. Option B is wrong because it's for data mapping. Option C is wrong because it's for threat detection.

Option D is wrong because it's for capacity management.

918
MCQmedium

You are preparing data from multiple sources for a Power BI report. You need to create a star schema with a single fact table and several dimension tables. Which of the following is a best practice when designing the data model?

A.Include calculated measures in dimension tables.
B.Normalize dimension tables into multiple related tables.
C.Ensure each dimension table has a unique key and contains descriptive attributes.
D.Use natural keys from the source system as the primary key in dimension tables.
AnswerC

This is a fundamental best practice for star schema design.

Why this answer

In a star schema, dimension tables should have a unique key (surrogate or natural) and contain descriptive attributes to enable filtering and grouping in Power BI. This ensures efficient relationships with the fact table and supports intuitive report interactions. Option C directly aligns with this best practice.

Exam trap

Microsoft often tests the misconception that normalizing dimension tables (snowflake schema) is a best practice for performance, but in Power BI, denormalized star schemas are preferred to reduce joins and leverage VertiPaq compression.

How to eliminate wrong answers

Option A is wrong because calculated measures should be defined in the fact table or as explicit measures in the data model, not in dimension tables, as dimension tables are meant for attributes and keys, not aggregations. Option B is wrong because normalizing dimension tables into multiple related tables creates a snowflake schema, which can degrade query performance in Power BI due to additional joins and is generally avoided in star schema design. Option D is wrong because natural keys from the source system can be non-unique, change over time, or be composite, making them unreliable as primary keys; surrogate keys are preferred for stability and performance in dimension tables.

919
Multi-Selecthard

You have a Power BI data model with a table named Sales that includes columns: ProductID, SalesAmount, and SalesDate. You need to create a measure that calculates the total sales amount for the current quarter and compares it to the previous quarter. Which THREE DAX functions should you use?

Select 3 answers
A.PREVIOUSQUARTER
B.DATEADD
C.DATESQTD
D.CALCULATE
E.SUM
AnswersA, D, E

PREVIOUSQUARTER returns the dates for the previous quarter.

Why this answer

The correct answers are A, B, and D. CALCULATE (A) is used to modify filter context. SUM (B) to aggregate.

PREVIOUSQUARTER (D) for time intelligence. Option C (DATEADD) could also work, but PREVIOUSQUARTER is more specific. Option E (DATESQTD) is for quarter-to-date, not previous quarter.

920
Multi-Selectmedium

Which THREE considerations are important when designing a Power BI data model for large datasets?

Select 3 answers
A.Store calculated columns in the fact table for quick access.
B.Include as many columns as possible in fact tables for flexibility.
C.Disable the auto-date/time feature.
D.Use a star schema design.
E.Use integer keys for relationships instead of text.
AnswersC, D, E

Auto-date/time creates hidden tables that increase model size.

Why this answer

Option C is correct because disabling the auto-date/time feature prevents Power BI from automatically creating hidden date tables for each date column, which can significantly increase the model size and reduce performance in large datasets. This is a best practice for optimizing storage and refresh times when working with large data volumes.

Exam trap

The trap here is that candidates often think calculated columns in fact tables improve performance (Option A) or that more columns provide flexibility (Option B), but in reality both degrade performance and violate star schema best practices.

921
MCQeasy

A company has a dataset with a table 'Orders' containing columns: OrderDate, CustomerID, Amount. They want to create a visual that shows the total amount per month. Which of the following is the best approach?

A.Create a pie chart with OrderDate as the legend.
B.Create a line chart with OrderDate on the axis and use the date hierarchy to drill down to month.
C.Create a table visual with OrderDate and Amount, then group by month in the visual.
D.Create a bar chart with a calculated column 'Month' extracted from OrderDate and use that as the axis.
AnswerB

Date hierarchies provide built-in drill-down capabilities and are the recommended approach.

Why this answer

Option B is correct because it leverages Power BI's built-in date hierarchy, which automatically groups OrderDate by year, quarter, month, and day. By placing OrderDate on the axis of a line chart and drilling down to the month level, you get an accurate monthly aggregation of Amount without needing any manual data transformation or calculated columns. This approach is efficient, maintains the underlying data model's integrity, and allows for easy drill-up/drill-down navigation.

Exam trap

The trap here is that candidates often think extracting a month column manually (Option D) is the most straightforward approach, but the exam tests whether you understand that Power BI's built-in date hierarchy is the optimal and intended method for time-based aggregations, avoiding unnecessary calculated columns.

How to eliminate wrong answers

Option A is wrong because a pie chart with OrderDate as the legend would treat each unique date as a separate slice, not aggregate by month, resulting in a cluttered and meaningless visual. Option C is wrong because table visuals in Power BI do not support grouping by month directly within the visual; you would need to create a calculated column or use a date hierarchy to achieve monthly aggregation. Option D is wrong because while a calculated column 'Month' extracted from OrderDate would work, it is not the 'best' approach—it adds unnecessary complexity, breaks the date hierarchy, and prevents easy drill-down to lower time granularities like day or quarter.

922
Multi-Selecthard

A Power BI developer is designing a data model for sales analysis. The model includes a Sales fact table and dimension tables: Product, Customer, Date, and Store. Which TWO design considerations are best practices for optimizing query performance?

Select 2 answers
A.Configure bidirectional cross-filtering between all dimension tables and the fact table.
B.Use multiple inactive relationships between fact and dimension tables to support different analyses.
C.Create a separate date table and mark it as a date table to enable time intelligence functions.
D.Use many-to-many relationships between dimension tables and the fact table to simplify the model.
E.Reduce the cardinality of columns in dimension tables by using surrogate keys instead of natural keys.
AnswersC, E

A date table is essential for time-based calculations and filtering.

Why this answer

Option C is correct because creating a separate date table and marking it as a date table enables Power BI to use built-in time intelligence functions (e.g., TOTALYTD, SAMEPERIODLASTYEAR) that rely on a continuous, contiguous date range. This design ensures optimal performance by allowing the engine to generate efficient DAX queries and leverage date-based relationships without ambiguity.

Exam trap

The trap here is that candidates often confuse 'optimizing query performance' with 'enabling more analysis features'—bidirectional filtering and multiple inactive relationships seem useful but actually harm performance or add complexity, while reducing cardinality with surrogate keys (Option E) is a genuine performance optimization that is easy to overlook.

923
MCQhard

You are building a Power BI model that includes a table 'Orders' with columns: OrderID, CustomerID, OrderDate, and TotalAmount. You also have a table 'Customers' with columns: CustomerID, CustomerName, and Segment. You need to create a relationship between Orders and Customers on CustomerID. Which relationship configuration should you choose to ensure that filtering Customers by Segment correctly filters Orders?

A.One-to-many relationship from Customers to Orders
B.Many-to-one relationship from Orders to Customers
C.Many-to-many relationship with a bridge table
D.One-to-one relationship
AnswerA

This is the correct star schema design where the dimension table filters the fact table.

Why this answer

Option B is correct because a one-to-many relationship from Customers (one side) to Orders (many side) with Customers filtering Orders is the standard star schema design. Option A is wrong because many-to-one would reverse the direction. Option C is wrong because many-to-many is unnecessary and can cause ambiguity.

Option D is wrong because a one-to-one relationship is not appropriate as one customer can have many orders.

924
MCQeasy

You are creating a Power BI report that includes a matrix visual showing sales by product category and year. You want to highlight the highest sales value in each category. Which conditional formatting option should you use?

A.Color by color scale with a diverging gradient.
B.Icons with a traffic light icon set.
C.Color by rules with a rule to highlight the maximum value per category.
D.Data bars with a bar color.
AnswerC

Rules allow conditional formatting based on specific conditions.

Why this answer

Option A is correct because 'Color by rules' can set a rule to highlight the maximum value per category. Option B is wrong because 'Color by color scale' applies a gradient, not highlighting the max. Option C is wrong because 'Data bars' show bars, not highlight max.

Option D is wrong because 'Icons' replace values with icons.

925
Drag & Dropmedium

Drag and drop the steps to publish a Power BI Desktop report to the Power BI service into the correct order.

Drag steps to the numbered slots on the right, or tap a step then tap a slot.

Steps
Order

Why this order

Publishing requires signing in, selecting a workspace, and confirming; the report then appears in the Power BI service.

926
MCQhard

You are the Power BI administrator for Contoso Ltd. The company has a Premium capacity workspace named 'Sales Analytics' that contains a dataset named 'SalesData' and several reports. The dataset uses DirectQuery to an Azure SQL Database. Row-level security (RLS) is configured in Power BI Desktop with roles: 'SalesManager' (filters to SalesManager rows), 'SalesRep' (filters to SalesRep rows). After publishing, you assign users to the roles in the Power BI service. However, when a user assigned to the 'SalesRep' role opens a report, they see all data instead of only their own rows. You have verified that the RLS role definition is correct and that the user is the only member of the 'SalesRep' role. The user has no other workspace permissions. The dataset is set to use single sign-on (SSO) for the DirectQuery connection. What is the most likely cause of the issue?

A.Configure RLS in the Azure SQL Database itself using security predicates or views that filter based on the user's identity (e.g., USER_NAME() or SUSER_SNAME()).
B.Add the user to multiple RLS roles to ensure the filters are applied.
C.Change the dataset storage mode from DirectQuery to Import.
D.Remove the user from the 'SalesRep' role and add them as a Viewer on the workspace to force RLS.
AnswerA

With SSO, the source must enforce RLS; Power BI RLS is ignored.

Why this answer

Option A is correct because when using DirectQuery with SSO, the user's identity is passed to the data source. If the Azure SQL Database does not enforce RLS (e.g., via security predicates or user mappings), all data is returned. Power BI RLS is bypassed in this scenario.

Option B is wrong because the user is not a workspace member with edit permissions. Option C is wrong because the user is the only member. Option D is wrong because RLS in Power BI works with DirectQuery, but SSO changes the behavior.

927
MCQmedium

You have a Power BI report that uses a composite model with both Import and DirectQuery sources. You need to ensure that a measure using SUMX performs well. What should you do?

A.Disable relationships between tables
B.Use CALCULATE instead of SUMX
C.Create a calculated column in the source system to pre-aggregate values
D.Replace SUMX with SUM and adjust the model
AnswerC

Avoids iterating over DirectQuery rows.

Why this answer

In composite models, iterating over DirectQuery tables can be slow. Option C is correct: move the calculation to the source (e.g., SQL view). Option A is wrong because reducing cardinality may not help.

Option B is wrong because disabling relationships is not practical. Option D is wrong because changing to SUM might change logic.

928
MCQhard

A Power BI report uses a composite model with a DirectQuery source and an imported table. The imported table has many rows, and the report is taking a long time to refresh. What is the most likely cause?

A.Measures are using CALCULATE with multiple filter conditions
B.The imported table is set to Dual storage mode, causing dependency on the DirectQuery source
C.The DirectQuery table is set to Import storage mode
D.The report contains many complex visuals that need to be rendered
AnswerB

Dual mode tables can trigger queries to the source during refresh, slowing it down.

Why this answer

In a composite model, when an imported table is set to Dual storage mode, it behaves as both Import and DirectQuery. During refresh, Power BI must check the DirectQuery source for consistency, which can significantly slow down the refresh process, especially with large imported tables. This dependency on the DirectQuery source is the most likely cause of the long refresh time.

Exam trap

The trap here is that candidates often assume long refresh times are caused by complex visuals or measures, but the question specifically targets the refresh process, where Dual storage mode's dependency on the DirectQuery source is the key performance bottleneck.

How to eliminate wrong answers

Option A is wrong because measures using CALCULATE with multiple filter conditions affect query performance at report rendering time, not the data refresh process. Option C is wrong because setting a DirectQuery table to Import storage mode would convert it to an imported table, which would not cause a dependency on the DirectQuery source during refresh; the issue described is about an imported table slowing down refresh. Option D is wrong because complex visuals affect report rendering performance, not the data refresh operation.

929
MCQhard

You are reviewing a Power Query M script that imports sales data. The script filters orders from 2023, groups by CustomerID to sum SubTotal, sorts descending, and takes the top 10 customers. However, the query fails with an error. What is the most likely cause?

A.The parameters in Sql.Database are reversed; the correct order is database name first, then server.
B.The Table.FirstN function is missing the second argument; it should be Table.FirstN(#"Sorted Rows", 10).
C.The column name 'SubTotal' is misspelled; the correct column name is 'Subtotal'.
D.The #date function cannot be used with a datetime column; use DateTime.From instead.
AnswerC

Common typographical error; column names are case-sensitive in some databases.

Why this answer

Option C is correct because the error is most likely caused by a misspelled column name in the M script. Power Query is case-sensitive for column names, so 'SubTotal' does not match the actual column 'Subtotal', causing a runtime error when the script tries to reference the non-existent column.

Exam trap

The trap here is that candidates may overlook case sensitivity in Power Query M and assume column names are case-insensitive like in SQL Server, leading them to dismiss a simple typo as the root cause.

How to eliminate wrong answers

Option A is wrong because the Sql.Database function in Power Query M expects the server name as the first argument and the database name as the second, not reversed. Option B is wrong because Table.FirstN can accept a single argument (the table) and defaults to returning the first row; the script already includes the second argument '10' implicitly or explicitly, so missing it would not cause the described error. Option D is wrong because the #date function can be used with a datetime column by extracting the date part or comparing directly; the error is not related to type incompatibility with #date.

930
MCQmedium

You have a Power BI model with a table 'Sales' and a separate 'Calendar' table. The relationship between Sales[OrderDate] and Calendar[Date] is active. You need to create a measure that calculates the total sales for the previous month relative to the current filter context. Which DAX expression should you use?

A.CALCULATE(SUM(Sales[Amount]), SAMEPERIODLASTYEAR(Calendar[Date]))
B.CALCULATE(SUM(Sales[Amount]), NEXTMONTH(Calendar[Date]))
C.CALCULATE(SUM(Sales[Amount]), PREVIOUSMONTH(Calendar[Date]))
D.CALCULATE(SUM(Sales[Amount]), DATEADD(Calendar[Date], -1, MONTH))
AnswerD

Shifts dates back by one month.

Why this answer

Option C is correct. CALCULATE with DATEADD shifting by -1 month returns the same period last month. Option A uses PREVIOUSMONTH which is equivalent but requires a continuous date range; DATEADD is more flexible.

Option B returns dates in the next month. Option D returns dates in the same month of previous year.

931
Multi-Selectmedium

Which THREE of the following are considerations when implementing row-level security (RLS) in Power BI? (Select three.)

Select 3 answers
A.RLS does not apply to data accessed via the XMLA endpoint unless using dynamic security.
B.RLS filters are applied at query time.
C.RLS can be defined using DAX filter expressions.
D.RLS is enforced only for users with the Viewer role.
E.RLS can be bypassed by using the 'Show all' option in visuals.
AnswersA, B, C

Static RLS is not enforced via XMLA; dynamic security is needed.

Why this answer

Options A, C, and E are correct. RLS is applied when the user queries the dataset (A). It can be defined using DAX filters (C).

It does not apply to the XMLA endpoint by default unless dynamic (E). Option B is incorrect because RLS filters apply to all visuals. Option D is incorrect because RLS is user-based, not role-based in terms of dynamic security.

932
MCQmedium

Your organization is implementing a data sensitivity labeling strategy for Power BI. You have created labels in Microsoft Purview Compliance Portal. After publishing a report, you notice that some labels are not available for selection in Power BI. What is the most likely cause?

A.The labels were created in the wrong workspace.
B.The Power BI tenant does not have Premium capacity.
C.The labels are not included in a label policy that applies to Power BI.
D.Users do not have Power BI Pro licenses.
AnswerC

Correct. Labels must be published in a policy that includes Power BI.

Why this answer

Option D is correct because sensitivity labels must be published in a label policy that includes Power BI as a target. Option A is wrong because label creation does not require Premium. Option B is wrong because labels are configured centrally, not per workspace.

Option C is wrong because user licenses affect consumption, not label availability.

933
MCQhard

You have a Power BI data model with a table 'Orders' related to 'Customers' (one-to-many). A measure calculates total sales per customer. Some customers have no orders, but they still appear in the report with blank sales. What should you do to hide these customers?

A.Remove customers with no orders from the Customers table using Power Query
B.Change the relationship cross-filter direction to both
C.Add a visual-level filter to exclude blanks
D.Mark the date table as a date table
AnswerA

This is the proper way to exclude customers without orders from the model.

Why this answer

Option D is correct because removing them from the Customers table ensures they don't appear. Option A is wrong because filtering the visual would be a workaround, not a model fix. Option B is wrong because changing relationship direction doesn't solve the issue.

Option C is wrong because marking as date table is irrelevant.

934
MCQeasy

You have a table 'Orders' with columns: OrderID, CustomerID, OrderDate, Amount. You want to create a measure that shows the total number of orders. Which DAX function should you use?

A.DISTINCTCOUNT(Orders[OrderID])
B.SUM(Orders[OrderID])
C.COUNT(Orders[OrderID])
D.COUNTROWS(Orders)
AnswerD

Counts total rows in Orders table.

Why this answer

Option B is correct because COUNTROWS counts the number of rows in a table. Option A is wrong because COUNT counts numeric values in a column, not rows. Option C is wrong because DISTINCTCOUNT counts distinct values.

Option D is wrong because SUM adds values.

935
Multi-Selecteasy

Which TWO of the following are valid ways to share a Power BI report with external users who do not have a Power BI license? (Choose two.)

Select 2 answers
A.Publish the report to a Power BI app and grant access to external users if the tenant settings allow.
B.Export the report to PDF and email it to the external user.
C.Use the 'Publish to web' option to create an embed code.
D.Share the report directly from the Power BI service by entering the external user's email address.
E.Add the external user to a distribution group and share the report with that group.
AnswersA, C

Power BI apps can be shared with external users if configured.

Why this answer

Options B and C are correct. Option B allows external users to view reports with a Pro license if the tenant allows. Option C allows sharing via a link that works without a license (but requires appropriate settings).

Option A is wrong because sharing directly requires the recipient to have a Pro license. Option D is wrong because exporting via email is not a built-in feature. Option E is wrong because sharing to a distribution group still requires licenses.

936
MCQmedium

You are a Power BI administrator for a large enterprise. The company has a Premium capacity (P3) that hosts over 200 datasets and 500 reports. Recently, users have reported that some reports take a long time to load, and the capacity metrics show high CPU usage during business hours. You need to optimize the capacity performance without adding additional capacity. The business requires that all reports remain available during business hours (9 AM to 5 PM). You have the following options: A. Enable 'Autoscale' on the Premium capacity to automatically add additional v-cores during peak times. B. Implement a 'Query caching' policy for frequently used datasets. C. Move all datasets to shared capacity to reduce Premium load. D. Schedule dataset refreshes to occur only during business hours. Which option should you choose?

A.Move all datasets to shared capacity to reduce Premium load.
B.Schedule dataset refreshes to occur only during business hours.
C.Enable 'Autoscale' on the Premium capacity to automatically add additional v-cores during peak times.
D.Implement a 'Query caching' policy for frequently used datasets.
AnswerD

Query caching reduces CPU usage and improves report load times.

Why this answer

Option B is correct. Query caching can improve report load times by caching query results for frequently used datasets, reducing CPU usage. Option A is wrong because Autoscale adds capacity but increases cost; the requirement is to optimize without adding capacity.

Option C is wrong because shared capacity has lower performance limits and may not support the workload. Option D is wrong because scheduling refreshes during business hours would increase CPU usage during peak times.

937
Multi-Selectmedium

You are connecting to a data source that contains Personally Identifiable Information (PII). You need to ensure that only authorized users can view the data in Power BI reports. Which TWO actions should you take?

Select 2 answers
A.Enable encryption at rest for the dataset.
B.Use Power Query to mask PII columns by replacing values with '***'.
C.Define row-level security (RLS) roles in Power BI Desktop.
D.Apply sensitivity labels to the dataset.
E.Implement object-level security (OLS) to hide sensitive tables from certain users.
AnswersC, E

RLS filters data for users based on their role, restricting access to rows they are authorized to see.

Why this answer

Options A and D are correct. Row-level security (RLS) restricts data access at the row level based on user roles. Object-level security (OLS) can hide entire tables or columns.

Option B is wrong because data masking in Power Query is not a native feature; it must be done manually. Option C is wrong because sensitivity labels protect the report content but do not restrict data access. Option E is wrong because encryption at rest is a general security measure but does not control user access.

938
MCQeasy

You are a Power BI analyst at a retail company. The company has a Power BI dataset that imports daily sales data from an on-premises SQL Server database. The dataset includes tables: 'Sales' (columns: SaleID, ProductID, SaleDate, Quantity, UnitPrice, CustomerID), 'Products' (ProductID, ProductName, Category), and 'Customers' (CustomerID, CustomerName, Region). The report needs to display a matrix visual showing total sales amount (Quantity * UnitPrice) by Category (rows) and Year (columns). The report currently shows blank values for the matrix. You have verified that relationships exist between the tables and that there is a date table marked as a date table. The measure used is: Total Sales = SUMX(Sales, Sales[Quantity] * Sales[UnitPrice]). When you test the measure in a card visual, it returns a value. However, the matrix shows blanks. What is the most likely cause and solution?

A.Use the ALL function in the measure to ignore filter context.
B.Create an active relationship between the date table and the Sales table on the SaleDate column.
C.Modify the measure to use CALCULATE with USERELATIONSHIP to force the relationship.
D.Convert the SaleDate column to a date data type using Power Query.
AnswerB

Without an active relationship, the date table filters do not propagate to Sales, causing blanks in the matrix.

Why this answer

The matrix visual shows blanks because the date table is not actively related to the Sales table on the SaleDate column. Even though a date table is marked as a date table, without an active relationship, the filter context from the date table (used for Year in columns) does not propagate to the Sales table, causing the measure to return blanks in the matrix. Creating an active relationship between the date table and Sales[SaleDate] allows the Year filter to correctly filter the Sales rows, enabling the SUMX measure to compute total sales per category per year.

Exam trap

The trap here is that candidates assume marking a table as a date table automatically creates relationships with all date columns in the model, but in reality, the relationship must be explicitly created and set as active for filters to flow correctly.

How to eliminate wrong answers

Option A is wrong because using the ALL function would remove all filter context, including the Category and Year filters, causing the measure to return the grand total in every cell, not fixing the blank issue. Option C is wrong because USERELATIONSHIP is used to activate an inactive relationship, but here no relationship exists between the date table and Sales table; the problem is the absence of any relationship, not an inactive one. Option D is wrong because converting SaleDate to a date data type is unnecessary; the column is already a date type (as it is used in a date table relationship) and the issue is relational, not data type conversion.

939
MCQhard

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?

A.Disable the 'Enable load' option for the SalesTable
B.Use CALCULATE in DAX to filter
C.Add a 'Table.Buffer' step after the filter
D.Replace the first three lines with a native SQL query that includes the WHERE clause
AnswerD

Native SQL query allows the database to apply the filter before returning data.

Why this answer

Option D is correct because pushing filter logic to the source database via a native SQL query with a WHERE clause reduces the amount of data loaded into Power Query. This leverages query folding, which allows the source (e.g., SQL Server) to perform the filtering before data is transferred, significantly improving performance for large datasets.

Exam trap

The trap here is that candidates often confuse in-memory buffering (Table.Buffer) or DAX filter functions with source-level query pushdown, failing to recognize that only native SQL or folding-compatible M steps can reduce data transfer from the source.

How to eliminate wrong answers

Option A is wrong because disabling 'Enable load' prevents the table from being loaded into the data model entirely, which does not address the filter pushdown issue and would remove the data needed for analysis. Option B is wrong because CALCULATE is a DAX function used in measures for filter context within the data model, not for optimizing Power Query transformation steps or pushing filters to the source. Option C is wrong because Table.Buffer caches the data in memory after the filter step, which can improve subsequent query performance but does not push the filter to the source; it still requires loading all rows before the buffer.

940
MCQhard

Your organization uses Microsoft Purview to catalog Power BI assets. You need to ensure that sensitivity labels applied to Power BI datasets are automatically synced to Microsoft Purview. What must you configure?

A.Create a sensitivity label policy in Microsoft Purview and publish it to Power BI.
B.Enable the 'Allow data discovery and classification' tenant setting and set up a Purview catalog scan.
C.Create a Microsoft Purview catalog and manually add Power BI assets.
D.Enable 'Automatically apply sensitivity labels' in the Power BI admin portal.
AnswerB

This enables the bidirectional sync.

Why this answer

Option C is correct because the integration between Power BI and Microsoft Purview requires enabling the 'Allow data discovery and classification' tenant setting and configuring the Purview catalog to scan Power BI. Option A is incorrect because labels are not synced via the Power BI admin portal alone. Option B is incorrect because sensitivity label policies in Purview do not automatically sync to Power BI.

Option D is incorrect because catalog creation does not sync labels.

941
Multi-Selecteasy

Which TWO of the following are valid data sources for Power Query in Power BI Desktop? (Select exactly two.)

Select 2 answers
A.SharePoint list
B.SQL Server Analysis Services database
C.Power BI dataset
D.Microsoft Entra ID
E.Excel workbook
AnswersB, E

Valid source for multidimensional or tabular models.

Why this answer

Option B is correct because Power Query in Power BI Desktop can connect directly to SQL Server Analysis Services (SSAS) databases using the Analysis Services connector, which supports both multidimensional and tabular models. This allows you to import or DirectQuery data from SSAS cubes or tabular models, leveraging MDX or DAX queries respectively.

Exam trap

The trap here is that candidates often confuse 'Power BI dataset' as a valid Power Query source because it appears in the 'Get Data' list, but it is a live connection that does not use Power Query for transformation, making it invalid for this question's context.

942
MCQeasy

You want to create a measure that calculates the total sales for the current year. Which DAX expression should you use?

A.DATESYTD('Date'[Date])
B.TOTALYTD(SUM(Sales[Amount]), 'Date'[Date])
C.CALCULATE(SUM(Sales[Amount]), YEAR('Date'[Date]) = YEAR(TODAY()))
D.SAMEPERIODLASTYEAR(SUM(Sales[Amount]), 'Date'[Date])
AnswerB

TOTALYTD is the appropriate time intelligence function for year-to-date.

Why this answer

Option A is correct because TOTALYTD calculates year-to-date. Option B is wrong because DATESYTD returns a table. Option C is wrong because CALCULATE requires a filter.

Option D is wrong because SAMEPERIODLASTYEAR is for previous year.

943
Multi-Selectmedium

Which TWO of the following are true about using AI visuals in Power BI? (Select two.)

Select 2 answers
A.The Copilot feature is available in all Power BI licenses
B.The Key Influencers visual is a native visual available without AI
C.Smart Narratives is a custom visual from AppSource
D.The Q&A visual allows users to type natural language questions
E.The Key Influencers visual uses machine learning to identify factors that affect a metric
AnswersD, E

Q&A is an AI-powered visual that interprets natural language.

Why this answer

Option A is correct: Q&A allows natural language queries. Option D is correct: Key Influencers visual uses machine learning to analyze factors. Option B is wrong: Decomposition Tree is an AI visual, not a native visual.

Option C is wrong: Smart Narratives is a visual, not a custom visual. Option E is wrong: Copilot is a feature that can be enabled, but it's not a visual type.

944
MCQeasy

Your Power BI report includes a bar chart showing monthly sales. Users complain that the bars are too crowded when viewing a full year. What is the best design change to improve readability?

A.Sort the bars by sales value descending
B.Switch to a line chart
C.Remove the axis labels
D.Add a slicer for quarter to filter the view
AnswerD

A slicer lets users view one quarter at a time, reducing clutter.

Why this answer

Sorting by sales value does not reduce crowding, changing to a line chart is better for continuous data, and removing axis labels harms readability. Slicing by quarter reduces the number of bars visible at once.

945
Multi-Selecthard

Which THREE of the following are valid reasons to create a calculated table in Power BI?

Select 3 answers
A.Replace incremental refresh
B.Create a summary table that aggregates data from another table
C.Modify the source data before loading
D.Create a crossjoin of two dimension tables
E.Create a date table that is not available in the source
AnswersB, D, E

Calculated tables can summarize data.

Why this answer

Options A, B, and D are correct. Option C is wrong because you cannot change the source table; calculated tables are derived. Option E is wrong because calculated tables are static and not a replacement for incremental refresh.

946
MCQeasy

You have the measure shown. You add it to a table visual alongside columns from a related table. The total is higher than expected. What is the most likely cause?

A.The Sales table is summarized at a different granularity.
B.The measure is not filtered by any slicer.
C.The visual is expanding the measure due to a many-to-one relationship.
D.The measure should use SUMX instead of SUM.
AnswerC

Cross-filtering can cause inflated sums.

Why this answer

Option B is correct because if the relationship is one-to-many and the visual includes columns from the one side, the measure might be summing across multiple rows due to cross-filtering. Option A is wrong because there is no filter. Option C is wrong because it's a sum.

Option D is wrong because the table is not summarized.

947
MCQeasy

You have a Power BI model with a table named Orders that contains columns OrderDate, ShipDate, and CustomerID. You need to create a calculated column that computes the number of days between OrderDate and ShipDate. Which DAX expression should you use?

A.DATEDIFF(Orders[OrderDate], Orders[ShipDate], DAY)
B.DATEADD(Orders[OrderDate], 1, DAY)
C.DAY(Orders[ShipDate] - Orders[OrderDate])
D.NETWORKDAYS(Orders[OrderDate], Orders[ShipDate])
AnswerA

DATEDIFF returns the number of intervals between two dates; DAY specifies the interval.

Why this answer

Option A is correct because the DATEDIFF function in DAX calculates the interval between two dates in the specified unit (DAY). This directly computes the number of days between OrderDate and ShipDate, which is the required result for the calculated column.

Exam trap

The trap here is that candidates might confuse DATEDIFF with DATEADD (which shifts dates) or incorrectly use DAY() on a date difference, thinking it extracts the number of days, when DAY() actually returns the day of the month (1–31).

How to eliminate wrong answers

Option B is wrong because DATEADD shifts a date by a specified number of intervals (e.g., adds 1 day to OrderDate), not the difference between two dates. Option C is wrong because DAY extracts the day-of-month component from a date, not the interval between dates; subtracting two dates in DAX returns a decimal representing days, but wrapping it in DAY returns an incorrect integer (the day number of the difference). Option D is wrong because NETWORKDAYS calculates the number of whole working days between two dates, excluding weekends and optionally holidays, not the total calendar days.

948
MCQhard

Refer to the exhibit. You are configuring a Power BI dataset with row-level security (RLS) using a JSON policy. The exhibit shows an RLS configuration. A user 'analyst@contoso.com' has access to the 'Orders' table. However, when the user views the report, no data is displayed. What is the most likely cause?

A.The user's email domain does not match the data source.
B.The connection string uses Integrated Security, which requires a gateway.
C.The RLS policy is missing a filter expression to allow rows.
D.The table name 'Orders' is misspelled.
AnswerC

RLS requires a filter expression (e.g., [SalesPerson] = USERNAME()) to allow access to specific rows; without it, all rows are denied.

Why this answer

Option C is correct because the RLS policy shown in the exhibit lacks a filter expression that defines which rows the user is allowed to see. In Power BI, a row-level security policy must include a DAX filter that returns a table of allowed rows; without it, the policy effectively denies all rows to the user. The user 'analyst@contoso.com' has access to the 'Orders' table, but the missing filter means no rows pass the security check, resulting in an empty report.

Exam trap

The trap here is that candidates assume a role assignment alone grants data access, but Power BI RLS requires an explicit filter expression to allow rows; without it, the role effectively blocks all data.

How to eliminate wrong answers

Option A is wrong because RLS in Power BI does not validate user email domains against the data source; it uses the user principal name (UPN) from Azure AD to apply the security filter, and domain mismatch would not cause a blank report unless the user is not in the security role at all. Option B is wrong because Integrated Security and gateway requirements are unrelated to RLS filtering; a gateway is needed for on-premises data sources, but the issue here is a missing filter expression, not connectivity. Option D is wrong because the table name 'Orders' is correctly spelled in the exhibit, and a misspelling would cause a validation error when saving the policy, not a silent empty report.

949
MCQmedium

You have the DAX expression shown. What does this expression return?

A.Total sales for the previous year
B.Total sales for the year of the latest date in the current filter context
C.Total sales for the maximum year in the Date table
D.Total sales for the current year
AnswerB

MAX('Date'[Year]) returns the maximum year in the current filter context.

Why this answer

The DAX expression uses CALCULATE to modify the filter context for 'Sales[Amount]' by applying a filter that selects only dates where the year equals the year of the latest date present in the current filter context. The MAX function returns the maximum date from the Date table within the current filter context, and YEAR extracts its year. This effectively returns total sales for the year containing the most recent date in the current filter context, not necessarily the previous year or the absolute maximum year in the Date table.

Exam trap

The trap here is that candidates often confuse 'maximum year in the Date table' (ignoring filter context) with 'year of the latest date in the current filter context', leading them to select Option C, or they mistakenly think the expression calculates the previous year (Option A) because they misread MAX as a time intelligence function.

How to eliminate wrong answers

Option A is wrong because the expression does not use DATEADD or SAMEPERIODLASTYEAR to shift dates back by one year; it filters to the year of the latest date in the current context, not the prior year. Option C is wrong because MAX(Date[Date]) returns the latest date within the current filter context, not the absolute maximum year in the entire Date table, so it respects any slicers or filters applied. Option D is wrong because 'current year' implies the calendar year of today's date, but the expression uses the year of the latest date in the current filter context, which may differ from the current calendar year if the data does not include today's date or if a filter restricts the date range.

950
MCQmedium

You are a data analyst for a retail company. You have a Power BI semantic model that includes a fact table named Sales with columns: Date, ProductID, StoreID, Quantity, and Amount. You also have dimension tables: Product, Store, and Date. The Date table is marked as a date table. You need to create a measure that calculates the running total of sales amount over the last 12 months, including the current month. The measure should be dynamic based on the filter context. Which DAX expression should you use?

A.CALCULATE(SUM(Sales[Amount]), DATESBETWEEN(Date[Date], DATE(2024,1,1), MAX(Date[Date])))
B.CALCULATE(SUM(Sales[Amount]), PARALLELPERIOD(Date[Date], -12, MONTH))
C.CALCULATE(SUM(Sales[Amount]), DATESINPERIOD(Date[Date], MAX(Date[Date]), -12, MONTH))
D.TOTALYTD(SUM(Sales[Amount]), Date[Date])
AnswerC

DATESINPERIOD shifts the date range back 12 months from the last date in context, creating a rolling 12-month total.

Why this answer

Option A uses DATESINPERIOD with a -12 month offset, which correctly calculates a rolling 12-month total. Option B uses PARALLELPERIOD for parallel period comparison, not rolling total. Option C uses DATESBETWEEN with a fixed start date, which is not dynamic.

Option D uses TOTALYTD which calculates year-to-date, not rolling 12 months.

951
MCQhard

A Power BI developer is troubleshooting a report that uses a calculated table. The calculated table is defined as: 'Sales Summary = SUMMARIZE(Sales, Sales[ProductID], "Total Sales", SUM(Sales[Amount]))'. Users report that the 'Total Sales' column shows incorrect values when slicers are applied to the report. What is the most likely cause?

A.The calculated table lacks a relationship to the Sales table.
B.Calculated tables are static and do not respond to slicer selections.
C.The SUMMARIZE function syntax is incorrect.
D.The calculated table is not marked as a date table.
AnswerB

Calculated tables are evaluated once at refresh and are not dynamic with slicers.

Why this answer

Calculated tables in Power BI are evaluated at data refresh time and stored in the model as static data. They do not respond to slicer selections or any other report-level filters because they are not recalculated in the query context. Therefore, the 'Total Sales' column in the 'Sales Summary' table will always show the same aggregated values regardless of slicer interactions, which is why users see incorrect values when applying slicers.

Exam trap

The trap here is that candidates often confuse calculated tables with calculated columns or measures, assuming that all DAX expressions are dynamic and respond to slicers, but calculated tables are static and only evaluated at refresh time.

How to eliminate wrong answers

Option A is wrong because a calculated table defined with SUMMARIZE on the Sales table does not require a separate relationship to the Sales table; it inherits the data directly from the source table and any existing relationships in the model are irrelevant to the static nature of calculated tables. Option C is wrong because the SUMMARIZE function syntax is correct: it groups by Sales[ProductID] and creates a new column 'Total Sales' with the sum of Sales[Amount]; there is no syntax error. Option D is wrong because marking a table as a date table is only relevant for time intelligence functions and date-based filtering, not for the static behavior of calculated tables or their response to slicers.

952
MCQeasy

You are connecting to a SharePoint folder containing 100 Excel files. Each file has a similar structure but different column names. What is the best practice to combine these files into a single table while preserving the data?

A.Use Power Query's 'Combine Files' feature, selecting a sample file and promoting headers, then transforming column names to a standard set.
B.Load each file as a separate table and create relationships in the model.
C.Use Power Query's 'Merge Queries' to join all files into one table.
D.Use 'Append Queries' to stack all files, then rename columns manually.
AnswerA

This automates combining files with different structures.

Why this answer

Option A is correct because Power Query's 'Combine Files' feature is designed specifically for this scenario: it uses a sample file to infer the transformation logic (e.g., promoting headers), then applies that logic to all files in the folder. By transforming column names to a standard set within the sample file step, you ensure consistent column names across all files, preserving data integrity while combining them into a single table.

Exam trap

The trap here is that candidates often confuse 'Combine Files' (which unions multiple files with a consistent transformation) with 'Merge Queries' (which joins tables horizontally) or 'Append Queries' (which stacks tables but lacks automated column standardization).

How to eliminate wrong answers

Option B is wrong because loading each file as a separate table and creating relationships would result in a fragmented model with many tables, making analysis cumbersome and violating the goal of combining into a single table. Option C is wrong because 'Merge Queries' performs a join (like SQL JOIN) on matching columns between two tables, not a union of multiple files; it would not stack rows from all files. Option D is wrong because 'Append Queries' can stack tables, but manually renaming columns for 100 files is impractical and error-prone; the 'Combine Files' feature automates this with a sample file transformation.

953
MCQeasy

You want to create a visual that shows the top 5 products by sales amount, but also want to include an 'Other' category that aggregates all remaining products. Which approach should you use?

A.Add a slicer to filter top 5 and manually add 'Other'
B.Create a calculated column that assigns 'Other' to non-top-5 products
C.Apply a Top N filter and add a measure for 'Other'
D.Use the 'Group' feature on the product field and select 'Include Other'
AnswerD

Grouping with 'Include Other' automatically aggregates remaining items.

Why this answer

Option B is correct because grouping allows you to combine remaining values into an 'Other' group. Option A is wrong because a slicer does not aggregate. Option C is wrong because a calculated column would require manual grouping.

Option D is wrong because a filter would exclude products, not group them.

954
MCQmedium

A company uses Row-Level Security (RLS) in Power BI. They want to ensure that when a manager views the report, they see data for their own region plus any region where a salesperson reports to them. Which RLS approach should you implement?

A.Use a DAX filter that references the USERPRINCIPALNAME() function
B.Use Power BI App permissions to restrict data
C.Create a static role for each manager and assign users
D.Apply RLS at the visual level using bookmarks
AnswerA

USERPRINCIPALNAME() can be used to look up the manager's data permissions dynamically.

Why this answer

Option A is correct because Row-Level Security (RLS) in Power BI uses DAX filters that can dynamically evaluate the current user's identity via USERPRINCIPALNAME() or USERNAME(). By creating a DAX rule that checks whether the manager's UPN matches the region manager or if the salesperson's manager UPN equals the current user, you can enforce dynamic, hierarchical data access without hardcoding roles per manager.

Exam trap

The trap here is that candidates often confuse RLS with app-level security or visual-level filtering, assuming that restricting access at the app or bookmark level can achieve row-level data isolation, but only DAX-based RLS can enforce dynamic, user-specific row filtering at the data source.

How to eliminate wrong answers

Option B is wrong because Power BI App permissions control access to the entire report or dashboard, not row-level data within a dataset; they cannot filter data by manager or region. Option C is wrong because creating a static role for each manager would require manual role creation and user assignment for every manager, which is not scalable and does not support dynamic hierarchy based on reporting structure. Option D is wrong because RLS cannot be applied at the visual level using bookmarks; bookmarks capture visual state (filters, slicers, selections) but do not enforce security—any user can bypass bookmarks by interacting with the report.

955
MCQeasy

You need to create a measure that calculates the year-over-year growth percentage for sales. Which DAX function should you use?

A.DATEADD
B.PARALLELPERIOD
C.SAMEPERIODLASTYEAR
D.PREVIOUSYEAR
AnswerC

SAMEPERIODLASTYEAR returns the same period in the previous year, ideal for YoY.

Why this answer

The SAMEPERIODLASTYEAR function is the correct choice for calculating year-over-year growth because it shifts the current filter context back by one year, returning a set of dates exactly one year prior. This allows you to compute the prior year's sales and then derive the growth percentage using a formula like (Current Sales - Prior Year Sales) / Prior Year Sales.

Exam trap

The trap here is that candidates often confuse SAMEPERIODLASTYEAR with PREVIOUSYEAR, mistakenly thinking PREVIOUSYEAR can be used for any period comparison, but PREVIOUSYEAR only works for full calendar year comparisons, not for partial periods like months or quarters.

How to eliminate wrong answers

Option A is wrong because DATEADD shifts dates by a specified interval (e.g., -1 year) but returns a contiguous range of dates, which can cause unexpected results when the current period is not a full month or quarter. Option B is wrong because PARALLELPERIOD returns a parallel period of the same length in the previous period (e.g., previous month, quarter, or year) but shifts the entire period, which may not align with the exact same dates as the current period. Option D is wrong because PREVIOUSYEAR returns all dates in the previous calendar year, which is not suitable for year-over-year comparisons when the current period is not the entire year (e.g., comparing a single month or quarter).

956
MCQmedium

You manage a Power BI workspace that contains a dataset refreshed daily from an on-premises SQL Server. Users report that the report shows data from two days ago. You verify that the scheduled refresh ran successfully this morning. What is the most likely cause?

A.The gateway is using a cached version of the data due to a misconfigured data source.
B.The refresh took longer than expected and timed out.
C.The scheduled refresh is not set to refresh the dataset.
D.The on-premises data gateway is offline.
AnswerA

A misconfigured gateway cache can cause stale data.

Why this answer

Option A is correct because the most likely cause is that the on-premises data gateway is using a cached version of the data due to a misconfigured data source. When the data source is misconfigured (e.g., incorrect credentials or connection string), the gateway may fall back to a previously cached dataset, causing the report to show stale data even though the scheduled refresh appears to have run successfully. This explains why users see data from two days ago despite a successful refresh this morning.

Exam trap

The trap here is that candidates assume a successful refresh always means fresh data, but the gateway's caching behavior can mask a misconfigured data source, leading to stale data without an error.

How to eliminate wrong answers

Option B is wrong because if the refresh took longer than expected and timed out, the refresh would not have completed successfully, but the question states the scheduled refresh ran successfully. Option C is wrong because the scheduled refresh is explicitly set to refresh the dataset daily, and the question confirms it ran successfully this morning. Option D is wrong because if the on-premises data gateway were offline, the scheduled refresh would fail entirely, not run successfully and still show stale data.

957
MCQhard

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?

A.The relationship is configured as many-to-many.
B.The relationship direction is set to Both.
C.The RegionID column in the Sales table is hidden.
D.There is no active relationship between the Sales and Regions tables.
AnswerD

Without an active relationship, Power BI cannot propagate filters from Sales to Regions, so it displays the foreign key column (RegionID) instead of RegionName.

Why this answer

Option D is correct because if there is no active relationship between the Sales and Regions tables, Power BI cannot use the RegionName from the Regions table to filter or group the Sales data. Instead, it defaults to displaying the RegionID from the Sales table, which is the only related field available in the visual. An active relationship must exist between the two tables on the RegionID columns for RegionName to appear in the matrix.

Exam trap

The trap here is that candidates often assume the RegionName column is missing due to a hidden column or relationship cardinality, but the core issue is the absence of an active relationship, which Power BI requires to combine data from different tables in a visual.

How to eliminate wrong answers

Option A is wrong because a many-to-many relationship would still allow RegionName to appear, though it might cause ambiguous aggregation; it does not cause the visual to show RegionID instead of RegionName. Option B is wrong because setting the relationship direction to Both (bidirectional cross-filtering) does not prevent RegionName from being used; it actually enables additional filtering but does not hide the RegionName column. Option C is wrong because hiding the RegionID column in the Sales table does not affect the display of RegionName from the Regions table; hiding a column only prevents it from appearing in the field list, not from being used in relationships or visuals.

958
Multi-Selectmedium

You are designing a Power BI data model for a manufacturing company. Which TWO practices help optimize performance when using DirectQuery?

Select 2 answers
A.Disable relationships between tables to reduce query complexity
B.Create calculated columns in Power Query instead of in DAX
C.Reduce the number of columns in the fact query to only those needed
D.Enable bidirectional cross-filtering for all relationships
E.Use a single date dimension table for all date columns
AnswersC, E

Minimizes data transfer from the source.

Why this answer

Option A is correct: Reducing columns in the query reduces data transfer. Option C is correct: Using a single date table avoids multiple joins. Option B is wrong because calculated columns in DirectQuery are pushed to source but can degrade performance.

Option D is wrong because disabling relationships is not a best practice. Option E is wrong because bidirectional filtering can cause performance issues.

959
MCQeasy

You review the dataset refresh history. The second refresh took 30 minutes and failed. What is the most likely reason for the failure?

A.The refresh schedule conflicted with another refresh.
B.The on-premises data gateway was offline.
C.The refresh exceeded the timeout limit set in the gateway.
D.The data source was unavailable.
AnswerC

Long refresh duration and failure suggest timeout.

Why this answer

The second refresh took 30 minutes and failed, which strongly indicates the refresh exceeded the default 30-minute timeout limit configured in the on-premises data gateway. When a dataset refresh operation in Power BI runs longer than the gateway's timeout setting, the gateway terminates the connection, causing the refresh to fail. This is a common issue when refreshing large datasets or complex queries through a gateway.

Exam trap

The trap here is that candidates often confuse the gateway timeout with the Power BI service refresh timeout, or assume a 30-minute failure is due to a schedule conflict or data source unavailability, rather than recognizing the exact match with the default gateway timeout value.

How to eliminate wrong answers

Option A is wrong because a refresh schedule conflict would typically cause the second refresh to be skipped or queued, not to start and then fail after 30 minutes. Option B is wrong because if the on-premises data gateway were offline, the refresh would fail immediately or very quickly, not after a full 30-minute attempt. Option D is wrong because if the data source were unavailable, the refresh would fail early in the process (e.g., during connection attempt), not after 30 minutes of execution.

960
MCQhard

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?

A.Use DirectQuery storage mode for all tables to ensure real-time data and aggregate queries at the source.
B.Use a composite model: Import for dimension tables and DirectQuery for Sales table to balance freshness and performance.
C.Use Import storage mode for all tables with incremental refresh policy on the Sales table to load only the last 5 years of data.
D.Use Import mode but do not create a date table; instead use the DateKey column from Sales for time intelligence.
AnswerC

Reduces data volume, allows in-memory performance, and supports all requirements including date hierarchy.

Why this answer

Option B is correct: Using Import mode with incremental refresh reduces data volume and leverages Power BI's compression and in-memory engine for fast performance. Option A is wrong because DirectQuery over such a large table would be slow. Option C is wrong because Composite model adds complexity and may not meet performance targets.

Option D is wrong because it lacks the necessary date hierarchy for drill-down.

961
MCQhard

Refer to the exhibit. You are configuring a Microsoft Purview Data Loss Prevention (DLP) policy for Power BI. The policy rule shown is intended to block downloads from datasets that have the 'Confidential' sensitivity label and are sourced from SharePoint or SQL Server. However, users are still able to download data from these datasets. What is the most likely reason?

A.The target should be 'reports' instead of 'datasets'.
B.The action 'blockDownload' is not a valid action; the correct action should be 'Block' or 'BlockDownload' might require additional configuration.
C.The condition uses 'dataSource' which is not a valid property in Power BI DLP policies.
D.The policy rule is missing the 'and' operator between the two conditions.
AnswerB

The action must be properly defined; 'blockDownload' may not be recognized.

Why this answer

Option B is correct because in the Power BI DLP policy, you must specify the action as 'Block' for download to be prevented. The exhibit shows 'blockDownload', but the correct action syntax is likely 'Block' (or the policy is not fully configured). Option A is wrong because the condition uses 'dataSource' which is valid.

Option C is wrong because the exhibit shows a single condition with both label and source. Option D is wrong because the target is datasets.

962
Matchingmedium

Match each Power BI service feature to its description.

Drag a concept onto its matching description — or click a concept then click the description.

Concepts
Matches

Single page of visualizations from multiple reports

Collection of dashboards and reports for consumers

Container for dashboards, reports, and datasets

Cloud-based ETL for data preparation

Pixel-perfect report for printing

Why these pairings

These are key features available in the Power BI service.

963
MCQmedium

Refer to the exhibit. You are reviewing a Power BI data source credential configuration. The Azure Blob Storage data source uses 'Anonymous' credentials. However, the refresh fails with an error indicating that the blob container is private and requires authentication. Which change should you make?

A.Change credential type to 'Service Principal' and provide the app ID and secret.
B.Change credential type to 'Account Key' and provide the storage account key.
C.Change credential type to 'Basic' and provide the storage account name and key.
D.Change credential type to 'Windows' for the Azure Blob datasource.
AnswerB

Account key or SAS token is required for private blob containers.

Why this answer

Azure Blob Storage containers that are private require authentication. The 'Account Key' credential type in Power BI uses the storage account key to authenticate via the Azure Storage REST API, which is the correct method for accessing private blob containers. Anonymous access only works when the container is configured for public access.

Exam trap

The trap here is that candidates may confuse 'Anonymous' with a valid credential type for private containers, or incorrectly assume that 'Basic' authentication is equivalent to providing a username and password for Azure Storage.

How to eliminate wrong answers

Option A is wrong because a Service Principal requires Azure AD registration and RBAC permissions, which is unnecessary and overly complex for accessing a single storage account; the account key is the simpler and correct method. Option C is wrong because 'Basic' authentication is not a valid credential type for Azure Blob Storage in Power BI; it is used for HTTP/HTTPS endpoints that support basic auth, not Azure Storage. Option D is wrong because 'Windows' authentication is for on-premises data sources like SQL Server, not for cloud-based Azure Blob Storage.

964
MCQhard

You have the above DAX measure. When you add it to a table visual with Year and Month, the values are correct for each month. However, when you add a slicer for Year and select 2023, the measure shows blank for all months. What is the most likely cause?

A.The measure uses DIVIDE instead of a simple division.
B.The Date table is not marked as a date table.
C.The Sales table has a many-to-many relationship with Date.
D.The slicer is filtering the Sales table directly.
AnswerB

Time intelligence functions require a date table to be marked as such.

Why this answer

The SAMEPERIODLASTYEAR function requires a continuous date range. If the Date table does not have a relationship to Sales or if the date table is missing dates (e.g., only dates where sales occurred), the function may return blank. However, a common issue is that the Date table must be marked as a date table.

Another cause could be that the date table does not contain dates for the previous year. But given the symptom 'shows blank for all months when slicer is applied', it suggests the date table is not continuous or not marked as date table. In Power BI, if a date table is not marked as a date table, time intelligence functions may not work correctly with slicers.

965
MCQmedium

You need to create a measure that calculates the average sales per transaction. The 'Sales' table has columns 'TransactionID' and 'Amount'. Which DAX expression is correct?

A.SUM(Sales[Amount]) / DISTINCTCOUNT(Sales[TransactionID])
B.DIVIDE(SUM(Sales[Amount]), COUNTROWS(Sales))
C.AVERAGEX(Sales, Sales[Amount])
D.AVERAGE(Sales[Amount])
AnswerB

Calculates total amount divided by number of transactions.

Why this answer

Option D is correct because DIVIDE(SUM(Sales[Amount]), COUNTROWS(Sales)) calculates total sales divided by number of transactions. Option A is wrong because AVERAGE(Sales[Amount]) averages the amounts, not per transaction. Option B is wrong because AVERAGEX iterates over each row, averaging amounts, which is not per transaction if multiple rows per transaction.

Option C is wrong because it sums amounts then divides by distinct transaction count, which would be correct if each transaction has one row, but not if multiple rows per transaction; however, DIVIDE is safer.

966
MCQhard

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?

A.Use DirectQuery for all data sources and create views in Azure SQL to transform the SharePoint and Dataverse data. Use Power Query to combine SharePoint files in a view.
B.Import all data into Power BI using Import mode. Schedule refreshes every 15 minutes for the current month and daily for historical data.
C.Use a composite model: DirectQuery for the current month's sales data from Azure SQL, and Import mode for historical sales (with incremental refresh) and for customer feedback (with hourly refresh). Combine SharePoint files using Power Query and load them into the model using Import mode. Set up a DirectQuery connection for near real-time.
D.Use Azure Data Factory to copy all data to Azure SQL Database, then connect Power BI using DirectQuery.
AnswerC

Composite model allows mixing storage modes; DirectQuery on the current month's data enables near real-time queries. Incremental refresh on historical data optimizes refresh. Power Query can handle SharePoint file combination.

Why this answer

Option C is correct because it uses a composite model to meet all requirements: DirectQuery for near real-time current-month sales (≤15-minute latency), Import mode with incremental refresh for historical sales (daily refresh), Import mode for customer feedback (hourly refresh), and Power Query to combine SharePoint Excel files into a consistent table. This approach balances real-time needs with query performance and refresh flexibility, leveraging Power BI Premium's composite model capabilities.

Exam trap

The trap here is that candidates may choose Import mode for everything (Option B) without realizing the 48-refresh-per-day limit on Power BI Premium, which prevents 15-minute refreshes, or they may overlook composite models as the only way to combine real-time and historical data efficiently.

How to eliminate wrong answers

Option A is wrong because DirectQuery for all sources would cause poor query performance due to the large volume of historical data (10M rows/day for 5 years) and cannot handle combining SharePoint files with different structures in a view without transformation. Option B is wrong because Import mode with 15-minute refreshes for current-month sales would exceed the 48 daily refresh limit on Power BI Premium (48 refreshes/day = 30-minute minimum interval) and cannot achieve near real-time latency. Option D is wrong because copying all data to Azure SQL Database via Azure Data Factory introduces additional latency and complexity, and using DirectQuery for the entire dataset would still suffer from performance issues with large historical data.

Page 12

Page 13 of 13