Courseiva

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

524 questions total · 7pages · All types, answers revealed

Page 3

Page 4 of 7

Page 5
226
MCQmedium

You have a report with a line chart showing monthly sales. Users need to see the exact sales value when they hover over a data point. What should you configure?

A.Enable data labels on the chart.
B.Configure the visual's tooltip to display the value.
C.Add a report page tooltip.
D.Set the category label to show the value.
AnswerB

To see the monthly sales value on hover, ensure the line chart's tooltip is enabled in the Format pane and that the Sales measure is included in the Tooltip well (it is by default). When configured, hovering a point shows a tooltip displaying the category, series name, and the measure value. If the tooltip is currently not appearing, verify the tooltip toggles are on and no report page tooltip has overridden it.

Why this answer

Tooltips in Power BI are designed to show detailed information about a data point when the user hovers over it. By default, the visual's tooltip already includes the value, but if it has been customized or removed, you need to ensure the tooltip is configured to display the sales value. This provides an interactive way to see exact numbers without cluttering the chart with permanent labels.

Exam trap

The trap here is that candidates often confuse data labels (which show values permanently on the chart) with tooltips (which show values on hover), leading them to select option A instead of understanding that tooltips are the correct interactive mechanism for this requirement.

How to eliminate wrong answers

Option A is wrong because enabling data labels permanently displays the sales value on the chart for every data point, which can clutter the visual and is not the hover-based behavior requested. Option C is wrong because a report page tooltip is a custom tooltip that can show additional context from other visuals or pages, but it is not required for simply showing the exact sales value; the default visual tooltip already serves that purpose. Option D is wrong because the category label shows the category name (e.g., month), not the sales value, and setting it to show the value would misrepresent the axis.

227
MCQeasy

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

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

SAMEPERIODLASTYEAR is the precise DAX function for year-over-year comparisons because it returns a table of dates that exactly mirrors the current context's date range shifted one calendar year back. When used inside CALCULATE, it applies that prior-year date filter to evaluate the measure for the equivalent period, automatically handling year boundaries and leap years. This makes it the standard choice for calculating prior-year values in YoY growth formulas.

Why this answer

SAMEPERIODLASTYEAR is the most direct and semantically clear function for year-over-year comparisons because it returns the same period in the prior year without requiring complex interval arguments. While DATEADD('Date'[Date], -1, YEAR) produces the same result, SAMEPERIODLASTYEAR is specifically designed for this purpose and is easier to read. PARALLELPERIOD, on the other hand, shifts entire periods and may not align with the current granularity (e.g., a monthly context would return the full prior year).

Exam trap

A common trap is choosing DATEADD or PARALLELPERIOD. DATEADD can also calculate YoY growth, but SAMEPERIODLASTYEAR is the more precise and intended function. PARALLELPERIOD should be avoided when you need the same period in the prior year, as it returns the entire parallel period rather than the matching subset.

How to eliminate wrong answers

Option A is wrong because DATEADD shifts dates by a specified interval (e.g., -1 year) but returns a single column of dates, not a contiguous period, and can produce unexpected results when used with non-standard calendars or incomplete date ranges. Option B is wrong because DATESYTD returns a set of dates from the start of the year to the latest date in the current context, which is used for year-to-date calculations, not for comparing against the prior year. Option D is wrong because PARALLELPERIOD shifts an entire period (e.g., the whole previous year) but does not align to the same relative period as SAMEPERIODLASTYEAR; it can include partial periods or incorrect boundaries when the date range is not full.

228
MCQmedium

You are a Power BI administrator. A user in your organization wants to share a report with an external user who does not have a Power BI license. You want to allow the external user to view the report without requiring them to sign in. What should you do?

A.Create a new user account in your Microsoft Entra ID for the external user and assign a Power BI Pro license.
B.Share the report directly with the external user's email address.
C.Invite the external user as a guest in Microsoft Entra ID, then share the report.
D.Use the 'Publish to web' option to generate an embed code and send the link to the external user.
AnswerD

Publishing to web is the only option that bypasses all authentication and licensing requirements entirely: it generates a publicly accessible embed code and a URL that anyone with the link can open in a browser, with no sign-in or Power BI license needed. This exactly matches the requirement of letting an external user view report content without credentials, but it is also risky because the report is effectively published on the internet for anyone who discovers the link to see, including potentially sensitive data. In production, this feature is appropriate only for non-confidential, public-facing content, and an administrator should ensure the tenant-level 'Publish to web' setting is allowed before using it.

Why this answer

The correct option is D: use 'Publish to web' to generate an embed code and send the link, because this feature creates a publicly accessible URL that renders the report anonymously, so the external user needs no Power BI license and no sign-in. It is designed exactly for anonymous, internet-wide viewing of non-sensitive reports. Option A is wrong because assigning a Power BI Pro license still requires the external user to authenticate with that account.

Option B is wrong because direct sharing requires the recipient to have a Power BI account/license and to sign in. Option C is wrong because guest access in Microsoft Entra ID still requires the external user to sign in with the guest identity.

229
MCQeasy

You are importing data from a CSV file that contains a column 'OrderDate' with dates in the format 'MM/dd/yyyy'. Some rows have invalid dates like '02/30/2023'. What is the best way to handle these errors in Power Query?

A.Use 'Replace Errors' to replace error values with null.
B.Remove rows with errors using 'Remove Rows' > 'Remove Errors'.
C.Change the data type to 'Date' and ignore errors.
D.Filter the column to exclude rows where the date is invalid after type conversion.
AnswerA

Replacing errors with null in Power Query is a non-destructive transformation that explicitly substitutes each invalid date value with a null while keeping the row intact. You apply it to the date column (Home > Replace Errors or context menu) and specify null as the replacement value. This preserves all other column values for that row and produces a clean, nullable date column that the data model handles naturally, e.g., through blanks in visuals or DAX functions like CALCULATE with filters. It also avoids the risk of load failure due to leftover errors.

Why this answer

'Replace Errors' in Power Query allows you to replace error values (which occur when Power Query fails to convert an invalid date like '02/30/2023' to the Date type) with null. This preserves the rest of the data and keeps the query running without interruption, while clearly marking invalid entries for later handling or analysis.

Exam trap

The trap here is that candidates often choose 'Remove Errors' (Option B) thinking it cleans the data, but they overlook that it deletes entire rows, which may discard valid data in other columns — a common mistake in data preparation scenarios.

How to eliminate wrong answers

Option B is wrong because 'Remove Errors' deletes entire rows containing any error, which can lead to data loss if other columns in those rows contain valid data. Option C is wrong because 'Change data type to Date and ignore errors' is not a valid Power Query operation; ignoring errors during type conversion still results in errors in the column, and there is no built-in 'ignore errors' toggle. Option D is wrong because filtering to exclude rows with invalid dates after type conversion requires the errors to be present first, and filtering on error values is not straightforward; it is more efficient to replace errors with null and then filter if needed.

230
MCQeasy

You are modeling a fact table that contains sales transactions with columns: OrderDate, ShipDate, SalesAmount, CustomerKey. You need to create a relationship to a date table. The date table has a single Date column. Which relationship should you create for the most accurate time-based analysis?

A.Create a single relationship from OrderDate to Date and ignore ShipDate.
B.Create two active relationships: OrderDate to Date and ShipDate to Date.
C.Create an active relationship from OrderDate to Date and an inactive relationship from ShipDate to Date.
D.Create only one relationship from ShipDate to Date.
AnswerC

This design correctly distinguishes the default business date (OrderDate) from an alternative date role (ShipDate). Because a table can have multiple relationships but only one active, the ShipDate relationship is configured as inactive, meaning it won't affect normal filters. When shipping analysis is needed, a DAX measure can use CALCULATE with USERELATIONSHIP(ShipDate[Date], Date[Date]) to activate that relationship for the duration of the calculation, preserving both analytical paths without ambiguity.

Why this answer

Option C is correct because a date dimension can have only one active relationship to a given fact table in Power BI / Tabular models, so OrderDate to Date is made active for default time intelligence, while ShipDate to Date is added as an inactive relationship that can be activated in specific measures using USERELATIONSHIP. This supports accurate analysis of both order-based and shipment-based metrics without ambiguity. Option A is wrong because it discards ShipDate analysis entirely, and Option B is wrong because two active relationships between the same two tables create an ambiguous filter path that is not allowed.

Option D is wrong because making ShipDate the only relationship prevents standard order-date time intelligence and ignores OrderDate.

231
MCQeasy

You need to create a Power BI report that allows users to select a single measure from a list to display on a card visual. Which feature should you use?

A.Bookmarks
B.Tooltips
C.Field parameters
D.Drill-through
AnswerC

Field parameters, created in the 'Parameters' pane in Power BI Desktop, let you define a list of DAX expressions (e.g., SUM(Sales), SUM(Profit)) and expose them as a single slicer or dropdown. When a user selects a value, that DAX expression is passed to a visual, dynamically swapping the measure or field being displayed. This is the correct solution because it is purpose-built for dynamic field/measure selection, avoids multiplying visuals, and works seamlessly with report themes and active relationships.

Why this answer

Field parameters are the correct choice because they let report authors define a dynamic list of fields or measures that users can switch between via a slicer, directly changing what a card visual displays. In this scenario, a field parameter containing the candidate measures bound to the card's value field enables single-measure selection at runtime. Bookmarks (A) capture and replay saved filter/visibility states rather than swapping the measure bound to a visual.

Tooltips (B) only show supplementary detail on hover and cannot replace the card's displayed measure. Drill-through (D) navigates to a filtered detail page and does not provide measure selection.

232
MCQhard

You have a Power BI dataset with a fact table containing sales transactions and a dimension table for customers. The customer dimension includes a calculated column that uses the LOOKUPVALUE function to retrieve a customer's region from another table. The report performance is slow. What should you do to improve performance?

A.Disable the 'Reduce queries sent to the source' option.
B.Enable incremental refresh on the fact table.
C.Remove the LOOKUPVALUE column and instead create a relationship between the tables.
D.Increase the amount of RAM on the Power BI service capacity.
AnswerC

The LOOKUPVALUE function performs an implicit filtering scan over the target table for every row in the fact table, often resulting in an O(n×m) operation where n is the fact row count and m is the lookup table size, causing severe performance degradation in large models. Creating a relationship between the tables lets the VertiPaq engine exploit its in-memory columnstore dictionaries and B-tree-like indexes, enabling hash-based or bitmap-based lookup propagation that is dramatically faster and more memory-efficient. This is the recommended alternative because a relationship is declarative metadata that the query engine can optimize, whereas LOOKUPVALUE is a procedural row-by-row DAX function that prevents such optimization.

Why this answer

The correct option is C: remove the LOOKUPVALUE calculated column and instead create a relationship between the tables. LOOKUPVALUE is a row-by-row DAX function that forces the formula engine to scan the target table for every row during processing and can also cause expensive query-time evaluations, whereas a proper relationship lets the VertiPaq engine resolve the lookup through the model's relationship graph, which is far more efficient. Since the customer dimension and the other table share a key, a relationship is the native, performant way to propagate the region attribute.

Option A is unrelated to DAX performance and concerns Power Query folding behavior, not calculated columns. Option B (incremental refresh) only reduces refresh time and data volume loaded, not the cost of a LOOKUPVALUE column during report queries. Option D (more RAM) may mask memory pressure but does not address the inefficient row-by-row lookup logic.

233
MCQhard

You are a Power BI administrator. A Power BI dataset owner reports that the dataset is not refreshing automatically, but manual refreshes work fine. The dataset uses a cloud data source (Azure SQL Database) with OAuth2 credentials. What is the most likely cause?

A.Row-level security (RLS) is misconfigured.
B.The on-premises data gateway is offline.
C.The dataset exceeds the refresh limit for the assigned capacity.
D.The OAuth2 token used for the data source credentials has expired.
AnswerD

OAuth2 tokens are issued with a limited lifetime (usually 1 hour to 90 days depending on the provider) and are used for authentication when connecting to cloud data sources. When a token expires, the Power BI service cannot refresh the dataset automatically because it lacks the ability to prompt for reauthentication. A manual refresh opens a dialog that lets the dataset owner re-authenticate, renewing the token and successfully completing the refresh.

Why this answer

The correct answer is D: the OAuth2 token used for the data source credentials has expired. In Power BI, scheduled refreshes run unattended using the stored credentials; if the OAuth2 access/refresh token for the Azure SQL Database source is no longer valid, the scheduled refresh fails while an interactive manual refresh can still succeed because the user re-authenticates on the spot. Options A, B, and C do not fit: RLS misconfiguration would typically cause permission or data-visibility errors rather than a refresh failure, an on-premises data gateway is irrelevant for a cloud data source like Azure SQL Database, and exceeding the capacity refresh limit would affect both scheduled and manual refreshes, not just automatic ones.

234
Multi-Selectmedium

You are a Power BI administrator. Your organization has a Power BI Premium capacity. You need to configure a new workspace to use a specific capacity and ensure that only users with the 'Contributor' role can publish content to the workspace, while users with the 'Viewer' role can only view reports. Which two actions should you perform? (Choose two.)

Select 2 answers
A.Enable the 'Allow contributors to update the app' setting in the workspace settings.
B.Assign the workspace to the Premium capacity in the workspace settings.
C.Add users to the workspace and assign them the appropriate roles (Contributor, Viewer).
D.Configure row-level security (RLS) on the dataset to restrict data access based on user roles.
E.Create a sensitivity label and apply it to the workspace.
AnswersB, C

Assigning the workspace to a Premium capacity ensures that the workspace uses the dedicated resources of that capacity, which is required for features like larger datasets and increased refresh rates. This action is necessary to meet the requirement of using a specific capacity. It is done through the workspace settings in the Power BI service, where you can select the capacity from a dropdown list.

Why this answer

To configure the workspace to use a specific Premium capacity, assign the workspace to that capacity in the workspace settings. To control publishing and viewing permissions, add users to the workspace with the Contributor or Viewer roles as appropriate. These two actions meet the requirements.

Exam trap

The trap here is confusing workspace roles with dataset-level security like RLS, but RLS does not control publishing permissions.

235
MCQeasy

A data model contains a Date table and a Sales table. You need to create a measure that calculates total sales for the previous year. Which DAX function should you use?

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

SAMEPERIODLASTYEAR is the correct time intelligence function for year-over-year comparisons. It takes the current filter selection — whether it is a single date, a month, a quarter, or a custom range — and returns the exact corresponding date range from the previous calendar year, preserving the number of days and the shape of the selection. This precision makes it the standard DAX approach for computing previous-year totals, especially when you need the prior year to match the current period on a day-for-day or period-for-period basis.

Why this answer

SAMEPERIODLASTYEAR is the correct DAX function for calculating total sales for the previous year because it returns a set of dates shifted back by exactly one year while preserving the current filter context (e.g., month, quarter). This function is specifically designed for year-over-year comparisons and works seamlessly with a Date table marked as a date table in the model. Option B: DATEADD can also shift dates by one year but requires specifying the interval and number of intervals, making it less direct for this specific requirement.

Option C: PARALLELPERIOD returns the entire parallel period (e.g., full year) regardless of current granularity, which does not preserve the same relative period. Option D: PREVIOUSYEAR returns the entire previous year, not the same period shifted back, so it does not maintain month-over-month or quarter-over-quarter comparisons.

Exam trap

The trap here is that candidates often confuse SAMEPERIODLASTYEAR with PREVIOUSYEAR, not realizing that PREVIOUSYEAR returns the entire previous year regardless of the current filter granularity, while SAMEPERIODLASTYEAR shifts the exact same period (e.g., month, quarter) back by one year.

How to eliminate wrong answers

Option B (DATEADD) is wrong because it shifts dates by a specified interval (e.g., -1 year) but requires an explicit interval parameter and can produce unexpected results if the Date table is not continuous or if the interval does not align with the current filter context. Option C (PARALLELPERIOD) is wrong because it returns a parallel period of a fixed length (e.g., full year) but does not respect the current granularity of the filter context (e.g., it returns the entire previous year even if the current filter is a single month). Option D (PREVIOUSYEAR) is wrong because it returns all dates in the previous year based on the current filter context, but it does not shift the entire period; it simply returns the set of dates for the previous year, which can cause incorrect totals when used with non-standard calendars or partial year filters.

236
MCQmedium

You are reviewing a Power Query that imports data from SQL Server. The exhibit shows the M code. The SQL query filters records after a date, then Power Query filters rows with OrderQty > 10, and then groups by ProductID. What is a potential performance issue with this approach?

A.The query will fail because the SQL query uses '>' with a string.
B.The SQL query should use a parameter for the date instead of a hardcoded value.
C.The filter on OrderQty > 10 should be included in the SQL query to reduce the amount of data transferred.
D.The grouping should be done in SQL to reduce data volume.
AnswerC

Pushing the OrderQty > 10 predicate into the SQL query lets SQL Server filter rows before transfer, so Power Query receives fewer records. This reduces data shuffled across the connection, satisfying the performance constraint. Filtering after import forces the full dataset through the gateway, wasting bandwidth and memory.

Why this answer

Pushing the `OrderQty > 10` filter into the SQL query reduces the amount of data transferred from SQL Server to Power Query. In Power Query, data is loaded into memory before transformations; filtering earlier in the source query minimizes memory usage and network latency, which is a key performance optimization in Power BI data loading.

Exam trap

The trap here is that candidates focus on the date filter or grouping as the main performance issue, but the most impactful optimization is moving the row-level filter (`OrderQty > 10`) into the SQL query to reduce data transfer, which is a classic 'query folding' concept in Power Query.

How to eliminate wrong answers

Option A is wrong because the SQL query uses `'>'` with a string, but SQL Server implicitly converts the string to a date for comparison, so the query will not fail. Option B is wrong while using a parameter is a best practice for maintainability, it does not directly address the performance issue of data volume; the question asks about a potential performance issue, not code quality. Option D is wrong because grouping in SQL could reduce data volume, but the primary performance bottleneck here is the row filter on `OrderQty > 10` being applied after data transfer; grouping after filtering is less impactful than filtering earlier.

237
MCQhard

You are building a Power BI report that uses a composite model with a DirectQuery source and an imported local table. You want to create a measure that aggregates data from both sources. What must you ensure?

A.The relationships between tables must be defined correctly.
B.You cannot create measures that use columns from both sources.
C.Both tables must be set to the same storage mode (DirectQuery or Import).
D.The local table must be converted to DirectQuery.
AnswerA

In a composite model, relationships between tables from different storage modes are the only way Power BI can join and aggregate data across sources at query time. A correctly defined relationship—with proper cardinality and filter direction—ensures that cross-source measures, such as a SUM over an imported table filtered by a DirectQuery table, produce accurate results. Without those relationships, the engine cannot determine how to combine rows, causing errors, blank values, or meaningless totals.

Why this answer

The correct answer is A: relationships between tables must be defined correctly. In a Power BI composite model, a measure can aggregate data from both a DirectQuery source and an imported local table only when the tables are related through properly defined relationships, which allows the DAX engine to propagate filters across storage-mode boundaries. Without a valid relationship (correct cardinality and cross-filter direction), the measure cannot combine the two sources.

Option B is false because composite models explicitly support measures spanning Import and DirectQuery tables. Option C is wrong because composite models are designed to mix storage modes, not force them to match. Option D is unnecessary and would defeat the purpose of using an imported local table.

238
MCQmedium

A data analyst is designing a star schema in Power BI. The model includes a table named 'Orders' with columns: OrderID, CustomerID, OrderDate, ProductID, Quantity, and SalesAmount. Which column should NOT be included in the fact table to maintain a proper star schema?

A.Quantity
B.SalesAmount
C.CustomerID
D.OrderID
AnswerD

OrderID is a natural business key that identifies an order, not a numeric measure or a surrogate foreign key. In a star schema, natural keys and descriptive attributes should live in the appropriate dimension table, such as an Order dimension, so that the fact table contains only relationship keys and measures. Including OrderID directly in the fact table violates star schema normalization and reduces maintainability. Thus, OrderID is the item that should NOT be placed directly in the fact table.

Why this answer

In a proper star schema, fact tables should contain quantitative measures and foreign keys to dimension tables. Columns like CustomerID and ProductID serve as foreign keys linking to dimension tables, so they should remain in the fact table. OrderID is a natural key that typically belongs in an Order dimension table; the fact table should use a surrogate OrderKey instead.

Including OrderID directly would duplicate dimensional data and reduce modeling flexibility.

Exam trap

Candidates often assume that all ID columns belong in the fact table. However, natural keys (like OrderID) should reside in dimension tables; the fact table should contain a surrogate key to reference them. CustomerID, on the other hand, is a foreign key that is correctly placed in the fact table.

How to eliminate wrong answers

Option A is wrong because Quantity is a numeric, additive measure that is a classic fact column in a sales fact table, representing the number of units sold per transaction. Option B is wrong because SalesAmount is a monetary measure that is the core metric for analysis and belongs in the fact table. Option D is wrong because OrderID is the unique identifier for each transaction row and serves as the fact table's grain key, which is required for proper row-level identification and relationship creation.

239
MCQeasy

You are importing a large dataset from a CSV file using Power Query. The file contains 50 columns, but you only need 10 for your report. What is the most efficient way to reduce the amount of data loaded into the model?

A.Remove the unnecessary columns in Power Query before loading.
B.Load all columns and then hide the unnecessary ones in the report.
C.Use a SQL query to select only the needed columns if the data source supports it.
D.Create a DAX calculated table that selects only the needed columns.
AnswerA

Removing unnecessary columns in Power Query before loading is the most efficient method because it reduces the number of columns imported into the VertiPaq in-memory engine. Power Query transformations that discard columns are applied during the read/load cycle, so the CSV parser only passes the selected columns to the model, reducing memory usage, disk footprint, and refresh time. This early reduction also improves compression ratios and query performance across reports that reference the table.

Why this answer

Power Query processes data before it enters the Power BI model. Removing unnecessary columns at the query stage reduces the amount of data loaded into memory, improving performance and reducing storage. This is the most efficient approach as it minimizes the dataset size from the start, unlike post-load methods that still consume resources.

Exam trap

The trap here is that candidates often confuse 'hiding' columns with actually removing them, or incorrectly assume SQL-like filtering can be applied to flat files, leading them to choose options that still load unnecessary data into memory.

How to eliminate wrong answers

Option B is wrong because loading all 50 columns and hiding them still stores the full dataset in the model, wasting memory and slowing refresh times. Option C is wrong because the question specifies a CSV file, which does not support SQL queries; this option only applies to database sources like SQL Server. Option D is wrong because creating a DAX calculated table still loads the full dataset into the model first, then creates a subset in memory, which is less efficient than filtering at the import stage.

240
MCQmedium

You are building a star schema in Power BI. Which table design best supports filtering a sales fact table by product category?

A.Use a single table containing all sales and product attributes.
B.Merge Sales and Product tables into one by appending rows.
C.Create a separate Product dimension table with category, related to Sales by ProductID.
D.Store product category in the Sales fact table.
AnswerC

Creating a separate Product dimension table with attributes like category and linking it to the Sales fact table through a ProductID relationship is the canonical star schema design. This separates descriptive attributes from numerical measures, enabling efficient slicing, filtering, and drill-through while eliminating redundancy. The one-to-many relationship also allows DAX to propagate filter context automatically from the dimension to the fact table, which is fundamental for correct aggregation and better query performance.

Why this answer

Option C is correct because a star schema requires a dedicated Product dimension table containing descriptive attributes such as category, joined to the Sales fact table via the ProductID key in a one-to-many relationship; this lets slicers and filters on category propagate to the fact table efficiently. Option A is wrong because a single flat table is a denormalized design, not a star schema, and it increases redundancy and reduces filter performance. Option B is wrong because appending rows merges tables vertically (union), which does not create the dimension-to-fact relationship needed for filtering.

Option D is wrong because storing category directly in the fact table duplicates descriptive data and prevents clean dimension-based filtering.

241
MCQeasy

You are designing a data model that will support self-service analytics. You have a Sales table with over 100 million rows. Which of the following modeling approaches would provide the best query performance while maintaining a user-friendly experience?

A.Design a star schema with a fact table and dimension tables
B.Create a single flat table with all columns
C.Import all tables into a single table using Power Query merge
D.Use a snowflake schema with multiple levels of dimensions
AnswerA

A star schema separates the central fact table (numeric, measurable data like sales amounts and quantities) from surrounding dimension tables (descriptive attributes like products, customers, and dates). This structure lets Power BI compress columns efficiently and minimizes the number of join paths, so DAX measures filter and aggregate quickly. Because each dimension is directly linked to the fact table, the model becomes intuitive for self-service users and provides clear filter context for slicers and visuals.

Why this answer

A star schema with a fact table and dimension tables is correct because it minimizes the number of joins needed for queries, allowing the engine to scan a narrow fact table and use smaller dimension tables for filtering and grouping, which delivers the best query performance at scale (100M+ rows) while keeping the model intuitive for self-service users. The denormalized dimensions also make it easy for business users to drag and drop fields without navigating complex relationships. A single flat table (B) or a Power Query merge into one table (C) creates a very wide table with redundant data, increasing storage and scan time and hurting performance.

A snowflake schema (D) normalizes dimensions into multiple related tables, adding extra joins that slow queries and complicate the user experience.

242
MCQmedium

You are preparing data for a Power BI report. The source data contains a column 'FullName' with values like 'John Doe'. You need to split this column into 'FirstName' and 'LastName' using Power Query. The transformation should be repeatable and not dependent on the number of spaces. What is the best approach?

A.Use 'Split Column by Number of Characters' with a fixed position.
B.Use 'Split Column by Delimiter' and choose 'Right-most delimiter'.
C.Use 'Replace Values' to replace space with a comma.
D.Use 'Extract Text After Delimiter' with a space.
AnswerB

Choosing 'Split Column by Delimiter' with the 'Right-most delimiter' option is correct because it targets the final space in the name, separating the last name from all preceding text. This works reliably for variable-length strings because it does not depend on character counts or the number of spaces; even 'Mary Ann Jones' splits into 'Mary Ann' and 'Jones' as two columns. Power Query executes this by treating the last delimiter occurrence as the split point, which is exactly what is needed to isolate the surname.

Why this answer

Using 'Split Column by Delimiter' with 'Right-most delimiter' ensures that the split occurs at the last space in the FullName column, which reliably separates the first name from the last name even if there are multiple spaces (e.g., 'John Michael Doe' would yield 'John Michael' as FirstName and 'Doe' as LastName). This approach is repeatable and does not depend on a fixed number of spaces, making it robust for varying name formats.

Exam trap

The trap here is that candidates often choose 'Split Column by Delimiter' with the default 'Left-most delimiter' (which splits at the first space) or 'Extract Text After Delimiter', not realizing that names with multiple spaces require the right-most delimiter to correctly separate the last name from the rest.

How to eliminate wrong answers

Option A is wrong because 'Split Column by Number of Characters' with a fixed position assumes all names have the same character length for first and last names, which is not true for variable-length names like 'John Doe' vs. 'Alexander Hamilton'. Option C is wrong because 'Replace Values' to replace space with a comma does not split the column; it only changes the delimiter, requiring an additional split step and still not handling multiple spaces correctly. Option D is wrong because 'Extract Text After Delimiter' with a space extracts only the text after the first space, which would give 'Doe' for 'John Doe' but fail for names with middle names or multiple spaces, and it does not create both FirstName and LastName columns in one step.

243
MCQhard

You are a Power BI data analyst for a manufacturing company. You have a report with a scatter chart that plots production cost (X-axis) versus defect rate (Y-axis) for various production lines. You want to enable users to quickly identify production lines that have both high cost and high defect rate. You decide to add a reference line that divides the chart into quadrants. What should you do?

A.Use the 'Analytics' pane to add a 'Median' line on the X-axis only.
B.Add a constant line to the X-axis and a constant line to the Y-axis, setting each to the respective average values.
C.Create a calculated column that categorizes each production line into a quadrant and use it as a legend.
D.Add a trend line and set it to 'Linear' to show the relationship between cost and defect rate.
AnswerB

Scatter charts support constant lines on both the X and Y axes. By adding a constant line on each axis at the average cost and average defect rate, you create a quadrant view. Points in the upper-right quadrant represent production lines with above-average cost and above-average defect rate, exactly what you need.

Why this answer

Scatter charts in Power BI allow constant lines on both the X and Y axes. By adding a constant line on each axis at the average values, you create a quadrant view. Points in the upper-right quadrant have both high cost and high defect rate, making them easy to spot.

This is the correct approach for quadrant analysis.

Exam trap

The trap here is thinking that a trend line or a single axis line can create quadrants; quadrants require two perpendicular reference lines, one on each axis.

244
MCQmedium

You are modeling data for a retail company. The source data contains a table 'Transactions' with columns: TransactionID, StoreID, ProductID, Quantity, and SalesAmount. You need to create a star schema in Power BI. What should you do with the TransactionID column?

A.Create a separate dimension table for transactions
B.Keep TransactionID in the fact table
C.Move TransactionID to the Product dimension
D.Remove the TransactionID column to reduce model size
AnswerB

Keeping TransactionID in the fact table is correct because it acts as the natural key for each transaction fact row, preserving row-level identity without creating a separate dimension. As a degenerate dimension, it supports direct row references and enables critical operations like incremental refresh, audit trails, and error reconciliation. It also lets you uniquely identify rows when the fact table has no other unique key, even if you need to combine it with a line number at a lower grain. This approach follows Microsoft's star schema guidance and avoids unnecessary joins or duplicated data.

Why this answer

The correct option is B: keep TransactionID in the fact table. In a star schema, the fact table stores the grain-level transactional rows along with their identifiers and numeric measures, so TransactionID belongs there as the unique key for each sales transaction, alongside StoreID, ProductID, Quantity, and SalesAmount. Creating a separate transaction dimension (A) would add no analytical value and would effectively duplicate the fact grain, while moving TransactionID to the Product dimension (C) is wrong because it is not a product attribute and would break the fact-to-dimension relationship.

Removing it (D) is also incorrect because the transaction identifier is needed for traceability, drill-through, and row-level identification, even though it is not used for aggregation.

245
Multi-Selectmedium

Which TWO of the following are valid data source types in Power BI that support DirectQuery? (Select TWO.)

Select 2 answers
A.Snowflake
B.Excel workbook
C.Azure Synapse Analytics
D.SharePoint Online List
E.JSON file
AnswersA, C

Snowflake supports DirectQuery.

Why this answer

Snowflake is a cloud-based data warehouse that supports DirectQuery in Power BI, allowing queries to be sent directly to Snowflake without importing data into Power BI's in-memory engine. This is possible because Snowflake provides a SQL-based interface that Power BI can connect to via its native connector, enabling real-time querying of large datasets.

Exam trap

The trap here is that candidates often confuse file-based or list-based data sources (like Excel, JSON, or SharePoint) as being DirectQuery-capable because they can be connected to Power BI, but DirectQuery is strictly limited to relational databases and data warehouses that support live query execution.

246
MCQeasy

Refer to the exhibit. The Power BI admin settings are shown. A user reports that they cannot share a dashboard with an external partner. What is the most likely reason?

A.The 'exportDataEnabled' setting is disabled.
B.The 'publishToWebEnabled' setting is disabled.
C.The 'workspaceCreationEnabled' setting is disabled.
D.The 'externalSharingEnabled' setting is disabled.
AnswerD

The 'externalSharingEnabled' setting is the tenant-level switch that directly controls whether users can share dashboards and reports with individuals outside the organization. When disabled, the Share option for external email addresses is blocked, and any existing external shares become inaccessible. Because the question describes an inability to share with external users, this disabled setting precisely explains the behavior and is the correct answer.

Why this answer

The correct option is D, the 'externalSharingEnabled' setting is disabled. Sharing a dashboard with an external partner requires the tenant-level external sharing setting to be enabled, so if it is disabled, the user cannot share with recipients outside the organization. The other options do not fit: exportDataEnabled controls exporting data, publishToWebEnabled controls public web publishing, and workspaceCreationEnabled controls creating workspaces, none of which directly govern sharing a dashboard with an external partner.

247
Multi-Selectmedium

Which TWO of the following are best practices for designing a star schema in Power BI?

Select 2 answers
A.Dimension tables should have a primary key and descriptive columns.
B.Fact tables should contain calculated columns for business logic.
C.Fact tables should have foreign keys that relate to dimension tables.
D.Merge all tables into a single flat table for simplicity.
E.Use many-to-many relationships between fact and dimension tables.
AnswersA, C

A well-formed star schema requires each dimension table to have a primary key (surrogate or natural) that uniquely identifies every row, paired with descriptive text columns such as product category or region name. These descriptive attributes provide the context for slicing and dicing in Power BI, while the primary key ensures referential integrity from the fact table and enables efficient row reduction during query execution. Without a unique key, filter propagation from the dimension to the fact becomes ambiguous and can produce duplicate or misleading results.

Why this answer

Option A is correct because in a star schema, dimension tables serve as the lookup/reference tables, so they must have a primary key that uniquely identifies each row (e.g., ProductKey, DateKey) plus descriptive attributes such as product name, category, or color used for slicing and grouping in Power BI visuals. Option C is correct because fact tables store the measurable events (sales, quantities, amounts) and must contain foreign keys that relate back to the primary keys of the dimension tables, forming the one-to-many relationships that Power BI's VertiPaq engine and DAX rely on for efficient filtering and aggregation. Option B is not a best practice because calculated columns in fact tables consume memory and storage, and business logic is better handled via measures or in the source/ETL layer to keep the fact table lean.

Option D is wrong because flattening all tables into a single wide table defeats the star schema's purpose, causing redundancy, larger model size, and degraded performance. Option E is incorrect because many-to-many relationships between fact and dimension tables are an anti-pattern in star schema design; relationships should be one-to-many from dimension to fact to ensure correct filter propagation and predictable results.

Exam trap

The trap here is that candidates often confuse calculated columns with measures, thinking that placing business logic in fact tables is acceptable, but Power BI best practices dictate that measures (calculated at query time) should be used instead to avoid inflating the model size and degrading performance.

248
MCQeasy

You need to grant a user the ability to manage permissions, add members, and edit content in a Power BI workspace, but not delete the workspace. Which role should you assign?

A.Member
B.Admin
C.Contributor
D.Viewer
AnswerA

The Member role in a Power BI workspace grants the ability to manage permissions—adding or removing members, assigning roles, and editing content—without allowing workspace deletion. This precisely matches the requirement to manage permissions while retaining the workspace. Therefore, Member is the correct assignment.

Why this answer

The Member role is correct because in a Power BI workspace it grants the ability to add members, manage permissions, and edit and publish content, while it does not allow deleting or renaming the workspace, which matches the stated requirement. Admin would be too permissive since it can delete the workspace and manage all aspects of it. Contributor allows editing and publishing content but cannot add members or manage permissions.

Viewer only provides read access to content and cannot edit or manage anything.

249
MCQeasy

You have a Power BI dataset that includes a table 'Orders' with columns: OrderDate, ShipDate, CustomerID, and SalesAmount. You need to create a calculated column that shows the number of days between OrderDate and ShipDate. Which DAX expression should you use?

A.YEAR(Orders[OrderDate])
B.DATEDIFF(Orders[OrderDate], Orders[ShipDate], DAY)
C.ENDOFMONTH(Orders[OrderDate])
D.DATEADD(Orders[OrderDate], 1, DAY)
AnswerB

DATEDIFF computes the number of interval boundaries crossed between two dates, with the third argument specifying the unit (here DAY). It returns a whole number representing the difference between OrderDate and ShipDate in days, which is exactly the shipping duration. This function is appropriate because it directly compares the two relevant columns and is a standard date difference function.

Why this answer

The correct option is B, DATEDIFF(Orders[OrderDate], Orders[ShipDate], DAY), because the DATEDIFF function in DAX returns the count of interval boundaries crossed between two dates, and specifying DAY gives exactly the number of days between OrderDate and ShipDate for each row. This matches the requirement of a calculated column computing the shipping duration per order. Option A, YEAR(Orders[OrderDate]), only extracts the year from OrderDate and does not compare the two dates.

Option C, ENDOFMONTH(Orders[OrderDate]), returns the last date of the month for OrderDate, which is unrelated to the interval between OrderDate and ShipDate. Option D, DATEADD(Orders[OrderDate], 1, DAY), shifts OrderDate forward by one day rather than calculating the difference between the two columns.

250
MCQmedium

You are building a star schema in Power BI. The fact table contains sales transactions. Which of the following should be stored in a dimension table?

A.Product category
B.Sales amount
C.Customer ID
D.Transaction date
AnswerA

Product category is descriptive, non-additive text used for slicing sales measures, so it belongs in a dimension. Fact tables hold numeric, aggregatable transaction data such as quantity and revenue, making category the correct dimensional attribute.

Why this answer

In a star schema, dimension tables store descriptive attributes used for filtering, grouping, and labeling fact data. Product category is a descriptive attribute of the product dimension, so it belongs in a dimension table. Fact tables store numeric, additive measures and foreign keys that reference dimensions.

Exam trap

PL-300 often tests whether candidates can distinguish descriptive dimension attributes from numeric measures and foreign keys, so the trap is picking a key or measure thinking it is a dimension attribute.

How to eliminate wrong answers

Option B is wrong because sales amount is a numeric measure (a fact) that belongs in the fact table, not a dimension — measures are aggregated in fact tables. Option C is wrong because customer ID is a foreign key that links the fact table to the customer dimension; the ID itself is a key, not a descriptive dimension attribute, and it resides in the fact table as a reference. Option D is wrong because transaction date is typically stored as a foreign key to a date dimension in the fact table, not as a dimension attribute itself; the date dimension holds the descriptive calendar attributes.

251
MCQeasy

You are preparing data in Power BI Desktop. You have a table with a column 'CustomerID' that contains duplicate values. You need to create a relationship to another table that also has 'CustomerID'. However, the relationship requires unique values in at least one of the tables. What should you do?

A.Create a composite key using multiple columns.
B.Use the 'Merge Queries' feature to combine the tables into one.
C.Change the data type of 'CustomerID' to text.
D.Remove duplicate rows from the 'CustomerID' column in the dimension table.
AnswerD

Removing duplicate rows from the CustomerID column in the dimension table guarantees that each customer appears exactly once, which satisfies the uniqueness requirement for the 'one' side of a one-to-many relationship. In Power Query, you can select the CustomerID column and click 'Remove Duplicates' to keep the first occurrence and delete the rest. This creates a clean dimension that can be joined correctly to the fact table via a relationship.

Why this answer

To create a relationship in Power BI, at least one table must have unique values in the column used for the relationship. By removing duplicate rows from the 'CustomerID' column in the dimension table (which should contain unique identifiers), you ensure that the dimension table has unique values, allowing a one-to-many relationship to be established with the fact table. This is a standard data modeling practice in Power BI to enforce referential integrity.

Exam trap

The trap here is that candidates often think changing data types or merging tables will solve the uniqueness issue, but Power BI specifically requires unique values in at least one table for a relationship, and only removing duplicates directly addresses that requirement.

How to eliminate wrong answers

Option A is wrong because creating a composite key does not address the requirement of having unique values in at least one table for the relationship; it only combines multiple columns to form a unique identifier, but the underlying duplicate values in 'CustomerID' would still prevent a direct relationship on that column. Option B is wrong because merging queries combines tables into a single table, which eliminates the need for a relationship but is not the correct approach when you need to maintain separate tables and create a relationship between them; it also does not resolve the uniqueness requirement for the relationship. Option C is wrong because changing the data type of 'CustomerID' to text does not remove duplicate values; it only changes the data format, and duplicates would still exist, preventing the relationship from being created.

252
MCQmedium

You are a data analyst at an online retailer. You import a CSV file containing product reviews into Power BI Desktop. The file has a column named ReviewDate that currently loads as the Text data type, with values formatted like '2024-07-15T09:30:00Z'. You need to change this column to the Date/Time/Timezone data type, but when you select that type in Power Query, the transformation fails for many rows. You need to resolve the failure while preserving the original timestamp data. What should you do?

A.Add a custom column that uses DateTime.FromText on the original values and then delete the original column.
B.Replace the trailing 'Z' with '+00:00' in the column, then change the data type to Date/Time/Timezone.
C.Change the column to the Date data type instead, which discards the time and timezone portions and avoids the error.
D.Use the Locale option in the Change Type dialog and select English (United States) before applying the Date/Time/Timezone type.
AnswerB

Power Query's Date/Time/Timezone type expects an offset such as +00:00 rather than a Z suffix. Replacing Z with +00:00 preserves the UTC offset and allows the type conversion to succeed. This keeps the original instant intact while satisfying the parser's expected format.

Why this answer

The Date/Time/Timezone type in Power Query requires an explicit numeric offset such as +00:00, not the ISO 8601 Z shorthand. Replacing Z with +00:00 preserves the UTC instant and lets the conversion succeed. The other approaches either misinterpret the format, discard required time data, or produce a timezone-less result.

Exam trap

The trap here is assuming that any ISO 8601 timestamp string will convert directly to Date/Time/Timezone, when Power Query actually requires a numeric UTC offset rather than a trailing Z.

253
MCQeasy

You are designing a Power BI data model for a retail company. The model must include a table with product prices that change over time. Which table design should you use to support historical price analysis?

A.Create a separate table for price changes without any relationship
B.Add a price column to the product dimension and update it when price changes
C.Create a separate dimension table for price with effective date ranges and relate it to the fact table
D.Store the current price in the fact table and overwrite when price changes
AnswerC

This correctly models price as a Type 2 slowly changing dimension: a separate PriceDim table contains price, product key, and valid_from/valid_to dates, and is related to the fact table on product and date (or you use a DAX lookup to the correct row). When filtering by date or product, the model returns the exact price in effect for each transaction, preserving historical accuracy and enabling period-over-period price analysis. This design avoids data loss, supports semi-additive measures like quantity at price, and is the standard star-schema approach for time-varying product attributes.

Why this answer

Option C is correct because a slowly changing dimension (Type 2) with effective date ranges preserves each historical price version and lets the fact table relate to the price that was valid at the time of each transaction, enabling accurate historical price analysis. Option B fails because updating a single price column in the product dimension overwrites history, so past transactions would reflect the current price rather than the price at sale time. Option A is wrong because an unrelated price-change table cannot be joined to the fact table, so no historical price context can be applied.

Option D is also wrong because storing and overwriting the current price in the fact table destroys prior values and prevents any trend or historical comparison.

254
MCQmedium

You are merging two queries in Power Query. Query 'Orders' contains columns: OrderID, CustomerID, OrderDate. Query 'Customers' contains columns: CustomerID, CustomerName, Segment. You need to add the CustomerName to the Orders query. The relationship between Orders and Customers is many-to-one. Which join kind should you use?

A.Inner
B.Left Outer
C.Right Outer
D.Full Outer
AnswerB

Left Outer join (Join Kind = Left Outer) keeps every row from the first query—orders—as the left table, and appends columns from customers only when the join key (CustomerID) matches. For orders that lack a matching customer record, the added customer name column is null, but the order row remains intact. This is the correct choice because the business need is an order-centric view where all orders must appear regardless of whether customer reference data exists.

Why this answer

The goal is to retain all rows from the Orders table while adding CustomerName from the Customers table. A Left Outer join returns all rows from the first (left) table and only matching rows from the second (right) table, filling non-matches with null. Since the relationship is many-to-one, each OrderID may have a matching CustomerID, and you want to keep every order even if a customer is missing — exactly what Left Outer does.

Exam trap

The trap here is that candidates often confuse Left Outer with Inner join, thinking they must discard non-matching rows to avoid nulls, but the requirement explicitly says to add CustomerName to the Orders query, which implies preserving all orders even if a customer record is missing.

How to eliminate wrong answers

Option A is wrong because an Inner join would only return orders that have a matching customer, discarding any orders with missing or unmatched CustomerID values, which does not satisfy the requirement to add CustomerName to all orders. Option C is wrong because a Right Outer join would return all rows from the Customers table, which is not the target table; it would keep all customers even if they have no orders, and orders without a matching customer would be lost. Option D is wrong because a Full Outer join returns all rows from both tables, creating nulls on both sides for non-matches, which is unnecessary and would introduce extra rows for customers with no orders, bloating the result.

255
MCQeasy

You are a Power BI administrator. A user reports that they cannot refresh a dataset that connects to an on-premises SQL Server using a gateway. The dataset was previously refreshing successfully. You need to ensure that the dataset can refresh again. What should you do first?

A.Increase the dataset refresh timeout in the dataset settings.
B.Check the gateway cluster status and ensure the gateway is online and has the latest version.
C.Republish the dataset from Power BI Desktop.
D.Re-enter the data source credentials in the dataset settings.
AnswerB

The first step in troubleshooting a refresh failure is to verify that the gateway is operational. If the gateway is offline or outdated, it cannot connect to the on-premises data source. Checking the gateway status in the Power BI service under 'Manage gateways' will reveal if the gateway is online and if an update is available. This is a common cause of refresh failures.

Why this answer

The most likely cause of a sudden refresh failure for an on-premises data source is an issue with the gateway. Checking the gateway status is the first troubleshooting step because if the gateway is offline or outdated, the refresh will fail. Other steps like re-entering credentials or increasing timeout are secondary.

Exam trap

The trap here is jumping to credential or timeout issues without first verifying the gateway health, which is a common oversight.

256
MCQeasy

You need to prepare data from a folder containing multiple CSV files with identical structure. What is the most efficient way to load all files into a single table?

A.Import each CSV file separately and then append them
B.Use the 'From Folder' data source and then click 'Combine & Transform Data'
C.Write a Python script in Power Query to read and combine files
D.Use a dataflow to connect to the folder and apply the 'Combine Files' transformation
AnswerB

The 'From Folder' data source with 'Combine & Transform Data' is the native, dynamic solution. It prompts Power Query to generate a sample-file query, a transformation function, and a final combined output that automatically applies the same steps to every CSV in the folder. On refresh, newly added or removed files are reflected without manual intervention, and schema changes are detected and promoted automatically.

Why this answer

The 'From Folder' data source in Power Query automatically detects multiple CSV files with identical structure and provides a 'Combine & Transform Data' button that merges them into a single table in one step. This is the most efficient method as it eliminates the need for manual imports or scripting, leveraging Power Query's built-in file combination logic.

Exam trap

The trap here is that candidates may think manual appending (Option A) is simpler or that Python scripting (Option C) is a valid Power Query feature, but the exam tests knowledge of Power Query's native 'Combine Files' functionality as the most efficient and integrated method.

How to eliminate wrong answers

Option A is wrong because importing each CSV file separately and then appending them is inefficient and error-prone, requiring manual steps for each file and breaking the automated refresh capability. Option C is wrong because writing a Python script in Power Query is not natively supported; Power Query uses M language, and Python integration requires additional configuration (e.g., Python in Power BI Desktop) and is not the most efficient or standard approach for this task. Option D is wrong because using a dataflow is an overkill for a simple folder import; dataflows are designed for complex ETL processes and cloud-based transformations, not for directly loading local CSV files into a single table in Power BI Desktop.

257
Multi-Selectmedium

Which TWO of the following are valid reasons to use a calculated table instead of a calculated column in Power BI?

Select 2 answers
A.To create a summary table that is not present in the source.
B.To reduce model size by storing only aggregated data.
C.To create a date table with a continuous range of dates.
D.To create a column that depends on other columns in the same row.
AnswersA, C

Calculated tables let you use DAX table functions such as SUMMARIZE, GROUPBY, or UNION to build a genuinely new analytical table from existing model data. The result is stored as a physical table in the Data pane, so it can participate in relationships, support measures, and be referenced in reports even when the source system does not contain that exact aggregation. Because it is fully materialized at refresh time, it persists as a reusable, pre-aggregated view.

Why this answer

Option A is correct because a calculated table is created with DAX table expressions (for example, SUMMARIZE, SUMMARIZECOLUMNS, or DISTINCT) and can materialize a new summary table that does not exist in the source system, which is exactly what calculated tables are designed for. Option C is correct because a calculated table can be generated with CALENDAR or CALENDARAUTO to produce a continuous, unbroken date range, which is the standard way to build a dedicated date table for time intelligence functions like TOTALYTD or SAMEPERIODLASTYEAR. Option B is not correct because calculated tables are computed at refresh and stored in the model, so they do not inherently reduce model size by storing only aggregated data; aggregation reduction is achieved through Import mode aggregations, DirectQuery, or composite models, not by the mere choice of a calculated table.

Option D is not correct because a column that depends on other columns in the same row is precisely the definition of a calculated column, which is evaluated row by row in the table, whereas a calculated table produces a whole table and cannot serve that row-level purpose.

258
MCQeasy

You have a Power BI report that includes a pie chart. Users complain that it is difficult to compare the sizes of slices. Which visual should you recommend instead to improve comparison?

A.A treemap.
B.A donut chart.
C.A bar chart.
D.A scatter plot.
AnswerC

A bar chart maps each category's value to a length along a common scale, typically anchored to zero, which is one of the most accurate visual encodings for comparing quantitative magnitudes. The aligned positions of bar ends allow users to see differences quickly and precisely, and Power BI can augment bars with data labels, sorting, and color to emphasize the largest category. For a simple 'users' breakdown by category, a bar chart directly answers the comparison question with minimal perceptual error.

Why this answer

The correct answer is C, a bar chart, because bar charts encode values by length along a common baseline, which makes even small differences between categories easy to compare accurately, unlike the angle-based judgments required by pie slices. In Power BI, switching the pie chart to a bar chart (or clustered bar chart) directly addresses the users' difficulty in comparing sizes. A treemap (A) uses area to represent values, which is also harder to compare precisely than length.

A donut chart (B) has the same angle-comparison limitation as a pie chart, just with a hole in the middle. A scatter plot (D) shows relationships between two numeric measures rather than comparing parts of a whole, so it does not fit this scenario.

259
MCQeasy

You need to create a visual that displays the sales trend over the last 12 complete months. Which approach should you use?

A.Create a calculated column that flags last 12 months.
B.Add a slicer for the last 12 months.
C.Write a measure that calculates sales for last 12 months and use it in a visual.
D.Use a relative date filter on the date field set to 'Last 12 months'.
AnswerD

A relative date filter on the date field set to 'Last 12 months' directly applies a dynamic query-time filter that includes exactly the trailing 12 complete months (or periods) relative to the current date. This filter automatically shifts as time advances, so the visual always reflects the most recent 12 months without requiring manual updates or user interaction. It is the correct approach because it operates at the filter level, ensuring every visual using that date field is restricted to the desired window while still allowing the underlying measures to calculate correctly within that context.

Why this answer

Option D is correct because a relative date filter on the date field set to 'Last 12 months' dynamically restricts the visual to the trailing 12 complete months, automatically updating as the data refreshes. This is the intended Power BI feature for time-relative filtering and works directly on the date column without extra modeling. Option A's calculated column flag would be static and require manual maintenance, and it would not automatically roll forward.

Option B's slicer is a manual selection control, not a relative date filter, so it won't reliably show the last 12 months. Option C's measure could compute a 12-month total, but it would not by itself filter the visual to show the monthly trend across those 12 months.

260
Multi-Selectmedium

Which TWO actions can you perform using Power BI Desktop's Query Editor? (Choose two.)

Select 2 answers
A.Define row-level security (RLS) roles.
B.Merge two tables based on a common column.
C.Create a relationship between two tables.
D.Remove duplicate rows from a table.
E.Create a new measure using DAX.
AnswersB, D

The 'Merge Queries' feature in Query Editor combines rows from two tables based on a common column, supporting join kinds such as left outer, right outer, full outer, and inner. You can expand the resulting columns to bring in related fields, which is a common way to enrich one table with data from another. This operation is performed in Power Query before the data is loaded into the model.

Why this answer

In Power BI Desktop's Query Editor, you can merge two tables based on a common column using the 'Merge Queries' feature (option B) and remove duplicate rows using the 'Remove Duplicates' feature (option D). Creating a relationship between tables (option C) is not performed in Query Editor; it is done in the Model view after loading data. Defining row-level security roles (option A) and creating DAX measures (option E) are also not available in Query Editor — roles are managed in the Modeling tab or Power BI Service, and measures are created in the Report or Data view.

Exam trap

A common trap is thinking that Query Editor can create relationships, but relationship creation is a data modeling task performed in Model view. Some may confuse merging tables with creating relationships, but merging simply combines data into a new table.

261
MCQeasy

You have a dataset with a column 'FullName' containing values like 'John Doe'. You need to split this column into 'FirstName' and 'LastName' using the space delimiter. Which Power Query transformation should you use?

A.Split Column by Delimiter.
B.Merge Columns.
C.Extract Text.
D.Replace Values.
AnswerA

Split Column by Delimiter directly satisfies the requirement to separate 'FullName' into 'FirstName' and 'LastName' at the space character. Power Query's split transformation supports a space delimiter with options for leftmost, rightmost, or each occurrence, producing the two new columns in a single step.

Why this answer

The 'Split Column by Delimiter' transformation in Power Query is specifically designed to divide a single text column into multiple columns based on a specified delimiter, such as a space. In this scenario, selecting the column 'FullName' and using 'Split Column > By Delimiter' with a space delimiter will correctly separate 'John Doe' into 'FirstName' (John) and 'LastName' (Doe). This is the standard approach for parsing delimited text within Power Query.

Exam trap

The trap here is that candidates may confuse 'Extract Text' with splitting, thinking it can parse delimiters, but 'Extract Text' only extracts fixed-length or positional substrings, not delimiter-based splits.

How to eliminate wrong answers

Option B is wrong because 'Merge Columns' is used to combine multiple columns into one, not to split a single column. Option C is wrong because 'Extract Text' allows you to pull out substrings based on position or length (e.g., first N characters), but it cannot dynamically split on a delimiter like a space. Option D is wrong because 'Replace Values' is designed to substitute one text value with another, not to separate a column into multiple parts.

262
MCQmedium

Your Power BI report includes a map visual showing store locations. However, some locations are not appearing correctly because of ambiguous place names. What should you do to ensure accurate geocoding?

A.Aggregate the data by country
B.Switch to a bubble chart
C.Use latitude and longitude fields instead of location names
D.Change the map visual to a filled map
AnswerC

Using latitude and longitude fields instead of location names is the correct fix because it bypasses Bing Maps geocoding entirely. When Power BI reads numeric latitude and longitude, it plots points directly at those exact coordinates, eliminating any ambiguity from store names, cities, or countries that might be misspelled, duplicated, or non-standard. This approach ensures each store appears at its precise physical location, and it is the recommended practice whenever your data source contains coordinate data. It also avoids the overhead and potential failure of geocoding requests, making the report more reliable and faster to render.

Why this answer

Using latitude and longitude fields bypasses Bing's geocoding, ensuring accuracy. Changing the map style does not fix geocoding, using a filled map is for regions, and a bubble chart is not geographic.

263
Multi-Selecthard

Which THREE of the following are valid reasons to use a calculated column instead of a measure in Power BI?

Select 3 answers
A.The value is needed in a row-level security rule
B.The value is an aggregation (e.g., SUM) that changes with user interaction
C.The value must be used in a relationship between tables
D.The value is needed as a slicer or filter in a visual
E.The value is a time intelligence calculation that depends on the current filter context
AnswersA, C, D

RLS rules in Power BI evaluate DAX expressions that return a Boolean. These expressions are evaluated per row in the table, and they can reference columns from the table (or related tables). A calculated column materializes a value for each row, so it can be directly referenced in an RLS rule like `[Region] = "West"`. This is a valid use because RLS predicates are row-context-based and cannot use measures that depend on user filter context. So a calculated column is appropriate.

Why this answer

Option A is correct because row-level security rules in Power BI (DAX filter expressions on tables) are evaluated at the row level and can reference calculated columns, whereas measures cannot be used directly in RLS filter predicates. Option C is correct because relationships between tables require a column on the "one" or "many" side, and calculated columns are stored in the model and can serve as relationship keys, while measures cannot participate in relationships. Option D is correct because slicers and filter fields require column values to populate their item lists, and a calculated column materializes those values at row level so it can be placed on the slicer or filter well, unlike a measure.

Option B is not correct because aggregations that respond to user interaction are precisely the role of measures, which are evaluated dynamically per filter context. Option E is not correct because time intelligence calculations depending on the current filter context are dynamic and should be implemented as measures, not calculated columns, which are computed at refresh time and cannot adapt to slicer or filter changes.

264
Multi-Selecthard

Which THREE features are available in Power BI to support natural language queries?

Select 3 answers
A.Key Influencers visual
B.Suggested Questions
C.Q&A visual
D.Synonyms for tables and columns
E.Quick Measures
AnswersB, C, D

Suggested Questions are automatically generated by the Q&A engine based on the model's tables, columns, measures, and any defined synonyms, and they appear as clickable chips at the top of the Q&A visual. They are a built-in part of the Q&A user experience, designed to help users get started and to demonstrate what kinds of NLQ the model can answer. Because they are produced directly from the same metadata that powers natural-language parsing, they are a feature inherently tied to NLQ support.

Why this answer

Suggested Questions (B) is correct because Power BI automatically generates natural-language question prompts for a dataset, letting report authors add them so users can click a question and get a Q&A visual result without typing. The Q&A visual (C) is correct because it is the core natural-language feature: users type questions in plain English (or another supported language) into the Q&A box and Power BI interprets them against the semantic model to produce charts and tables. Synonyms for tables and columns (D) is correct because defining synonyms in the model (via Model view or Q&A linguistic schema) improves Q&A's understanding of user terms, mapping words like 'revenue' to a column such as 'SalesAmount'.

Key Influencers (A) is not a natural-language query feature; it is an AI visual that analyzes which factors influence a metric. Quick Measures (E) is not natural-language either; it is a dialog-driven way to generate DAX calculations from templates.

265
MCQmedium

You are building a report to analyze sales performance by region. You need to allow users to dynamically switch between viewing data as a bar chart and a line chart without modifying the report page. Which feature should you use?

A.Use bookmarks with buttons to toggle between charts.
B.Add a slicer that changes the chart type.
C.Use a custom visual with built-in toggle.
D.Create a drillthrough page for each chart type.
AnswerA

Bookmarks capture the current state of a report page, including which visual is visible. Assigning bookmarks to buttons lets users toggle between the bar chart and line chart views without editing the page, satisfying the dynamic switching requirement within a single report page.

Why this answer

The correct option is A: use bookmarks with buttons to toggle between charts. In Power BI, bookmarks capture the current state of a report page—including visual visibility and chart type—so pairing two bookmarks (one showing the bar chart, one showing the line chart) with buttons lets users switch views dynamically without editing the report page. Slicers (B) filter data and cannot change a visual's chart type, and no standard slicer offers chart-type switching.

A custom visual (C) is not required and would not provide the native toggle behavior described. Drillthrough pages (D) navigate to a filtered detail page rather than toggling the chart type in place.

266
MCQmedium

You are a data analyst for a healthcare organization. You have a Power BI report with a clustered bar chart that displays patient counts by department. The report is used by hospital administrators who need to identify which department has the highest patient count. They also want to see the exact patient count for each department without hovering. Which feature should you enable on the visual to meet this requirement?

A.Tooltips
B.Analytics pane
C.Data labels
D.Conditional formatting
AnswerC

Data labels display the exact numeric value directly on each bar, so administrators can read patient counts without hovering. This is the standard way to show precise values on a chart. Enabling data labels on the clustered bar chart provides the required information at a glance, improving usability for the intended audience.

Why this answer

Data labels are the correct feature because they display the exact numeric values directly on the visual, allowing administrators to read patient counts without hovering. This meets the need for persistent, at-a-glance information. Other options either require interaction or do not show values.

Exam trap

The trap here is confusing tooltips with data labels, as both show values but tooltips require hovering.

267
MCQhard

You are a data analyst at a multinational retail company. The company uses Microsoft Power BI to analyze sales data from multiple regions. The source data is stored in Azure SQL Database and includes tables: Sales (OrderID, ProductID, Quantity, Amount, OrderDate, StoreID), Stores (StoreID, StoreName, Region, Country), Products (ProductID, ProductName, Category, Price). The model is imported daily. You need to design a semantic model that supports the following requirements: 1) Allow users to filter by year and month using a single slicer. 2) Ensure that time intelligence functions (e.g., TOTALYTD, SAMEPERIODLASTYEAR) work correctly. 3) Minimize model size. 4) Provide a consistent date dimension for all fact tables. The Sales table has orders from 2018-01-01 to 2025-12-31. You decide to create a date table. Which of the following approaches should you take?

A.Create a date table using DAX with CALENDAR and mark it as a date table.
B.Use the Sales[OrderDate] column directly and create a calculated column for year and month.
C.Use Power BI's auto-generated date hierarchy for each date column.
D.Import a date table from the source database that includes all dates and additional attributes.
AnswerA

Creating a DAX date table with CALENDAR or CALENDARAUTO generates a contiguous, minimally sized date column that covers the model's date range. Marking it as a date table enables time intelligence functions (e.g., TOTALYTD, SAMEPERIODLASTYEAR) to work reliably against any related date column. This approach keeps the model lean because it contains only the date column and any explicitly added attributes, and it avoids the hidden auto-date tables that Power BI otherwise creates.

Why this answer

Option A is correct because creating a dedicated date table with DAX CALENDAR (e.g., CALENDAR(DATE(2018,1,1), DATE(2025,12,31))) and marking it as a date table gives a single, contiguous date dimension that supports one slicer for year/month, enables time intelligence functions like TOTALYTD and SAMEPERIODLASTYEAR, and can be kept narrow to minimize model size. Marking it as a date table ensures Power BI treats it as the official date table for the model, providing consistent filtering across fact tables. Option B is wrong because using Sales[OrderDate] directly does not create a shared date dimension and calculated year/month columns add size without proper date-table semantics.

Option C is wrong because auto-generated date hierarchies create hidden tables per date column, increasing model size and not providing one consistent date dimension. Option D is not the best fit because importing a full date table with additional attributes can add unnecessary columns and size, whereas the requirement emphasizes minimizing model size and a purpose-built DAX date table is sufficient.

268
MCQmedium

You are designing a data model in Power BI that includes a fact table called 'Sales' and dimension tables 'Customer', 'Product', and 'Date'. The 'Sales' table contains columns: 'SalesID', 'CustomerID', 'ProductID', 'DateKey', 'Quantity', and 'Amount'. You need to ensure that the model follows star schema best practices and that filters from the 'Customer' table propagate correctly to the 'Sales' table. What should you do?

A.Merge the Customer and Sales tables into a single flat table.
B.Set the cross-filter direction to Both on the relationship between Customer and Sales.
C.Create a many-to-many relationship between Customer and Sales using SalesID.
D.Create a one-to-many relationship from Customer (one side) to Sales (many side) based on CustomerID.
AnswerD

Creating a one-to-many relationship from Customer (one side) to Sales (many side) based on CustomerID is the correct star schema pattern. CustomerID is the unique primary key in the Customer dimension table, and it appears as a foreign key in the Sales fact table, allowing each customer to link to multiple sales transactions. This direction supports intuitive filter propagation from the dimension to the fact table, enabling reliable aggregations like total sales per customer while preserving the granularity of the fact table and maintaining a clean, normalized model.

Why this answer

In a star schema, the dimension table (Customer) should have a one-to-many relationship to the fact table (Sales) based on the common key (CustomerID). This ensures that filters applied to the Customer table propagate correctly to the Sales table, maintaining referential integrity and enabling efficient query performance.

Exam trap

The trap here is that candidates often think bidirectional cross-filtering (Option B) is needed for filter propagation, but in a star schema, unidirectional filtering from dimension to fact is the correct and efficient approach.

How to eliminate wrong answers

Option A is wrong because merging Customer and Sales into a single flat table violates star schema normalization, leading to data redundancy and poor performance. Option B is wrong because setting cross-filter direction to Both on the relationship between Customer and Sales is unnecessary and can cause ambiguous filter propagation and performance issues; a single-direction filter from dimension to fact is sufficient. Option C is wrong because creating a many-to-many relationship using SalesID is incorrect; SalesID is a unique identifier for each sale and should not be used as a bridge for many-to-many relationships, which would break the star schema and cause incorrect aggregations.

269
MCQeasy

You are combining data from multiple Excel files stored in SharePoint Online. Each file has the same structure but different data. You need to create a solution that automatically includes new files added to the SharePoint folder without manual intervention. What should you use?

A.Use Power Automate to copy new files to a blob storage, then import from there.
B.Use 'Merge queries' to append each new file manually.
C.Use 'Get Data from SharePoint Online Folder' and then 'Combine files' transform.
D.Use 'Get Data from SharePoint Online List' and load each file separately.
AnswerC

The SharePoint Online Folder connector retrieves metadata and binary content for all files in a document library, and the 'Combine files' transform then generates a parameterized function that uses a sample file to infer parsing logic. During each data refresh, the folder query re-enumerates the library, so any newly added Excel file is automatically detected, read, and combined with the rest using that same function. This is the intended, scalable pattern for loading multiple similarly structured Excel files from SharePoint without manual query updates.

Why this answer

The correct option is C: use 'Get Data from SharePoint Online Folder' and then the 'Combine files' transform. In Power Query, connecting to the SharePoint Online folder connector retrieves all files in that folder, and the 'Combine files' transform automatically applies the same parsing/template to every file, so newly added files with the same structure are included on refresh without manual work. Option A adds unnecessary copying to blob storage and still requires orchestration, while B is manual and defeats the automation requirement.

Option D targets a SharePoint list rather than the folder's files and loads them separately, which does not automatically combine new files.

270
MCQhard

You are analyzing a DAX query as shown in the exhibit. You need to determine the result set. The model contains tables: Date, Product, and Sales with relationships. Which statement accurately describes the output?

A.The query returns total sales per year and category for Amount > 100
B.The query returns total sales for each year, ignoring category
C.The query returns sales amounts only for products with Amount > 100
D.The query returns total sales for each category, ignoring year
AnswerA

Correct. SUMMARIZECOLUMNS groups the sales data by the Year and Category columns, and the filter condition Amount > 100 is applied to the base table before aggregation. Therefore, for every distinct Year-Category pair, the query returns the sum of the sales measure computed only from rows that satisfy Amount > 100. This exactly matches the described output of total sales per year and category under that filter.

Why this answer

The DAX query uses SUMMARIZECOLUMNS to group sales by 'Year' from the Date table and 'Category' from the Product table, then filters the Sales table to include only rows where Amount > 100. The result is a table of total sales (sum of Amount) for each combination of year and category that meets the filter condition.

Exam trap

The trap here is that candidates often misinterpret the SUMMARIZE function as returning individual rows rather than aggregated groups, or they overlook that the filter condition applies to the underlying Sales rows, not to the aggregated result.

How to eliminate wrong answers

Option B is wrong because the query includes 'Category' in the SUMMARIZE grouping columns, so it does not ignore category; it returns totals per year and category, not per year alone. Option C is wrong because the query returns total sales (sum of Amount) per group, not individual sales amounts for each product; it aggregates, not lists. Option D is wrong because the query includes 'Year' in the grouping, so it does not ignore year; it returns totals per year and category, not per category alone.

271
MCQmedium

You have a Power BI dataset that uses a live connection to an Azure Analysis Services (AAS) model. The AAS model has object-level security (OLS) that hides certain measures. Your Power BI report users need to see those measures. What should you do?

A.Use Power BI Desktop object-level security to override AAS settings.
B.Configure row-level security (RLS) in Power BI to grant access.
C.Change the dataset to import mode and then apply OLS in Power BI.
D.Modify the object-level security roles in Azure Analysis Services to include the measures.
AnswerD

Since the Power BI dataset uses a live connection, it fully relies on the Azure Analysis Services tabular model for security enforcement. To make the measures visible to users, you must edit the object-level security roles in AAS and grant those roles read permission on the measure metadata objects that are currently hidden. This ensures that the measures appear in the field list and are accessible to queries from Power BI for the assigned users.

Why this answer

The correct answer is D: Modify the object-level security roles in Azure Analysis Services to include the measures. Because the Power BI dataset uses a live connection, all security—including OLS that hides measures—is enforced by the AAS model itself, so the only way to expose those measures to report users is to edit the OLS roles in AAS to grant access to them. Power BI cannot override or bypass AAS security in a live connection, so options A and B are ineffective, and option C would require abandoning the live connection and rebuilding the model, which is unnecessary and changes the architecture.

272
MCQhard

You are a Power BI data analyst for a subscription software company. You import a table named Subscriptions from an OData feed. The table contains a column named BillingPeriod that stores values such as 'Monthly', 'Annual', and 'Quarterly'. A report author needs a numeric column that converts each value to the number of months in the billing period (1, 12, and 3 respectively) so that revenue can be normalized. You must add this column in Power Query without changing the source system. What should you do?

A.Use the Column From Examples feature, entering '1' next to 'Monthly' and letting Power BI infer the remaining mappings.
B.Add a conditional column that maps each text value to its corresponding number of months, then change the new column's data type to Whole Number.
C.Create a DAX calculated column in the semantic model that uses SWITCH to translate each billing period into months.
D.Change the data type of the BillingPeriod column to Whole Number and rely on Power Query's automatic value conversion.
AnswerB

A conditional column built on the BillingPeriod values directly maps each known string to the required integer. After setting the new column's type to Whole Number, the model receives a numeric field suitable for calculations such as dividing annual revenue by twelve. This satisfies the requirement entirely inside Power Query without altering the OData source.

Why this answer

A conditional column in Power Query explicitly maps each billing period label to its numeric month count, which is deterministic and easy to audit. Setting the new column to Whole Number makes it usable for arithmetic in the model. The other options either rely on fragile inference, fail outright on non-numeric text, or place the logic in the wrong layer.

Exam trap

The trap here is reaching for Column From Examples because it feels faster, when a small, fixed set of labels is more reliably handled by an explicit conditional column.

273
MCQeasy

Your organization uses Microsoft Defender for Cloud Apps to monitor Power BI activity. You need to receive an alert when a user exports a report with a sensitivity label of 'Highly Confidential' from Power BI service. What should you configure?

A.Set up a Microsoft 365 compliance alert for data export events.
B.Enable audit logging in Power BI and configure alerts in Microsoft Sentinel.
C.Apply a protection policy in Microsoft Purview that blocks export for 'Highly Confidential' labels.
D.Create an activity policy in Microsoft Defender for Cloud Apps.
AnswerD

Defender for Cloud Apps activity policies are purpose-built for monitoring cloud app usage and can detect Power BI export activities in near real time. You can create a policy that filters on Activity type 'Export' and a sensitivity label of 'Highly Confidential' (via Microsoft Information Protection integration), then trigger a custom alert. This provides the precise alerting for data exfiltration events that the scenario requires.

Why this answer

The correct option is D: create an activity policy in Microsoft Defender for Cloud Apps. Defender for Cloud Apps connects to Power BI via the app connector and its activity policies can trigger alerts on specific user activities, such as downloading or exporting a report, filtered by the sensitivity label 'Highly Confidential'. Option A is wrong because Microsoft 365 compliance alerts do not natively target Power BI report export events with sensitivity-label conditions.

Option B is wrong because Power BI audit logging plus Microsoft Sentinel requires custom analytics rules and does not directly provide the built-in activity-policy alerting for this scenario. Option C is wrong because a Microsoft Purview protection policy blocks export rather than generating the requested alert.

274
Multi-Selecteasy

Which THREE are types of Power Query transforms that can be used to clean data? (Choose three.)

Select 3 answers
A.Remove duplicates
B.Group rows by a column
C.Replace values
D.Merge queries
E.Change data type
AnswersA, C, E

Remove Duplicates is a row-level cleaning transform in Power Query that scans all selected columns and retains only the first occurrence of each unique combination, discarding subsequent identical rows. This directly reduces row count and eliminates redundant data that would otherwise skew aggregations, making it a genuine data-cleaning operation. Distinct from filtering or grouping, it requires no aggregation or merge logic—just deduplication based on key columns.

Why this answer

Option A (Remove duplicates) is correct because Power Query provides a dedicated 'Remove Duplicates' transform that eliminates rows with identical values across selected columns, a core data-cleaning operation. Option C (Replace values) is correct because the 'Replace Values' transform substitutes specific text or numeric values (e.g., replacing 'N/A' with null), which is a standard cleansing step. Option E (Change data type) is correct because Power Query's 'Data Type' transform converts columns to the proper types (Text, Whole Number, Date, etc.), fixing type mismatches that would otherwise break calculations or loads.

Option B (Group rows by a column) is not a cleaning transform but an aggregation/reshaping operation that summarizes data. Option D (Merge queries) is not a cleaning transform but a join operation that combines two queries, which is a data-shaping rather than cleansing activity.

Exam trap

The trap here is that candidates often confuse data preparation transforms (like merging or grouping) with data cleaning transforms, leading them to select options that are actually for data shaping or integration rather than direct data quality improvement.

275
Multi-Selecthard

Which THREE of the following are best practices for data modeling in Power BI? (Select exactly three.)

Select 3 answers
A.Use bi-directional cross-filtering relationships for all tables.
B.Store calculated logic in calculated columns rather than measures when possible.
C.Create a separate date table for time intelligence functions.
D.Hide the primary key columns in dimension tables from report view.
E.Use a star schema design with fact and dimension tables.
AnswersC, D, E

A separate date table is a best practice because DAX time intelligence functions like DATESYTD, SAMEPERIODLASTYEAR, and TOTALYTD require a continuous, contiguous date range and a table marked as a date table to work reliably. When you mark a dedicated date table, Power BI establishes the necessary relationship and ensures that time-based calculations respect the fiscal year and other custom calendars. Without it, time intelligence can return incorrect results due to missing dates or auto-generated date hierarchies.

Why this answer

Option C is correct because a dedicated, continuous date table marked as a date table is required for reliable time intelligence functions such as TOTALYTD, SAMEPERIODLASTYEAR, and DATEADD, and it avoids gaps or duplicate dates that break those calculations. Option D is correct because primary key columns in dimension tables are used only for relationship joins, so hiding them from report view keeps the field list clean and prevents report authors from accidentally dragging surrogate keys into visuals. Option E is correct because a star schema with a central fact table surrounded by dimension tables delivers optimal VertiPaq compression, simpler DAX, and faster query performance than snowflaked or flat designs.

Option A is not a best practice because bi-directional cross-filtering on all tables creates ambiguous filter paths, hurts performance, and can produce incorrect results; it should be used sparingly and only for specific many-to-many or security scenarios. Option B is not a best practice because calculated columns are computed at refresh, consume memory, and cannot respond to slicer context, whereas measures are evaluated at query time and are the preferred way to store dynamic business logic.

Exam trap

The trap here is that candidates often think bi-directional cross-filtering is a safe default (option A) or that calculated columns are always preferable for simplicity (option B), but the exam tests the understanding that these choices degrade performance and model clarity.

276
MCQhard

Refer to the exhibit. You are reviewing a Power BI activity log entry. What action should you take to ensure compliance if the user who created the report should not have access to 'Confidential' data?

A.Delete the report immediately.
B.Change the sensitivity label on the report to 'General'.
C.Investigate the user's permissions on the dataset 'SalesDataset' to verify they are authorized to access confidential data.
D.Ignore the event because the report creation is logged but not necessarily a violation.
AnswerC

Investigating the user's permissions on SalesDataset is the correct first step because the activity log shows only the outcome (a report created with a Confidential label), not the authorization chain. The analyst should check the user's effective permissions through workspace roles, dataset sharing, and row-level security, using the lineage view or the 'Manage permissions' page. Only after confirming whether the user is allowed to see the underlying data can you decide to take action, thereby adhering to the principle of least privilege and proper incident response.

Why this answer

The correct action is C: investigate the user's permissions on the dataset 'SalesDataset' to verify they are authorized to access confidential data. In a Power BI activity log, a report creation event alone does not prove a compliance breach; the actual access control is enforced through the dataset's permissions and the sensitivity label applied to the data, so you must confirm whether the user legitimately has access to 'Confidential' data before taking any remediation. Option A is wrong because deleting the report is a destructive action that does not address the underlying permission issue and could destroy legitimate work.

Option B is wrong because changing the sensitivity label to 'General' would misclassify the data and could itself create a compliance violation. Option D is wrong because simply ignoring the event fails to verify whether the user's access was authorized, which is the required compliance check.

277
Multi-Selectmedium

Which TWO of the following are best practices when designing a Power BI data model?

Select 2 answers
A.Use calculated columns instead of measures
B.Use a star schema design
C.Denormalize all tables into a single flat table
D.Use bidirectional relationships as default
E.Hide foreign key columns from report view
AnswersB, E

A star schema design organizes data into dimension and fact tables, creating a hub-and-spoke structure that simplifies relationships and enables efficient query performance. By separating descriptive attributes from numeric measures, the model becomes intuitive for business users and allows DAX to filter and aggregate correctly across one-to-many relationships. This is the recommended practice because it balances normalization with usability, reduces model complexity, and ensures that filters propagate predictably from dimensions to facts, which is essential for dynamic reporting.

Why this answer

Option B is correct because a star schema — a central fact table surrounded by dimension tables — is the recommended Power BI model design: it produces simpler DAX, better compression, and faster query performance than snowflaked or flat models. Option E is correct because foreign key columns in dimension tables are implementation details used only for relationship joins; hiding them from report view keeps the field list clean and prevents report authors from accidentally grouping or filtering by meaningless surrogate keys. Option A is wrong because measures (evaluated at query time, not stored) are generally preferred over calculated columns, which consume memory and are computed during refresh.

Option C is wrong because collapsing everything into one flat table causes massive redundancy, poor compression, and slow aggregations. Option D is wrong because bidirectional relationships can introduce ambiguity and unexpected filter propagation; they should be used sparingly and only when a specific cross-filtering requirement demands it, not as the default.

278
MCQmedium

You are the Power BI administrator for a large enterprise. The company has a Power BI Premium capacity with a single dataset that is used by multiple reports and dashboards. The dataset is refreshed daily at 3:00 AM, and the refresh typically completes within 2 hours. Recently, users have reported that the dataset is not showing the most recent data until after 6:00 AM. You investigate and find that the scheduled refresh is taking 4 hours to complete, and there are no errors in the refresh history. The dataset uses import mode and connects to an on-premises SQL Server data warehouse. The data model contains several large fact tables and multiple calculated tables and measures. What should you do to reduce the refresh time and ensure data is available by 5:00 AM?

A.Remove all calculated tables and measures and replace them with calculated columns in Power Query
B.Implement incremental refresh on the fact tables to refresh only new and changed data
C.Change the dataset storage mode to DirectQuery to avoid the import process
D.Install an additional on-premises data gateway and configure load balancing
AnswerB

Implementing incremental refresh on fact tables is the correct solution because it partitions the table by date and only processes partitions that are new or changed since the last refresh, dramatically reducing the amount of data pulled from the source and the storage engine workload. This requires an import-mode dataset with a date-time watermark column, RangeStart and RangeEnd parameters, and proper policy settings for archive periods; it directly targets the root cause of a prolonged refresh cycle by limiting the refresh scope to deltas instead of reprocessing the entire fact table history.

Why this answer

Implementing incremental refresh on the fact tables allows Power BI to refresh only new or changed data instead of the entire dataset each time. This significantly reduces the refresh window, especially for large fact tables, because only the latest partition (e.g., today's data) is processed. Since the scheduled refresh starts at 3:00 AM and must complete by 5:00 AM, incremental refresh can cut the refresh time from 4 hours to under 2 hours by avoiding reprocessing historical data.

Exam trap

The trap here is that candidates often choose Option C (DirectQuery) thinking it eliminates refresh time entirely, but they overlook that DirectQuery changes the entire query model and is not a direct fix for a scheduled import refresh that is simply taking too long due to data volume.

How to eliminate wrong answers

Option A is wrong because replacing calculated tables and measures with calculated columns in Power Query does not reduce refresh time; calculated columns are computed during data load and can actually increase memory and processing overhead, while measures are computed at query time and have no impact on refresh duration. Option C is wrong because changing the dataset storage mode to DirectQuery would bypass the import process entirely, but it would also eliminate the benefits of import mode (such as fast query performance) and would require the on-premises SQL Server to handle all query loads, potentially causing performance issues and breaking existing reports that rely on import-mode features like calculated tables. Option D is wrong because installing an additional on-premises data gateway and configuring load balancing improves gateway throughput and reliability but does not address the root cause of slow refresh—the full reload of large fact tables; the gateway is not the bottleneck here since there are no errors in refresh history and the issue is the volume of data being refreshed.

279
MCQeasy

A data analyst needs to combine two queries in Power Query: 'Sales2023' and 'Sales2024', both with identical column structures. Which operation should the analyst use to append the rows from 'Sales2024' to 'Sales2023'?

A.Append Queries
B.Merge Queries
C.Group By
D.Pivot Column
AnswerA

Append Queries is the correct tool because it stacks rows from two or more queries vertically, creating a single output table that contains every record from each input. In Power Query, this operation—equivalent to UNION ALL in SQL—is used when the inputs share a common column schema, such as merging January and February sales records. Appending does not alter existing rows or add columns; it simply lengthens the dataset.

Why this answer

The Append Queries operation in Power Query is designed to combine rows from two or more tables with identical column structures, stacking the rows of 'Sales2024' beneath those of 'Sales2023'. This is the correct method because it preserves all columns and adds data vertically, which matches the requirement to append rows.

Exam trap

The trap here is that candidates often confuse Append Queries with Merge Queries, thinking both combine data, but Merge Queries joins columns horizontally (like a SQL JOIN) while Append Queries stacks rows vertically.

How to eliminate wrong answers

Option B is wrong because Merge Queries performs a join based on matching columns (like SQL JOINs), which combines columns horizontally rather than appending rows vertically, and would require a key column to match records. Option C is wrong because Group By aggregates data by grouping rows based on a column and calculating summaries (e.g., sum, count), which does not add rows from another table. Option D is wrong because Pivot Column transforms unique values from a column into new columns, reshaping data from rows to columns, which is the opposite of appending rows.

280
MCQeasy

You are a Power BI data analyst for a logistics company. You connect to an Excel workbook stored on a SharePoint Online site. The workbook contains a table named Shipments. You need to load only the rows where the ShipmentDate is in the current year. Which Power Query transformation should you apply?

A.Add a custom column with the formula Date.Year([ShipmentDate]) = Date.Year(DateTime.LocalNow()) and then filter that column to TRUE.
B.Use the 'Filter Rows' option on the ShipmentDate column and select 'Date Filters' > 'Is After' and enter the first day of the current year.
C.Use the 'Filter Rows' option on the ShipmentDate column and select 'Date Filters' > 'In the Current Year'.
D.Use the 'Filter Rows' option on the ShipmentDate column and manually select the checkboxes for all dates in the current year.
AnswerC

The 'In the Current Year' filter is a dynamic date filter that automatically updates based on the current date. When the report refreshes, it will include only rows where ShipmentDate falls within the current calendar year, satisfying the requirement without manual intervention.

Why this answer

Power Query provides dynamic date filters such as 'In the Current Year' that automatically adjust based on the current date. Applying this filter to the ShipmentDate column ensures that only rows from the current year are loaded, and the filter remains correct as time passes without manual intervention.

Exam trap

The trap here is using a static date filter or manual selection, which does not automatically update when the year changes, leading to stale data in the report.

281
Multi-Selecteasy

Which THREE data sources can be used with Power BI Dataflows? (Choose three.)

Select 3 answers
A.Power BI dataset
B.Excel file stored on local drive
C.OData feed
D.Azure SQL Database
E.SharePoint Online list
AnswersC, D, E

OData (Open Data Protocol) is a native, cloud-friendly REST API standard supported by the OData connector in Power Query Online, so dataflows can easily browse entity sets from APIs like SAP Gateway or Microsoft Graph. Both OData v3 and v4 endpoints are valid, and the connector supports anonymous, Windows, and organizational authentication options.

Why this answer

Power BI Dataflows are built on the Power Query Online engine, so any connector available in Power Query Online can serve as a data source. Option C (OData feed) is correct because OData is a standard REST-based protocol connector supported in Power Query Online, allowing dataflows to ingest from OData v3/v4 endpoints. Option D (Azure SQL Database) is correct because Azure SQL Database is a supported cloud database connector in Power Query Online, enabling direct query or import into the dataflow's CDM storage.

Option E (SharePoint Online list) is correct because SharePoint Online lists are a native cloud connector in Power Query Online, letting dataflows pull list data via the SharePoint REST API. Option A (Power BI dataset) is not a valid dataflow source because dataflows feed into datasets, not the reverse, and Power Query Online does not expose a Power BI dataset connector. Option B (Excel file stored on local drive) is not valid because Power Query Online runs in the cloud and cannot access a local drive path; a personal gateway or uploading to OneDrive/SharePoint would be required.

Exam trap

The trap here is that candidates often confuse Power BI Dataflows with Power Query in Power BI Desktop, where local file sources like Excel are allowed, but Dataflows in the service strictly require cloud-accessible sources.

282
MCQhard

You are reviewing a Power Query M expression that transforms column types. The 'SalesAmount' column contains values like '1,234.56' (with a comma as thousands separator). After applying this transformation, what is the likely result?

A.The transformation will result in errors for rows containing commas.
B.The column will be converted to text automatically.
C.The column will be successfully converted to numbers.
D.The transformation will ignore the comma and convert the number correctly.
AnswerA

The M expression, likely using Number.From or a table column type change, requires text to match the current locale's numeric format. Since a comma is not the decimal separator in the default en-US locale, each row containing a comma causes a conversion failure that produces an Error value in the cell. Rather than being corrected or ignored, the transformation faithfully reports the parse failure as an error, which is the expected result.

Why this answer

Power Query's default type conversion for numeric columns expects a period as the decimal separator and no thousands separator. When the 'SalesAmount' column contains values like '1,234.56' with a comma as a thousands separator, attempting to convert the column directly to a number type (e.g., using 'Change Type' or 'Table.TransformColumnTypes') will cause errors for rows containing commas, as Power Query cannot parse the comma as part of a valid number. The comma is not a recognized numeric character in the default locale, so the conversion fails.

Exam trap

The trap here is that candidates assume Power Query will automatically handle locale-specific formatting (like commas as thousands separators) during type conversion, but in reality, it fails with errors unless the data is preprocessed or the correct culture is specified.

How to eliminate wrong answers

Option B is wrong because Power Query does not automatically convert the column to text; the transformation explicitly changes the column type to a number, and if it fails, it produces errors, not a text conversion. Option C is wrong because the comma acts as a non-numeric character in the default locale, preventing successful conversion to numbers without prior data cleaning (e.g., replacing commas with empty strings). Option D is wrong because Power Query does not ignore the comma; it strictly parses the value and fails when encountering an unrecognized character, unlike some other tools that might auto-detect locale settings.

283
Multi-Selectmedium

Which TWO actions can improve data refresh performance in Power BI?

Select 2 answers
A.Merge all queries into a single query.
B.Add calculated columns in Power Query instead of DAX.
C.Disable load for intermediate queries used only for reference.
D.Filter rows at the source to reduce data volume.
E.Keep all columns from the source data to avoid re-importing.
AnswersC, D

Disabling load on intermediate queries prevents their result sets from being materialised into the dataset, eliminating unnecessary storage and refresh work. Only the final query's output is loaded, so the refresh engine processes less data and completes faster, directly improving refresh performance.

Why this answer

Option C is correct because disabling load on intermediate queries that are only used for reference prevents those staging tables from being materialized into the dataset, reducing the amount of data processed and stored during refresh. Option D is correct because filtering rows at the source (for example, using query folding or a WHERE clause in the source query) reduces the volume of data transferred and loaded, which directly speeds up refresh. Option A is not correct because merging all queries into one can create unnecessary complexity and may break query folding rather than improve performance.

Option B is not correct because calculated columns in Power Query are computed during refresh and can actually slow it down compared to DAX calculated columns, which are computed at query time. Option E is not correct because keeping all source columns increases data volume and memory usage, which harms rather than improves refresh performance.

Exam trap

The trap here is that candidates may confuse 'disable load' with 'disable refresh' or think that merging queries (Option A) is always beneficial, when in fact it can reduce parallelism and hurt performance.

284
MCQmedium

A Power BI dataset is configured to use Import storage mode. The dataset includes a fact table with 100 million rows and several dimension tables. The report is slow when users interact with visuals. You need to improve query performance without changing the storage mode. Which action should you take?

A.Create aggregations on the fact table.
B.Increase the scheduled refresh frequency.
C.Reduce the number of dimension tables.
D.Enable 'Load to report' for all tables.
AnswerA

Creating aggregations on the fact table pre-summarizes data at higher grain levels (e.g., month, category), allowing the Import storage engine to serve queries from a smaller cached table set. Because Power BI's VertiPaq columnar compression and in-memory technology can scan aggregation tables far faster than the full transaction-level fact table, this directly reduces query response time. This is the correct answer because aggregations are a proven, first-class performance feature in Import mode, not merely a side effect of refresh or schema changes.

Why this answer

Creating aggregations on the fact table allows Power BI to pre-summarize data at higher granularity levels, reducing the amount of data scanned during query execution. Since the dataset uses Import mode, aggregations leverage the in-memory columnar storage to serve queries from pre-computed tables, significantly improving visual response times without altering the storage mode.

Exam trap

The trap here is that candidates often confuse data refresh frequency (Option B) with query performance, or mistakenly think reducing dimensions (Option C) is a valid optimization, when in fact aggregations are the correct technique for speeding up Import mode queries.

How to eliminate wrong answers

Option B is wrong because increasing the scheduled refresh frequency only updates the data more often; it does not improve query performance against the existing imported data. Option C is wrong because reducing the number of dimension tables would break the star schema design, potentially causing data redundancy and incorrect relationships, and it does not directly address query speed. Option D is wrong because enabling 'Load to report' for all tables simply makes them available in the Power BI model; it has no impact on query performance and may even increase memory usage.

285
MCQeasy

You are creating a Power BI report and need to visualize the relationship between two numerical variables, such as sales amount and profit. Which visual type is most appropriate?

A.Line chart
B.Stacked bar chart
C.Pie chart
D.Scatter chart
AnswerD

A scatter chart is the standard visualization for examining the relationship between two numerical variables. It places each observation as a point on an X-Y coordinate system, directly mapping the paired values, and supports the identification of correlation, clustering, outliers, and non-linear patterns. This makes it the only option among those listed that effectively reveals how one variable changes in relation to the other.

Why this answer

The correct option is D, a scatter chart, because it plots each observation as a point on a two-dimensional plane with one numerical variable on the X-axis (e.g., sales amount) and the other on the Y-axis (e.g., profit), directly revealing correlation, clusters, and outliers between the two measures. Line charts are designed to show trends of a measure over a continuous axis such as time, not the relationship between two independent numerical variables. Stacked bar charts compare categorical values and show part-to-whole composition, and pie charts display proportions of a single categorical field, so neither can express the pairwise correlation of two numeric measures.

286
Multi-Selecthard

Which THREE of the following are best practices for designing Power BI reports for mobile devices?

Select 3 answers
A.Use a single column of visuals
B.Include many small text tables
C.Place visuals side by side to maximize space
D.Use large, easy-to-tap slicers
E.Group related measures into a single visual
AnswersA, D, E

On mobile devices, portrait orientation and narrow viewports make multi-column layouts shrink individual visuals below a usable size. A single column lets each visual span the full width of the screen, preserving font size and making interactive elements tappable. It also creates a natural vertical scroll pattern, matching how users expect to browse content on a phone.

Why this answer

Option A is correct because a single column of visuals matches the vertical scrolling orientation of phones in the Power BI mobile app, so each visual fills the width and remains legible without horizontal panning. Option D is correct because large, easy-to-tap slicers respect touch-target sizing guidance, reducing mis-taps on small screens where precise pointing is difficult. Option E is correct because grouping related measures into one visual (for example, a multi-row card or a single chart with several measures) conserves scarce canvas space and reduces the number of separate visuals a user must scroll through.

Options B and C are not best practices: many small text tables are hard to read on a narrow screen and force zooming, while placing visuals side by side shrinks each one and typically requires horizontal scrolling, which the mobile layout is designed to avoid.

Exam trap

The trap here is that candidates confuse maximizing screen space (side-by-side visuals) with mobile optimization, but Microsoft's guidance explicitly prioritizes touch-friendly, single-column layouts over density.

287
MCQhard

You are troubleshooting a Power BI DirectQuery model that connects to a SQL Server database. A slicer on 'Region' is slow to respond. The region column has 50 distinct values. What is the best optimization?

A.Create an index on the Region column in the source database
B.Increase the cache size in Power BI Desktop
C.Switch the model to Import mode
D.Reduce the number of distinct values in Region
AnswerA

In DirectQuery mode, Power BI does not store a local copy of the data; every visual and slicer interaction sends a native query (usually SQL) to the source database. Creating an index on the Region column directly reduces the cost of the WHERE clause filter generated by the slicer, allowing the database engine to perform a seek rather than a full table scan. This is the most effective troubleshooting step because it optimizes the actual bottleneck—source-side predicate evaluation—without changing the semantic model or losing data granularity.

Why this answer

The correct option is A: create an index on the Region column in the source database. In a DirectQuery model, slicer interactions are translated into SQL queries sent to SQL Server, so filtering on Region benefits directly from a supporting index that lets the database seek matching rows instead of scanning the table, which is the most targeted fix for the slow slicer. Option B does not apply because Power BI Desktop caching does not govern DirectQuery query performance against the source.

Option C would improve speed but changes the model's data freshness and architecture rather than optimizing the existing DirectQuery scenario. Option D is not a valid optimization because the 50 distinct values are legitimate business data and reducing them would alter the data model's correctness.

288
MCQeasy

You have a Power BI model with a table named Sales that includes columns: OrderDate, Amount, and CustomerID. You need to create a measure that returns the total sales amount for the previous month based on the current filter context. Which DAX expression should you use?

A.CALCULATE(SUM(Sales[Amount]), PARALLELPERIOD('Date'[Date], -1, MONTH))
B.CALCULATE(SUM(Sales[Amount]), PREVIOUSMONTH('Date'[Date]))
C.CALCULATE(SUM(Sales[Amount]), DATEADD('Date'[Date], -1, MONTH))
D.CALCULATE(SUM(Sales[Amount]), NEXTMONTH('Date'[Date]))
AnswerB

PREVIOUSMONTH is the correct time-intelligence function because it returns a single-column table containing all dates from the calendar month immediately before the last date visible in the current filter context on the 'Date' table. When this table is used as a filter argument inside CALCULATE, it overrides the existing date filtering on the Sales table, so SUM(Sales[Amount]) is evaluated over exactly the prior month's dates. This is the idiomatic DAX pattern for a previous-month measure, and it avoids the shape-preserving ambiguity of PARALLELPERIOD and the forward-looking behavior of NEXTMONTH. No other period-shifting function gives as clean a one-month window as PREVIOUSMONTH in this scenario.

Why this answer

PREVIOUSMONTH returns a single month period shifted back by one month from the last date in the current filter context, which directly gives the total sales for the previous month. This measure respects the current filter context and works correctly when a proper date table is used.

Exam trap

The trap here is that candidates often confuse PREVIOUSMONTH with DATEADD or PARALLELPERIOD, not realizing that PREVIOUSMONTH is specifically designed to return a single full previous month based on the last date in context, while DATEADD shifts dates individually and PARALLELPERIOD can return multiple periods.

How to eliminate wrong answers

Option A is wrong because PARALLELPERIOD returns a set of parallel periods (e.g., entire months) but does not guarantee a single previous month; it can return multiple months if the current period spans multiple months, leading to incorrect totals. Option C is wrong because DATEADD with -1 month shifts each date by one month but does not restrict to a full previous month; it can return partial month data or overlapping periods depending on the granularity. Option D is wrong because NEXTMONTH returns the next month, not the previous month, which is the opposite of what is required.

289
MCQhard

A Power BI report contains a table visual that displays employee names and their total sales. The data model includes an Employee table with columns: EmployeeID, Name, Department, and HireDate. The Sales table has columns: SaleID, EmployeeID, Amount, and SaleDate. The relationship between Employee and Sales is one-to-many. The user wants to see only employees who have made at least one sale. However, the table shows all employees, including those with no sales (blank Amount). What is the most likely reason?

A.The EmployeeID column in the Employee table is hidden.
B.The relationship is many-to-one, not one-to-many.
C.The relationship direction is set to Single from Employee to Sales.
D.There is no visual-level filter to exclude blank values.
AnswerD

To show only employees who have at least one sales record, a visual-level filter must be applied on the Amount field to exclude blank values (e.g., 'Amount is not blank' or 'Amount > 0'). Without such a filter, the table visual displays every row from the Employee dimension, even those without any related Sales rows, because Power BI's default behavior is to show all dimension rows unless a filter explicitly removes them. A visual-level filter on a measure or column from the fact table is the standard technique to restrict the visual to only employees with sales.

Why this answer

The table visual is showing all employees due to the absence of a visual-level filter to exclude blank or zero sales amounts. In Power BI, a one-to-many relationship between Employee and Sales means that employees without sales will still appear in the visual unless explicitly filtered out, as the relationship does not automatically suppress rows from the 'one' side when there are no matching rows on the 'many' side.

Exam trap

The trap here is that candidates assume a one-to-many relationship will automatically hide employees without related sales, but Power BI does not apply implicit row-level security or auto-filtering for missing related records; you must explicitly filter out blank values.

How to eliminate wrong answers

Option A is wrong because hiding the EmployeeID column does not affect the visibility of employees in the table; it only prevents that column from being displayed. Option B is wrong because the relationship is correctly described as one-to-many (one employee can have many sales), and changing it to many-to-one would be incorrect for this data model. Option C is wrong because setting the relationship direction to Single from Employee to Sales is the default and correct direction for a one-to-many relationship; it does not cause all employees to appear regardless of sales.

290
MCQhard

You are a Power BI administrator. Your organization uses Microsoft Purview sensitivity labels integrated with Power BI. A report author applies a sensitivity label named 'Confidential' to a Power BI dataset. Later, the author exports a Power BI report that uses this dataset to a PDF file. You need to ensure that the exported PDF file retains the same sensitivity label and protection settings as the dataset. What should you do?

A.Configure the dataset to use row-level security (RLS) so that only authorized users can export the report.
B.Enable the tenant setting 'Apply sensitivity labels to exported data' in the Power BI admin portal.
C.Instruct the author to manually apply the same sensitivity label to the PDF file after exporting.
D.Publish the report to a Power BI app and require users to access it through the app.
AnswerB

This tenant setting ensures that when data is exported from Power BI to supported formats like PDF, the sensitivity label from the dataset is automatically applied to the exported file. This maintains the protection and compliance requirements. It is the correct configuration to enforce label inheritance for exports, as long as the label is applied to the dataset and the export format supports labeling.

Why this answer

Enabling the tenant setting 'Apply sensitivity labels to exported data' ensures that exported files, such as PDFs, inherit the sensitivity label from the dataset. This maintains protection and compliance. The other options do not achieve automatic label inheritance for exports.

Exam trap

The trap here is assuming that sensitivity labels are automatically applied to all exports without any tenant configuration, but the setting must be enabled.

291
Multi-Selecthard

Which THREE factors should you consider when designing a Power BI data model for a star schema? (Select three.)

Select 3 answers
A.Use many-to-many relationships between dimensions
B.Fact tables should contain numeric measures and foreign keys
C.Dimension tables should be normalized to reduce redundancy
D.Dimension tables should contain descriptive attributes
E.Relationships should be one-to-many from dimension to fact
AnswersB, D, E

Fact tables should contain numeric, additive measures—such as sales amount, quantity, or margin—and foreign keys that reference dimension tables. This structure is fundamental to star schema design because it enables efficient aggregation and lets facts be filtered by dimension attributes. Without numeric measures or proper foreign keys, the fact table cannot support reliable calculations or relational integrity.

Why this answer

Option B is correct because in a star schema the fact table stores the quantitative, numeric measures (such as Sales Amount or Quantity) along with foreign keys that reference the dimension tables, forming the core of the model. Option D is correct because dimension tables hold the descriptive, textual attributes (such as Product Name, Category, or Customer City) used for slicing and filtering the measures. Option E is correct because star schema relationships are one-to-many, with the dimension on the "one" side and the fact table on the "many" side, filtered in a single direction from dimension to fact.

Option A is incorrect because many-to-many relationships between dimensions are not a star schema design factor; they add ambiguity and are typically avoided or resolved via bridge tables. Option C is incorrect because dimension tables in a star schema are intentionally denormalized (flattened) to reduce the number of joins and improve query performance, not normalized to reduce redundancy.

Exam trap

Microsoft often tests the misconception that normalization (Option C) is beneficial for star schemas, when in fact denormalization is preferred to avoid performance penalties from extra join hops in Power BI's query engine.

292
MCQmedium

You are connecting to a SQL Server database using Import mode. The source table contains a column 'SalesAmount' with a few null values. You need to replace nulls with 0 before loading. What is the most efficient step to achieve this in Power Query Editor?

A.Use 'Replace Values' to replace null with 0
B.Use 'Replace Errors' with value 0
C.Use 'Fill Down' to propagate previous values
D.Add a custom column with an if statement
AnswerA

Replace Values is the correct, direct transformation because it performs an in-place, column-wise substitution of nulls with 0 in a single Power Query step. It targets the actual null placeholder (not an error) and is applied to all selected columns simultaneously, making it the most efficient and unambiguous method for this exact requirement.

Why this answer

'Replace Values' in Power Query Editor is the most efficient way to replace null values in a column with 0. It directly transforms the column in a single step without requiring additional logic or table scans, and it generates a clean M code step (Table.ReplaceValue) that operates natively on the column's nulls.

Exam trap

The trap here is that candidates often confuse 'Replace Values' with 'Replace Errors' or think nulls are errors, leading them to choose Option B, but nulls are a distinct data type (absence of value) and require a dedicated null-replacement operation.

How to eliminate wrong answers

Option B is wrong because 'Replace Errors' is designed to replace error values (e.g., #ERROR) in cells, not null values; nulls are not errors and will not be affected by this transformation. Option C is wrong because 'Fill Down' propagates the last non-null value from above, which would incorrectly replace nulls with arbitrary previous values rather than a fixed 0, and it assumes a sequential order that may not be meaningful. Option D is wrong because adding a custom column with an if statement (e.g., if [SalesAmount] = null then 0 else [SalesAmount]) creates a new column and leaves the original column unchanged, requiring an extra step to remove or replace the original column, making it less efficient than a direct replacement.

293
Multi-Selectmedium

Which THREE of the following are best practices for designing Power BI reports for accessibility? (Select three.)

Select 3 answers
A.Use 3D effects to make visuals more engaging.
B.Ensure tab order is logical for keyboard navigation.
C.Use high color contrast between text and background.
D.Use as many colors as possible to differentiate data.
E.Provide alt text for all visual elements.
AnswersB, C, E

Ensuring a logical tab order is a core accessibility best practice for keyboard-only and screen reader users. In Power BI, you can define tab order in the Selection pane to match the natural reading flow of the report, so keyboard users can navigate from title to slicers to visuals in a meaningful sequence. This prevents unpredictable jumps and makes the report usable for people with motor impairments who rely on keyboard navigation.

Why this answer

Option B is correct because a logical tab order lets keyboard and screen-reader users move through report elements in a meaningful sequence, which is a core accessibility requirement in Power BI. Option C is correct because high color contrast between text and background ensures content remains legible for users with low vision or color-vision deficiencies, aligning with WCAG contrast guidance. Option E is correct because alt text gives screen readers a textual description of visuals, charts, and images so non-visual users can understand the data being presented.

Option A is not appropriate because 3D effects reduce clarity and can distort data perception rather than improve accessibility. Option D is not appropriate because using as many colors as possible harms differentiation for color-blind users and creates visual clutter; accessible designs use a limited, distinguishable palette.

294
MCQeasy

You create a Power BI report that uses a live connection to an Azure Analysis Services (AAS) model. You want to enforce row-level security defined in the AAS model. What should you do?

A.Use object-level security (OLS) instead.
B.No additional configuration needed; RLS from AAS is automatically applied.
C.Use Power BI service to create RLS roles on the dataset.
D.Define the same RLS roles in Power BI Desktop and publish.
AnswerB

When a Power BI report uses a live connection to Azure Analysis Services (AAS) or SQL Server Analysis Services (SSAS), row-level security defined in the source tabular model is enforced directly by the source. The live connection passes the authenticated user's identity to the server, which then evaluates the RLS roles and filters rows before returning data to Power BI. There is no need for additional configuration in Power BI; the source model is the single authority for data security, ensuring consistent and secure row filtering across all reports that connect live.

Why this answer

Option B is correct because when a Power BI report uses a live connection to an Azure Analysis Services (AAS) model, the report does not contain its own dataset or RLS definitions; instead, it queries the AAS model directly, so the row-level security roles and memberships defined in the AAS model are automatically enforced for the connecting user. This is the standard behavior for live connections to Analysis Services, where security is managed at the source model rather than in Power BI. Option A is wrong because object-level security (OLS) restricts columns/tables, not rows, and is not a substitute for RLS.

Option C is wrong because you cannot create RLS roles on the dataset in the Power BI service when the report uses a live connection, since there is no imported dataset in Power BI to configure. Option D is wrong because defining RLS roles in Power BI Desktop and publishing applies only to imported or DirectQuery datasets hosted in Power BI, not to live-connected AAS models.

295
MCQhard

You are a Power BI analyst for a financial services company. You have a semantic model that contains a 'Transactions' fact table with millions of rows, and a 'Calendar' date dimension table. You need to create a report page that shows the year-to-date (YTD) total transaction amount compared to the same period last year (SPLY). The report must allow users to select a year from a slicer, and the YTD calculation should always be based on the maximum date in the data for the selected year (i.e., show YTD as of the latest available date). You have created the following measures: - Total Amount = SUM(Transactions[Amount]) - YTD Amount = TOTALYTD([Total Amount], 'Calendar'[Date]) - SPLY YTD = CALCULATE([YTD Amount], SAMEPERIODLASTYEAR('Calendar'[Date])) When users select a year from the slicer, the YTD Amount does not correctly show the YTD as of the last date in the selected year; instead, it shows the YTD for each individual date in the context. What is the most likely issue?

A.The relationship between Transactions and Calendar is not active.
B.The slicer is not configured to filter the Calendar table.
C.The YTD measure should be wrapped in a CALCULATE that filters to the last date in the selected period.
D.The TOTALYTD function is not appropriate; you should use DATESYTD instead.
AnswerC

TOTALYTD computes a running total across all dates in the current filter context, so when a date slicer is active the measure still accumulates from year start to every date shown, yielding multiple values rather than a single summary. Wrapping it in CALCULATE with LASTDATE('Calendar'[Date]) restricts the filter context to the maximum date in the selected range, forcing the YTD total to evaluate as of that single point. This produces the desired scalar value for a card or summary visual.

Why this answer

The correct option is C: the YTD measure must be wrapped in a CALCULATE that filters the Calendar to the last date in the selected period, because TOTALYTD evaluates at whatever date granularity is in the current filter context, so on a visual by date it returns a running YTD per day rather than a single YTD-as-of-latest-date value. To force the measure to always show YTD as of the maximum date for the selected year, you need something like CALCULATE([YTD Amount], LASTDATE('Calendar'[Date])) (or FILTER to the max date), which overrides the row-level date context. Option A is wrong because an inactive relationship would break all time intelligence, not just the YTD granularity, and the scenario implies the Calendar relationship works.

Option B is wrong because slicer-to-Calendar filtering is not the cause; the slicer already filters the year, and the issue is date-level context within the visual. Option D is wrong because DATESYTD is the underlying time-intelligence function TOTALYTD uses and would not by itself change the per-date evaluation behavior.

296
MCQmedium

You need to combine two tables from different sources: 'Orders' from SQL Server and 'Returns' from an Excel file. Both tables have a column named 'OrderID'. You want to include all orders and only matching returns. Which join type should you use in Power Query?

A.Inner Join
B.Right Outer Join
C.Full Outer Join
D.Left Outer Join
AnswerD

A Left Outer Join returns every row from Orders plus matching Returns rows, with nulls where no return exists. This satisfies the constraint of including all orders while attaching only matching returns, since OrderID is the shared key across the SQL Server and Excel sources.

Why this answer

In Power Query, a Left Outer Join returns all rows from the first (left) table ('Orders') and only the matching rows from the second (right) table ('Returns'), based on the 'OrderID' column. This matches the requirement to include all orders and only matching returns, ensuring no order is dropped even if it has no corresponding return.

Exam trap

The trap here is that candidates often confuse Left Outer Join with Right Outer Join, mistakenly thinking they need to include all returns instead of all orders, or they default to Inner Join without considering the requirement to preserve unmatched rows from the left table.

How to eliminate wrong answers

Option A is wrong because an Inner Join returns only rows where there is a match in both tables, which would exclude orders without returns. Option B is wrong because a Right Outer Join returns all rows from the right table ('Returns') and only matching rows from the left table ('Orders'), which would include all returns but not all orders. Option C is wrong because a Full Outer Join returns all rows from both tables, including non-matching rows from both sides, which would include returns without orders and is not the requirement.

297
MCQhard

You are a Power BI administrator for a large enterprise. You have a Power BI semantic model that uses a single large fact table named Sales (100 million rows) and several dimension tables. The model is used by multiple departments, each with different row-level security (RLS) rules based on the SalesRegion column. You have implemented RLS using static roles. However, you notice that when users from different departments view the same report page, the query performance varies significantly. You suspect that the RLS filters are causing the performance difference. You need to investigate and optimize the RLS performance. What should you do first?

A.Increase the data model's memory limit in Premium capacity.
B.Use Power BI Performance Analyzer to capture query performance for each user role and analyze the generated DAX queries in DAX Studio.
C.Convert all RLS roles to use dynamic RLS with USERPRINCIPALNAME.
D.Remove all RLS roles and implement security at the report level using bookmarks.
AnswerB

Power BI Performance Analyzer captures per-visual query durations and the exact DAX produced, which you can then paste into DAX Studio for deep profiling. Running the same report as each RLS role (or using DAX Studio's 'Trace as Role'/'User' feature) lets you compare query plans and see how RLS filters are injected, exposing whether they cause excessive storage-engine scans or formula-engine bottlenecks. This combination is the standard way to pinpoint the exact query path responsible for role-specific slowness.

Why this answer

Performance Analyzer in Power BI captures the DAX queries generated for each user role and their durations, and exporting to DAX Studio allows deep analysis of query plans and RLS filter impact. This is the correct first step to diagnose why RLS causes performance variance across roles before making changes.

Exam trap

PL-300 often tests the correct diagnostic sequence — measure first with Performance Analyzer and DAX Studio — rather than jumping to model changes like memory increases or RLS type conversion.

How to eliminate wrong answers

Option A is wrong because increasing memory limits does not address RLS filter inefficiency and may not be the bottleneck. Option C is wrong because converting to dynamic RLS does not inherently improve performance and may add complexity; the issue is diagnosis, not RLS type. Option D is wrong because removing RLS and using bookmarks is a security anti-pattern and does not address performance.

298
MCQhard

A Power BI administrator needs to allow an external partner organization to access a specific report without requiring them to have Power BI Pro licenses. The report is stored in a workspace assigned to a Premium capacity. What is the correct configuration?

A.Add the external users as members of the workspace and assign them a Viewer role
B.Publish the report to the web and share the public link
C.Invite the external users as guest users in Microsoft Entra ID, add them to the workspace with Viewer role, and share the report or app
D.Embed the report in a secure portal using the 'embed for your organization' option
AnswerC

This is the correct approach because you first invite the external partner as a B2B guest user in Microsoft Entra ID, which creates a secure identity in your tenant for them. After they accept the invitation, you can add them to the workspace and assign the Viewer role, restricting them to read-only access. Finally, you share the report or app directly with them, and because the workspace resides in Premium capacity, the guest users can view it without needing their own Power BI Pro licenses. This method ensures authenticated, authorized access while maintaining full security and auditability.

Why this answer

Option C is correct because it uses Microsoft Entra B2B guest invitations so external partners authenticate with their own credentials, and then grants them Viewer access to the workspace/app; with the workspace on Premium capacity, guests can consume the content without needing Power BI Pro licenses. Adding them as workspace members with Viewer role alone (A) does not establish the required external identity in the tenant. Publishing to the web (B) creates an anonymous public link, which is insecure and not appropriate for a specific partner. 'Embed for your organization' (D) is for internal users with Power BI accounts and does not provide the licensing-free external sharing scenario.

299
Multi-Selectmedium

Which TWO actions can improve the performance of a Power BI report that uses DirectQuery? (Select two.)

Select 2 answers
A.Set up aggregations in the data source
B.Use calculated columns instead of measures
C.Add more slicers to allow users to filter data
D.Reduce the number of visuals on the page
E.Increase the cache size in the Power BI service
AnswersA, D

Pre-summarizing data at the source, such as creating group-by views or rollup tables in the underlying database, minimizes the query volume and scan overhead that DirectQuery would otherwise perform on every visual interaction. This allows the database engine to return already aggregated rows, drastically reducing the network payload and CPU usage, especially for large fact tables. While Power BI's own aggregate tables can also help, this option specifically addresses the data-source side of the optimization.

Why this answer

Option A is correct because with DirectQuery, every visual interaction translates into queries sent to the underlying source, so defining user-defined aggregations (or aggregation tables) in the data source lets Power BI satisfy many queries from pre-aggregated summary tables instead of scanning detail rows, dramatically reducing query cost and latency. Option D is correct because each visual on a DirectQuery report page typically issues its own query (or queries) to the source, so reducing the number of visuals lowers the number of concurrent queries and the volume of data returned, improving render time and easing source load. Option B is not appropriate because calculated columns are computed and stored in the model at refresh time and, in DirectQuery, they are either unsupported for certain expressions or force row-by-row evaluation that cannot be pushed down, so they do not improve query performance.

Option C is wrong because adding slicers increases the number of queries and filter combinations sent to the source, which adds latency rather than reducing it. Option E is wrong because the Power BI service cache applies to imported/refreshed datasets and cached tiles, not to DirectQuery queries that must hit the source live, so increasing cache size does not speed up DirectQuery reports.

300
MCQhard

You are modeling data for a subscription business in Power BI Desktop. The Subscriptions table has StartDate and EndDate columns, and the Dates table is marked as the official date table. Analysts need a measure that counts subscriptions that were active on any given day selected in a slicer from Dates, and the relationship between Subscriptions and Dates must remain inactive to avoid ambiguity. Which approach should you use?

A.Change the relationship between Subscriptions and Dates to bidirectional cross-filtering and count the Subscriptions rows.
B.Create a measure that uses FILTER over the Subscriptions table comparing StartDate and EndDate to the selected date range, evaluated inside CALCULATE.
C.Create a measure that uses CALCULATE with USERELATIONSHIP to activate the relationship between Subscriptions and Dates inside the measure.
D.Create a calculated column on Subscriptions that flags active rows, then use COUNTROWS on the filtered Subscriptions table in the measure.
AnswerB

Iterating the Subscriptions table with FILTER and comparing each row's StartDate and EndDate to the date selected in Dates expresses the overlap condition directly, without relying on any active relationship. This is the standard pattern for interval or 'active on date' logic and keeps the physical relationship inactive, avoiding ambiguity.

Why this answer

Counting subscriptions active on a selected date requires an interval test across two date columns, which no single relationship can express. Iterating the fact table with FILTER and comparing both StartDate and EndDate to the slicer context captures the overlap precisely. USERELATIONSHIP handles only one relationship, calculated columns cannot react to slicer selections, and cross-filter direction does not perform interval logic.

Exam trap

The trap here is reaching for USERELATIONSHIP to solve an interval problem when only one relationship can be activated at a time and the scenario needs two date comparisons.

Page 3

Page 4 of 7

Page 5

All pages