Courseiva

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

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

Page 6

Page 7 of 7

451
MCQeasy

You are importing data from a folder containing multiple CSV files with the same structure. You want to combine all files into a single table, but only include files that have been modified in the last 7 days. What Power Query transformation should you use?

A.Use 'Sample File' and manually filter
B.Filter the folder contents by 'Date Modified' before combining
C.Use 'Merge Queries' with the folder
D.Combine files using 'Combine & Load', then filter by date modified
AnswerB

Filtering the folder contents by 'Date Modified' before combining is correct because the folder query in Power Query contains metadata (including 'Date Modified') for each file before any binary content is read. By filtering this file-list table, you prune the set of files that the 'Combine Files' transformation will process, so only recent files are expanded and loaded. This is an efficient streaming-like approach that minimizes data extraction and refresh time.

Why this answer

Option B is correct because Power Query's Folder data source exposes file metadata columns such as Date modified, and applying a filter on that column before invoking the Combine Files transformation restricts the combined table to only files modified within the last 7 days. This keeps the import efficient and ensures the resulting single table contains only the desired recent files. Option A is wrong because 'Sample File' merely defines the file structure and does not filter by modification date.

Option C is wrong because 'Merge Queries' joins two existing queries on matching keys, not folder file metadata. Option D is wrong because filtering after combining would still load all files first, and the Date modified column is not retained in the combined result.

452
MCQeasy

You have a report with a map visual showing store locations by city. However, some cities are not displaying on the map. You verified that the city names are correct. What should you check first?

A.Use ArcGIS Map visual instead of the built-in map.
B.Add latitude and longitude fields to the map visual.
C.Change the map visual to a filled map.
D.Ensure the city column is set to the Text data type.
AnswerB

Adding latitude and longitude fields (both numeric) gives the map visual exact coordinate pairs for each store, bypassing the geocoding service entirely. This is the only option that directly addresses the root cause of a map failing to place points—the geocoder may fail on ambiguous or non-standardized city names, whereas coordinates are unambiguous, instantaneous, and always render at the correct location regardless of how the address or city is formatted.

Why this answer

The correct option is B: add latitude and longitude fields to the map visual. Power BI's built-in map relies on geocoding city names, and ambiguous or duplicate city names across regions often fail to plot, so supplying explicit latitude and longitude values gives the visual unambiguous coordinates to render each store location. Option A is unnecessary because switching to the ArcGIS Map visual does not resolve missing geocoding data.

Option C is irrelevant since a filled map still depends on the same geocoding and would not fix missing points. Option D is not the issue because the scenario already confirms the city names are correct, and a text data type is expected for city fields anyway.

Exam trap

A common trap is to assume that city names alone are sufficient for accurate mapping, but Power BI's geocoding may fail for less-known cities.

453
MCQmedium

Refer to the exhibit. You are reviewing a DAX measure in Power BI. The measure is intended to calculate total sales for the year 2024. However, when used in a visual with a slicer on 'Sales[Date]', the measure does not respect the slicer selection. What is the most likely reason?

A.The FILTER function overrides the slicer filter context.
B.The CALCULATE function removes all filters by default.
C.The measure should use ALL(Sales[Date]) to respect slicers.
D.The DATE function syntax is incorrect.
AnswerA

In DAX, CALCULATE modifies the filter context by applying its filter arguments. When FILTER is used as a filter argument, it creates a new filter on the Sales table that replaces any existing filters on that table, including those from a slicer. This replacement behavior is by design: filter arguments in CALCULATE override existing filters on the same columns or tables. Therefore, the slicer's context is ignored, and the measure returns values based solely on the FILTER condition.

Why this answer

The FILTER function in the measure creates a new filter context that overrides the existing slicer filter context on 'Sales[Date]'. When CALCULATE evaluates the expression, it applies the FILTER as a table modifier, which replaces any external filters on the Date column, causing the slicer to be ignored. This is a common DAX behavior where explicit filter arguments in CALCULATE take precedence over existing filter contexts.

Exam trap

The trap here is that candidates often assume CALCULATE always respects slicers, but they miss that explicit filter arguments (like FILTER) override external filters on the same columns, leading to the slicer being ignored.

How to eliminate wrong answers

Option B is wrong because CALCULATE does not remove all filters by default; it only modifies the filter context based on its filter arguments, and without a REMOVEFILTERS or ALL function, it preserves existing filters. Option C is wrong because using ALL(Sales[Date]) would remove the slicer filter entirely, making the measure ignore the slicer even more, not respect it; to respect slicers, you should not use ALL or should use KEEPFILTERS. Option D is wrong because the DATE function syntax (DATE(2024,1,1) and DATE(2024,12,31)) is correct and would not cause the measure to ignore slicer selections.

454
MCQmedium

You are the Power BI administrator for a company that uses Microsoft 365. The security team requires that when a user opens a Power BI report on a personal device, the user must authenticate with Microsoft Entra ID and satisfy a conditional access policy that demands multifactor authentication. The report is in a workspace that is not backed by Fabric capacity. Which feature should you enable to meet this requirement?

A.Power BI Embedded
B.Microsoft Entra ID Conditional Access
C.Row-level security (RLS)
D.Sensitivity labels
AnswerB

Configuring a Conditional Access policy in Microsoft Entra ID that targets the Power BI cloud app and requires multifactor authentication enforces the MFA challenge when a user signs in to Power BI, including on personal devices. Because Power BI uses Microsoft Entra ID for authentication, the policy applies at sign-in and satisfies the security team's requirement without needing Fabric capacity.

Why this answer

The requirement is to force MFA when users open a report on personal devices. Because Power BI authenticates users through Microsoft Entra ID, a Conditional Access policy that targets the Power BI app and requires MFA will enforce the challenge at sign-in. This works regardless of whether the workspace uses Fabric capacity.

Other features like sensitivity labels, RLS, or Embedded do not enforce interactive MFA.

Exam trap

The trap here is assuming that sensitivity labels or row-level security can enforce multifactor authentication, when authentication strength is controlled by Microsoft Entra ID Conditional Access.

455
MCQmedium

Your organization uses Power BI to analyze sales data stored in Azure SQL Database. The data model includes a fact table with millions of rows. To improve performance, you need to reduce the amount of data loaded into the model. Which action should you take?

A.Apply row-level filters in Power Query to import only relevant rows
B.Use calculated tables in DAX to summarize data
C.Disable the Auto Date/Time feature
D.Configure incremental refresh with a date filter
AnswerA

Row-level filtering in Power Query (M) is applied before data enters the VertiPaq engine, enabling you to import only the rows that are relevant to your analysis. This reduces the number of rows materialized in the model, which directly shrinks the overall memory footprint and improves refresh time, query performance, and columnar compression ratios. Because only the necessary data is loaded, all downstream measures and reports run over a targeted dataset, making this the most effective way to reduce the initial data load size.

Why this answer

Applying row-level filters in Power Query reduces the volume of data imported into the Power BI model by only loading rows that meet specific criteria. This directly minimizes the data footprint in memory, improving query and refresh performance, especially for fact tables with millions of rows stored in Azure SQL Database.

Exam trap

The trap here is that candidates often confuse incremental refresh with reducing the initial data load, but incremental refresh only optimizes refresh cycles over time and does not limit the first full load unless combined with a date filter in Power Query.

How to eliminate wrong answers

Option B is wrong because calculated tables in DAX are created after data is loaded into the model, so they do not reduce the amount of data imported; they can even increase memory usage by duplicating or aggregating data. Option C is wrong because disabling the Auto Date/Time feature reduces the number of hidden date tables generated by Power BI, which improves model size and performance, but it does not reduce the amount of data loaded from the source. Option D is wrong because incremental refresh with a date filter partitions data for refresh scheduling and reduces the volume of data refreshed each time, but it still requires the full historical data to be loaded initially unless combined with a filter that limits the initial load; the question asks specifically about reducing the amount of data loaded into the model, and incremental refresh alone does not achieve that without additional filtering.

456
Multi-Selectmedium

Which TWO approaches can you use to implement row-level security (RLS) in Power BI?

Select 2 answers
A.Assign users to security groups in the dataset.
B.Use column-level security to restrict row visibility.
C.Use object-level security to restrict rows.
D.Create roles with static filters.
E.Use dynamic filters based on USERNAME().
AnswersD, E

Static row-level security is implemented by creating one or more roles whose DAX filters use constant values, such as [Country] = "USA". Every user assigned to a specific role receives exactly the same filtered view; to grant different views, you must create separate roles for each distinct filter value. This approach is predictable and easy to audit, but it becomes cumbersome when many user groups need different subsets of rows.

Why this answer

Option D is correct because creating roles with static filters is a core RLS implementation method in Power BI: in Power BI Desktop you define roles in Manage Roles and add DAX filter expressions on tables (for example, [Region] = "West"), then assign users or groups to those roles in the Power BI service, so each user sees only the rows matching the filter. Option E is correct because dynamic filters based on USERNAME() (or USERPRINCIPALNAME()) implement RLS by evaluating the signed-in user at query time, typically via a relationship to a security/identity table, so row visibility adapts automatically without creating a separate static role per user. Option A is not a valid RLS approach because assigning users to security groups in the dataset is a membership/administration step, not a row-filtering mechanism by itself.

Option B is wrong because column-level security restricts which columns are visible, not which rows. Option C is wrong because object-level security restricts access to tables and columns (metadata), not rows.

Exam trap

A common trap is confusing static RLS (fixed filters in roles) with dynamic RLS (using USERNAME() or USERPRINCIPALNAME() to filter by user).

457
MCQmedium

A Power BI report shows a line chart of monthly sales. The user wants to add a horizontal line representing the target sales of $100,000. Which approach should you recommend?

A.Add a constant line from the formatting pane
B.Add a gauge visual to display the target
C.Create a calculated column with the target value
D.Use the analytics pane to add a constant line
AnswerD

The Analytics pane in a line chart provides a dedicated 'Constant line' option that lets you specify a fixed numeric value or a measure to draw a horizontal reference line across the visual. This is exactly the intended method for annotating a chart with a target value, and it can be styled with colors, dashes, and a data label. Because the constant line is applied at the visual level, it remains aligned with the chart's y-axis and plot area, clearly showing when monthly sales fall above or below the target.

Why this answer

The correct answer is D: use the Analytics pane to add a constant line, because in Power BI the Analytics pane is the built-in feature that lets you add a horizontal constant line to a line chart and set its value to 100,000 (with options for color, style, and data label). This directly produces the target reference line the user wants without altering the data model. Option A is incorrect because constant lines are not added from the Formatting pane.

Option B is wrong because a gauge visual shows progress toward a target rather than overlaying a target line on the existing line chart. Option C is wrong because a calculated column adds a data field to the model and does not by itself render a horizontal target line on the chart.

458
MCQeasy

You are preparing data for a Power BI report. You have a query that connects to a REST API that returns JSON data. The JSON response contains a nested array of order details under an 'Orders' field. You need to expand the nested array so that each order becomes a row in the table. What should you do in Power Query?

A.Use the 'Group By' transformation on the 'Orders' column.
B.Use the 'Split Column' transformation by a delimiter.
C.Use the 'Expand' button on the 'Orders' column and select all fields.
D.Use the 'Unpivot Columns' transformation on the 'Orders' column.
AnswerC

The 'Expand' button on a column containing structured values (like a nested array) allows you to expand the array elements into new rows, effectively flattening the nested data. This is the correct way to turn each order into a row. Selecting all fields ensures all order details are included. This transformation is standard when working with JSON or XML data in Power Query.

Why this answer

Expanding the nested array column is the correct method to flatten JSON data in Power Query. The 'Expand' button appears when a column contains structured values such as lists or records. Expanding a list column creates a new row for each element, which is exactly what is needed to turn each order into a row.

Other transformations like unpivot, split, or group by do not handle nested structures and would produce incorrect results.

Exam trap

The trap here is confusing the Expand operation with Unpivot, as both can create additional rows but serve different purposes.

459
Multi-Selectmedium

Which TWO actions can help reduce the size of a Power BI dataset when preparing data?

Select 2 answers
A.Include all historical data
B.Aggregate transaction data to daily level
C.Add calculated columns
D.Remove columns that are not used in reports
E.Use DirectQuery mode
AnswersB, D

Aggregating transaction data to a daily level reduces the number of rows imported into the model, which directly shrinks the compressed columnar storage. For example, millions of individual sales rows become a few thousand daily totals, and lower cardinality in date and measure columns yields better compression. This is an effective size-reduction technique when daily granularity satisfies your reporting needs.

Why this answer

Option B is correct because aggregating transaction-level rows into daily summaries collapses many individual records into far fewer rows, directly shrinking the dataset's row count and memory footprint in the Power BI model. Option D is correct because removing unused columns reduces the model's columnar cardinality and compression overhead, since Power BI's VertiPaq engine stores and compresses each column separately, so eliminating unnecessary columns lowers overall model size. Option A is incorrect because retaining all historical data increases row volume and model size rather than reducing it.

Option C is incorrect because calculated columns are materialized and stored in the model, adding to its size instead of shrinking it. Option E is incorrect because DirectQuery does not reduce dataset size—it leaves data in the source and queries it on demand, and it is a connectivity mode rather than a data-reduction technique.

Exam trap

Microsoft often tests the misconception that adding calculated columns is a harmless transformation, but in reality, they increase dataset size because they are stored as new columns in the VertiPaq engine.

460
MCQhard

You are designing a star schema for a sales analysis report. The source data includes Order Details, Products, Customers, and Dates. Which table should be the fact table?

A.Dates
B.Customers
C.Order Details
D.Products
AnswerC

Order Details is the correct fact table because each row represents a line item from an order, the lowest grain of the sales process, and it holds numeric measures like quantity, unit price, and discount that can be aggregated with SUM and similar functions. It also contains foreign key columns (OrderID, ProductID, CustomerID, etc.) that link to the surrounding dimension tables, creating the star schema. The presence of both additive measures and multiple dimension keys is the defining property of a fact table.

Why this answer

In a star schema, the fact table stores quantitative, measurable data (metrics) and foreign keys linking to dimension tables. Order Details contains sales transactions with measures like quantity and revenue, making it the correct fact table for sales analysis.

Exam trap

The trap here is that candidates often mistake dimension tables like Dates or Products as the fact table because they appear frequently in reports, but the fact table must contain the measurable events (e.g., sales transactions) that drive the analysis.

How to eliminate wrong answers

Option A is wrong because Dates is a dimension table providing time attributes (year, month, day) for filtering and grouping, not transactional measures. Option B is wrong because Customers is a dimension table storing descriptive attributes (name, region) for slicing data, not numeric facts. Option D is wrong because Products is a dimension table containing product attributes (category, price) for analysis, not the core transactional data.

461
MCQhard

You are merging two queries in Power Query: 'Orders' and 'Customers'. The 'Orders' table has a 'CustomerID' column, and 'Customers' has 'CustomerID' and 'Name'. You need to bring the 'Name' into 'Orders' but only for matching CustomerIDs; unmatched rows should be removed. Which join kind should you use?

A.Right Anti
B.Full Outer
C.Inner
D.Left Outer
AnswerC

Inner join retains only rows where a matching key exists in both tables—so an order is included only if it has a corresponding customer, and customers appear only if they have at least one order. This produces exactly the intersection of the two queries, which is the standard approach for combining transactional and dimensional data to analyze completed order-customer pairs.

Why this answer

The Inner join kind in Power Query returns only rows where there is a match in both tables based on the key columns. Since the requirement is to bring the 'Name' into 'Orders' only for matching CustomerIDs and to remove unmatched rows, the Inner join is the correct choice. It ensures that only orders with a corresponding customer in the 'Customers' table are retained, and the 'Name' column is added to those matching rows.

Exam trap

The trap here is that candidates often confuse Left Outer join with Inner join, thinking that 'bringing in data only for matches' means keeping all left rows, but Left Outer retains unmatched left rows with nulls, while Inner removes them entirely.

How to eliminate wrong answers

Option A is wrong because Right Anti join returns only rows from the right table that have no match in the left table, which would exclude all matching rows and is the opposite of what is needed. Option B is wrong because Full Outer join returns all rows from both tables, including unmatched rows from each side, which would keep orders without a matching customer and introduce nulls, violating the requirement to remove unmatched rows. Option D is wrong because Left Outer join returns all rows from the left table (Orders) and only matching rows from the right table (Customers), which would keep orders without a matching customer (with null in Name), not removing unmatched rows as required.

462
MCQhard

Your organization uses row-level security (RLS) in Power BI. You have a table 'Sales' with a column 'Region'. You define a role 'RegionManagers' with the filter: [Region] = "North". A user named Alice is a member of this role. However, when Alice views a report that uses this dataset, she sees all regions. What is the most likely reason?

A.The dataset uses DirectQuery mode, which does not support RLS.
B.Alice is the dataset owner.
C.The filter must use USERNAME() or USERPRINCIPALNAME() function.
D.RLS is only applied in Power BI Desktop, not in the service.
AnswerB

Alice, as the dataset owner, bypasses RLS entirely. In the Power BI service, users who have Owner permission (or Write permission) on the dataset are exempt from row-level security filters, so they can see all rows in any report built on that dataset. Even in Power BI Desktop, the model designer sees all data unless they explicitly test a role with 'View as'. Thus, Alice seeing all data is expected when she owns the dataset.

Why this answer

The correct answer is B: Alice is the dataset owner. In Power BI, members of the dataset's Admin/owner workspace role (or the dataset owner) bypass row-level security, so Alice sees all regions despite being assigned to the RegionManagers role with the filter [Region] = "North". RLS is enforced only for users who access the dataset with Viewer, Contributor, or read permissions, not for owners/admins.

Option A is wrong because DirectQuery does support RLS. Option C is wrong because a static filter like [Region] = "North" is valid; USERNAME()/USERPRINCIPALNAME() is only needed for dynamic filtering. Option D is wrong because RLS is enforced in the Power BI service as well as in Desktop.

463
Multi-Selectmedium

You have a Power BI report that uses a custom visual from AppSource. The visual is not rendering correctly. Which three steps should you take to troubleshoot?

Select 3 answers
A.Disable hardware acceleration in Power BI Desktop
B.Check if the visual version is compatible with your Power BI Desktop version
C.Update the visual to the latest version from AppSource
D.Clear the browser cache
E.Verify that the visual uses the correct data fields
AnswersB, C, E

Custom visuals are compiled against a specific Power BI API version, and that API version must be within the range supported by your Power BI Desktop release. When a visual was built for an older API or targets a newer API that your Desktop does not implement, the visual can fail to load, appear blank, or throw a rendering exception. Checking compatibility means verifying the minimum supported Power BI version on the visual's AppSource listing or its metadata, and confirming your Desktop is at or above that version. This is a critical diagnostic because an incompatible visual will misbehave regardless of how correctly its data fields are configured.

Why this answer

Option B is correct because custom visuals from AppSource are compiled against specific Power BI API versions, so a visual built for a newer API than your Power BI Desktop build can fail to render; confirming version compatibility is a standard first troubleshooting step. Option C is correct because updating the visual to the latest version from AppSource resolves known rendering bugs and ensures you have the most recent API-compatible build. Option E is correct because custom visuals require their expected data roles/fields to be bound; if required fields are missing or mapped incorrectly, the visual will render blank or incorrectly.

Option A does not belong because disabling hardware acceleration addresses general rendering glitches in Desktop, not a specific AppSource custom visual's compatibility or data-binding issues. Option D does not belong because clearing the browser cache applies to the Power BI Service in a browser, not to troubleshooting a custom visual in Power BI Desktop.

Exam trap

The trap is selecting generic troubleshooting steps like clearing cache or disabling hardware acceleration, which are not specific to custom visual rendering failures — the exam expects you to know the three targeted steps: version compatibility, updating the visual, and verifying field assignments.

464
MCQmedium

You have a Power BI model with a 'Date' table marked as a date table. You need to create a measure that calculates the running total of sales over the last 12 months. Which DAX function should you use?

A.PREVIOUSYEAR
B.DATESYTD
C.DATESINPERIOD
D.DATEADD
AnswerC

DATESINPERIOD is a general-purpose time intelligence function that returns a table of dates from an initial start date and moves a specified number of intervals (such as -12 months) into the past or future. When used with a start date of the current context date and an interval of -12 MONTH, it dynamically constructs the exact trailing 12-month period, including all dates from the current date going back one year. This makes it the correct choice for a last-12-months measure because it directly defines the rolling window based on the current filter context.

Why this answer

DATESINPERIOD, is correct because it allows you to define a dynamic window of dates—specifically, the last 12 months ending with the latest date in the current filter context. When used with a measure like CALCULATE(SUM(Sales[Amount]), DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -12, MONTH)), it shifts the date range backward by 12 months from the last visible date, making it ideal for a rolling 12-month total. The 'Date' table being marked as a date table ensures that time intelligence functions respect the continuous date range.

Exam trap

The trap here is that candidates often confuse DATESYTD (which is for year-to-date, not rolling) with a trailing 12-month calculation, or they mistakenly think PREVIOUSYEAR can handle a dynamic window, when in fact it only returns a fixed prior calendar year.

How to eliminate wrong answers

Option A is wrong because PREVIOUSYEAR returns the entire previous calendar year (e.g., all of 2023) relative to the current context, not a rolling 12-month window that moves with each period. Option B is wrong because DATESYTD calculates a year-to-date total from the start of the calendar year to the last date in context, which is a fixed annual accumulation, not a trailing 12-month period. Option D is wrong because DATEADD shifts a set of dates by a specified interval (e.g., -1 year) but returns a set of dates shifted from the original, not a contiguous 12-month window ending at the current context; it requires additional logic to create a rolling total.

465
MCQhard

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

A.Use a custom visual that combines both views in one chart
B.Use bookmarks to switch between category view and daily trend view
C.Place a stacked column chart showing all categories and a line chart for trend on the same page
D.Create a drillthrough page with a line chart showing daily revenue, and use category page as source
AnswerD

A drillthrough page is lazy-loaded by Power BI, meaning the daily revenue line chart is not instantiated or queried until a user explicitly right-clicks a data point on the category page and selects the drillthrough target. The source category page remains the only visual rendered upfront, so the detailed trend data is deferred until the exact moment of interaction. This reduces the report's initial load time and is the recommended pattern for on-demand detail exploration in PL-300 performance optimization.

Why this answer

Option D is correct because a drillthrough page keeps the main category page lightweight and only loads the daily revenue line chart when a user right-clicks a product and drills through, so the 10 million-row detail query runs on demand rather than on every page render. This design also lets the drillthrough page be filtered to the selected product, reducing the data volume processed by the line chart. Options A and C are wrong because rendering both category and daily-trend visuals on one page forces all queries, including the high-cardinality daily aggregation, to execute on initial load.

Option B is wrong because bookmarks only toggle visual visibility on the same page; hidden visuals and their underlying queries can still be evaluated, so it does not reliably reduce load time.

466
MCQeasy

Refer to the exhibit. You are configuring a scheduled refresh for a Power BI dataset. The exhibit shows the refresh schedule settings. The dataset is in a workspace in a Premium capacity. The scheduled refresh runs at 5:00 AM UTC daily. However, the refresh is failing consistently. What is the most likely cause?

A.The notify option should be set to 'OnFailureOrSuccess' to get alerts.
B.The data source requires a gateway to be configured for refresh.
C.The refresh time is outside the allowed window for Premium capacities.
D.The dataset is in a Premium capacity, which does not support scheduled refresh.
AnswerB

On-premises or private-network sources cannot be reached directly by the Power BI service, so a data gateway must bridge the connection. Without a configured gateway, the scheduled refresh cannot authenticate to the source, explaining the consistent failures despite Premium capacity.

Why this answer

The exhibit shows a scheduled refresh configured for a dataset in a Premium capacity workspace, but the refresh is failing consistently. The most likely cause is that the data source requires a gateway to be configured for refresh. Even in Premium capacities, if the data source is on-premises or within a private network (e.g., SQL Server, Oracle, or SharePoint on-premises), an on-premises data gateway must be installed and configured to enable the Power BI service to connect and refresh the data.

Without a gateway, the scheduled refresh will fail because the cloud service cannot directly access the local data source.

Exam trap

The trap here is that candidates often assume Premium capacities automatically resolve connectivity issues or that scheduled refresh is not supported in Premium, when in reality the gateway requirement is independent of capacity tier and depends solely on the data source location.

How to eliminate wrong answers

Option A is wrong because the notify option (set to 'OnFailureOrSuccess' or 'OnFailure') controls email notifications for refresh outcomes, but it does not affect whether the refresh succeeds or fails; it only determines if you receive alerts. Option C is wrong because Premium capacities have a larger refresh window (up to 48 refreshes per day) and 5:00 AM UTC is well within the allowed window; there is no restriction that would cause a failure at that time. Option D is wrong because Premium capacities fully support scheduled refresh; in fact, they offer more frequent refresh slots than shared capacities, so this is not a limitation.

467
MCQhard

You are designing a Power BI solution that ingests data from multiple sources: Azure Blob Storage, Salesforce, and an on-premises Oracle database. The data must be combined into a single semantic model. The Oracle database contains sensitive customer information that must be masked before being loaded. Which approach should you use to prepare the data?

A.Create a Power BI dataflow that extracts, transforms, and masks data before loading into the semantic model
B.Use DirectQuery to connect to all sources and rely on database-level masking
C.Import all data into Power BI Desktop and apply transformations in the Power Query Editor
D.Stage the data in an Azure SQL Database and use SQL Server Analysis Services to mask data
AnswerA

Power BI dataflows are a native, cloud-based ETL service in the Power BI service that can connect to a wide range of sources, apply data cleansing and shaping logic through Power Query Online, and include masking steps such as hashing, replacing, or removing sensitive columns before the resulting entity is loaded into a semantic model. This centralized approach supports enterprise-scale data preparation, scheduled refresh, and reusable entities that can serve multiple reports and datasets, making it the right architecture for this scenario.

Why this answer

Power BI dataflows provide a cloud-based ETL solution that can connect to Azure Blob Storage, Salesforce, and on-premises Oracle (via an on-premises data gateway), perform transformations including data masking, and then load the prepared data into a shared semantic model. This approach centralizes data preparation, ensures sensitive data is masked before any downstream consumption, and supports scheduled refreshes without requiring additional infrastructure.

Exam trap

The trap here is that candidates often assume data masking must be done at the database level or via a separate service like SSAS, but Power BI dataflows can perform masking during the transformation phase, making them the most integrated and efficient solution for this multi-source scenario.

How to eliminate wrong answers

Option B is wrong because DirectQuery does not allow data masking within Power BI; it passes queries directly to the source, so sensitive data would remain unmasked unless the source itself applies masking, which is not guaranteed across heterogeneous sources. Option C is wrong because importing all data into Power BI Desktop and applying transformations in Power Query Editor only masks data locally in the .pbix file, not in a shared, scalable semantic model, and it does not support scheduled cloud-based refreshes for on-premises Oracle without additional gateway configuration. Option D is wrong because staging data in Azure SQL Database and using SQL Server Analysis Services (SSAS) to mask data introduces unnecessary complexity and cost, and SSAS is not required for masking; Power BI dataflows can perform masking natively without additional services.

468
MCQeasy

You have a Power BI report with a page that contains a bar chart showing sales by product category. You want to allow users to click on a bar and navigate to a different report page that shows detailed sales for that category. Which feature should you use?

A.Bookmarks
B.Report page tooltips
C.Cross-filtering
D.Drillthrough
AnswerD

Drillthrough is a built-in Power BI feature that enables navigation from a data point on a source visual to a separate, binded target report page. When the user right-clicks a bar and selects the drillthrough target, the target page is automatically filtered to the clicked data point's field values (e.g., the specific category), providing a contextual detail view. This matches the requirement exactly because it is triggered by a per-data-point action and results in a page transition.

Why this answer

Drillthrough in Power BI allows users to right-click a data point (like a bar in a bar chart) and navigate to a separate report page filtered to that specific context, such as the selected product category. This is exactly the requirement: clicking a bar to see detailed sales for that category on another page. Drillthrough pages are configured with a field well that defines the filter context passed from the source visual.

Exam trap

The trap is confusing drillthrough with bookmarks or tooltips; candidates might think bookmarks can achieve context-sensitive navigation, but only drillthrough passes the selected data point's context to another page.

How to eliminate wrong answers

Option A is wrong because bookmarks capture the state of a report page but do not provide context-sensitive navigation based on a selected data point; they are static views. Option B is wrong because report page tooltips appear on hover and provide additional information but do not navigate to another page. Option C is wrong because cross-filtering highlights or filters visuals on the same page based on selection, not navigation to a different page.

469
MCQeasy

You need to connect Power BI to an Excel file stored on a local network drive. The file is updated manually each morning. You want the Power BI report to always show the latest data when opened. Which data connectivity mode should you choose?

A.Live Connection
B.Dual
C.Import
D.DirectQuery
AnswerC

Import mode loads the contents of the Excel file into the VertiPaq in-memory engine, where data is compressed and stored for fast interactive analysis. After the initial load, you can refresh the dataset on a schedule to pick up changes in the workbook, though for files on a local machine an on-premises data gateway is needed for automated refresh. Because the data is cached, all Power BI features—including calculated columns, measures, and RLS—are fully supported, and visuals do not hit the source file on every interaction.

Why this answer

(Import) is correct because Power BI must load the Excel data into its internal VertiPaq engine to support the full range of transformations and visualizations. Since the file is on a local network drive and updated manually, Import mode allows you to refresh the dataset on demand or via a scheduled refresh, ensuring the report always shows the latest data when opened. DirectQuery and Live Connection are not applicable because they require a live queryable data source (like SQL Server or Analysis Services), not a flat file.

Exam trap

The trap here is that candidates often confuse DirectQuery with the ability to query any file-based source, but Microsoft explicitly restricts DirectQuery to SQL-based and OData sources, not Excel or CSV files.

How to eliminate wrong answers

Option A (Live Connection) is wrong because it is used only for connecting to an Analysis Services tabular model or a Power BI dataset, not to an Excel file stored on a network drive. Option B (Dual) is wrong because Dual mode is a storage mode that combines Import and DirectQuery for composite models, but it still requires a DirectQuery-capable source (like SQL Server) and cannot be used with Excel files. Option D (DirectQuery) is wrong because DirectQuery mode is designed for relational databases or other sources that support real-time querying; Excel files are not supported in DirectQuery mode in Power BI.

470
MCQmedium

Your organization uses Microsoft Power BI with Microsoft Purview for data governance. You have a dataset that contains customer data classified as 'Highly Confidential' under a sensitivity label. The compliance team requires that when this dataset is shared with external users, a Microsoft Purview data loss prevention (DLP) policy must block the sharing and notify the compliance team. You need to configure this. What should you do?

A.Use Microsoft Defender for Cloud Apps to create a session policy that blocks sharing.
B.Configure Microsoft Sentinel to monitor and block sharing events.
C.In the Power BI admin portal, disable sharing for workspaces containing 'Highly Confidential' content.
D.Create a DLP policy in Microsoft Purview that applies to Power BI and blocks sharing of content with the 'Highly Confidential' label.
AnswerD

Creating a Data Loss Prevention policy in Microsoft Purview that targets the Power BI workload is the correct, service-native approach: the policy can specify a condition that the sensitivity label equals 'Highly Confidential', and define an action to block the share, optionally allowing an override or business justification. When a user attempts to share a labeled item, Purview, via its integration with Power BI, intercepts the request and enforces the policy in near real time, providing both audit and DLP event logs. This is the only listed option that directly uses label-aware DLP semantics to prevent unauthorized sharing.

Why this answer

The correct option is D: create a DLP policy in Microsoft Purview that applies to Power BI and blocks sharing of content with the 'Highly Confidential' label. Microsoft Purview DLP natively supports Power BI as a workload, so a policy scoped to Power BI can detect items carrying the specified sensitivity label and block external sharing while sending notifications to the compliance team. Option A is wrong because Defender for Cloud Apps session policies govern SaaS session activity, not Power BI item-level label-based sharing.

Option B is wrong because Microsoft Sentinel is a SIEM/SOAR platform for monitoring and alerting, not for enforcing DLP blocking. Option C is wrong because disabling sharing at the workspace level is a blunt control that does not target the 'Highly Confidential' label or notify compliance.

471
MCQeasy

You are building a Power BI report to analyze customer churn. You want to add a visual that shows the trend of churn rate over time. Which visual type is most appropriate?

A.Line chart
B.Stacked bar chart
C.Scatter plot
D.Pie chart
AnswerA

A line chart is the correct visualization for analyzing customer churn trends over time because it plots time on the x-axis (a continuous or ordinal field) and the churn metric on the y-axis, allowing you to see peaks, troughs, and overall direction. Line charts excel at highlighting temporal patterns, such as seasonality or steady declines, because the connecting line guides the eye across intervals. They also support multiple series, so you can compare churn across segments without losing clarity.

Why this answer

A line chart is best for showing trends over time. Option B is wrong because a stacked bar chart is better for comparing parts of a whole. Option C is wrong because a scatter plot shows correlation between two variables.

Option D is wrong because a pie chart shows proportions at a single point in time.

472
MCQhard

You have the above measure in a Power BI model. The 'Date' table is marked as a date table and has a relationship to Sales[OrderDate]. The measure returns blank for all months. What is the most likely cause?

A.The Date table does not contain all dates in the continuous range
B.The relationship is set to filter in the wrong direction
C.The measure uses incorrect syntax for DATESYTD
D.The 'Date' table is not marked as a date table
AnswerA

DATESYTD requires a gapless, contiguous set of dates spanning the entire year because it internally constructs a date range from January 1 through the last visible date in the filter context. If the Date table has missing dates—for example, only trading days or a subset of dates—the year-to-date calculation cannot include those gaps, causing blanks or understated totals. A properly built continuous date table with every calendar date is mandatory for time intelligence functions.

Why this answer

The correct answer is A: the Date table does not contain all dates in the continuous range. Time-intelligence functions like DATESYTD require a Date table with an unbroken, continuous sequence of dates covering the full period being analyzed; if any dates are missing, the function returns blank for the affected months. A wrong filter direction (B) would typically produce incorrect aggregation rather than blank results, and DATESYTD syntax errors (C) would raise an error, not silently return blank.

The table is already marked as a date table per the scenario, so D is not the cause.

473
MCQeasy

You are importing data from a CSV file that contains a column 'Date' with values like '2026-01-15'. After loading, Power Query detects the column as type 'text'. What is the recommended step to ensure the column is treated as a date?

A.In Power Query, select the column and change the data type to 'Date' using the 'Data Type' dropdown.
B.In Power BI Desktop, use the 'Format' pane to set the column as a date.
C.Use the 'Parse' -> 'Date' transformation in Power Query.
D.Use the 'Detect Data Type' button in Power Query to automatically detect all columns.
AnswerA

Power Query inferred text because the CSV values were read as strings. Explicitly setting the column's data type to Date via the Data Type dropdown applies locale-aware conversion, ensuring the values are stored and modelled as dates rather than text.

Why this answer

In Power Query, the recommended method to convert a text column containing date-formatted strings (like '2026-01-15') to a proper Date type is to select the column and change its data type using the 'Data Type' dropdown in the Transform tab. This ensures the column is treated as a date for downstream calculations and modeling. Power Query automatically parses the text into a date based on the locale and format of the data.

Exam trap

The trap here is that candidates confuse the 'Format' pane in the report view (which only changes display formatting) with the Power Query data type change (which alters the column's data type in the data model), leading them to select Option B.

How to eliminate wrong answers

Option B is wrong because the 'Format' pane in Power BI Desktop is used for visual formatting (e.g., display format of a date in a report), not for changing the underlying data type of a column in the data model. Option C is wrong because there is no 'Parse' -> 'Date' transformation in Power Query; the correct transformation is 'Change Type' -> 'Date' or using the 'Data Type' dropdown. Option D is wrong because the 'Detect Data Type' button in Power Query attempts to auto-detect types for all columns, but it may not reliably convert a text column to date if the data is ambiguous or if the detection logic fails; the recommended step is to explicitly set the data type.

474
MCQmedium

You are importing data from a SQL Server view into Power BI. The view contains calculated columns that are expensive to compute. You want to minimize the load on the source database during refresh. What should you do?

A.Import the raw data and perform transformations in Power Query.
B.Enable query folding to push transformations to SQL Server.
C.Use a native SQL query in Power Query to perform calculations.
D.Create a materialized view in SQL Server with the calculations.
AnswerA

By importing raw data, you offload transformation work to Power BI's mashup engine, which leverages Power Query's in-memory and streaming capabilities. This avoids pushing compute-intensive operations to SQL Server, preserving database resources for other workloads. Additionally, Power Query's step-based transformations are highly maintainable and can be refreshed on a schedule.

Why this answer

Importing raw data and performing transformations in Power Query offloads the computational burden from the SQL Server source to Power BI's mashup engine. This minimizes load on the source database during refresh, as expensive calculated columns are not executed on SQL Server. Power Query can apply transformations after the data is extracted, reducing the need for server-side processing.

Exam trap

The trap here is that candidates often assume pushing transformations to the source (via query folding or native SQL) is always more efficient, but the question specifically asks to minimize load on the source database, making offloading to Power Query the correct choice.

How to eliminate wrong answers

Option B is wrong because enabling query folding pushes transformations back to SQL Server, which would increase the load on the source database by having it perform the expensive calculations, contradicting the goal of minimizing load. Option C is wrong because using a native SQL query in Power Query to perform calculations still executes those calculations on SQL Server, placing the computational burden on the source database. Option D is wrong because creating a materialized view in SQL Server with the calculations would require the source database to compute and store the results, increasing load during refresh rather than reducing it.

475
MCQeasy

You have a Power BI capacity that is frequently hitting its memory limits, causing refreshes to fail. You need to reduce memory usage without increasing capacity size. What should you do?

A.Increase the eviction time for unused data.
B.Reduce the number of parallel data refresh operations.
C.Remove row-level security (RLS) from the dataset.
D.Increase the frequency of scheduled refreshes.
AnswerB

Reducing the number of parallel data refresh operations lowers the peak memory and CPU demand on the capacity because each refresh must load and compress the entire dataset into memory. By serializing refreshes, you flatten the resource usage curve, preventing the capacity from reaching its memory threshold during overlapping refresh jobs. This is a direct, effective lever to avoid capacity throttling and eviction.

Why this answer

The correct answer is B: reducing the number of parallel data refresh operations lowers peak memory usage because each concurrent refresh consumes memory for its own data processing, and running fewer at once means fewer simultaneous memory spikes on the capacity. This directly addresses the memory-limit failures without requiring a larger capacity SKU. Option A is wrong because increasing eviction time keeps unused data in memory longer, which would increase rather than reduce memory pressure.

Option C is wrong because RLS is not the primary driver of refresh memory usage, and removing it would not reliably solve capacity memory limits. Option D is wrong because more frequent refreshes increase overall memory and CPU load, making the problem worse.

476
MCQmedium

You need to ensure that a Power BI report is accessible to users with visual impairments. Which feature should you configure?

A.Apply a high-contrast theme.
B.Enable data labels on all visuals.
C.Add alt text to each visual.
D.Set custom tab order for visuals.
AnswerC

Adding alt text to each visual is the correct approach because Power BI's accessibility model exposes visuals to screen readers through their 'Accessibility' pane's 'Alt text' field. When a screen reader encounters a visual, it reads the provided alt text instead of attempting to interpret the visual content, giving non-sighted users a meaningful summary. To be effective, alt text must be concise yet descriptive, and it should be set consistently for charts, slicers, and images; this directly fulfills the requirement to make the report accessible to users who rely on assistive technologies.

Why this answer

The correct option is C: Add alt text to each visual. Alt text provides a textual description of each visual that screen readers can announce, which is the primary accessibility feature in Power BI for users with visual impairments. High-contrast themes (A) improve visual perception for low-vision users but do not convey the meaning of visuals to screen readers, and data labels (B) only expose values visually.

Custom tab order (D) helps keyboard navigation but does not describe visual content to assistive technology.

477
Multi-Selecthard

Which THREE of the following are valid considerations when using Power BI DirectQuery mode?

Select 3 answers
A.Data is imported into the Power BI dataset.
B.You cannot create relationships between tables.
C.Queries are sent to the underlying data source in real time.
D.Row-level security (RLS) can be applied.
E.Some DAX functions are not supported.
AnswersC, D, E

A defining characteristic of DirectQuery is that report interactions—such as filtering, slicing, or simply changing a page—are translated in real time into native queries executed directly against the underlying data source. This ensures that the report always shows the current state of the source, but it also means query performance depends heavily on the source's responsiveness and indexing. Since no snapshot is taken, any change in the source is immediately reflected in the report.

Why this answer

Option C is correct because DirectQuery does not cache or import data into Power BI; instead, every visual interaction generates a query that is passed through to the underlying source (e.g., SQL Server, Azure Synapse, Oracle) in real time, so results reflect the source's current state. Option D is correct because row-level security can be defined in the Power BI model and, for DirectQuery sources, the RLS filters are translated into the native query sent to the data source, restricting the rows each user can see. Option E is correct because DirectQuery must translate DAX into the source's query language, so certain DAX functions and constructs (for example, some time intelligence and parent-child functions) are unsupported or behave differently, and Power BI will flag them as not supported in DirectQuery mode.

Option A is wrong because importing data describes Import mode, not DirectQuery, which leaves the data in the source. Option B is wrong because relationships between tables can still be created in a DirectQuery model; they are simply used to generate the appropriate joins in the queries sent to the source.

Exam trap

The trap here is that candidates often confuse DirectQuery with Import mode, assuming data is still cached locally, or mistakenly think relationships cannot be created because they are not enforced at the dataset level, when in fact they are supported but with limitations.

478
MCQmedium

You are deploying a Power BI solution to a customer. The customer requires that all report access be controlled via Azure Active Directory (Azure AD) groups. You have a single workspace with multiple reports. What is the best practice for managing permissions?

A.Create a Power BI group and add users to it.
B.Assign each user directly to the workspace role.
C.Share each report individually with users.
D.Add an Azure AD group to the workspace role.
AnswerD

Adding an Azure AD group to the workspace role is the correct, recommended approach for scalable access management in Power BI. When you assign the group to a role such as Viewer, Contributor, Member, or Admin, all current and future members of that group automatically receive the corresponding permissions on the workspace and its content. This centralizes identity governance in Azure AD: adding or removing a user from the group instantly reflects in Power BI, with no per-workspace or per-report edits needed. It aligns with enterprise security best practices and simplifies auditing and compliance.

Why this answer

Using an Azure AD group to manage workspace roles aligns with the customer's requirement for centralized access control via Azure AD. This approach simplifies permission management by allowing group membership changes in Azure AD to automatically propagate to Power BI workspace access, ensuring consistency and reducing administrative overhead.

Exam trap

The trap here is that candidates may confuse Power BI groups (which are legacy and not Azure AD integrated) with Azure AD groups, or assume that direct user assignment or individual report sharing is simpler, missing the requirement for centralized Azure AD-based control.

How to eliminate wrong answers

Option A is wrong because creating a Power BI group (a distribution group or security group within Power BI) does not leverage Azure AD groups as required; it introduces a separate group management layer that is not integrated with the customer's Azure AD-based identity governance. Option B is wrong because assigning each user directly to the workspace role violates the requirement to control access via Azure AD groups, leading to manual, error-prone user management and lack of centralized control. Option C is wrong because sharing each report individually bypasses workspace-level permissions, creating a fragmented permission model that is harder to audit and does not scale; it also does not use Azure AD groups as specified.

479
Multi-Selecthard

A company has a Power BI semantic model that uses DirectQuery to a SQL Server database. The model includes a large fact table with 100 million rows. Users are experiencing slow report performance. Which TWO actions should the developer take to improve query performance?

Select 2 answers
A.Configure incremental refresh to limit data retrieved per query.
B.Create indexes on columns used in filters and relationships.
C.Remove unused columns from the fact table.
D.Hide columns that are not needed in reports.
E.Add calculated columns to precompute aggregations.
AnswersB, C

In DirectQuery mode, Power BI sends every visual query directly to the underlying SQL Server, so query performance depends on the source engine's ability to return results quickly. Creating indexes on columns used in filters and relationship joins lets SQL Server use efficient lookup and merge operations instead of full table scans, dramatically reducing query latency. Without appropriate indexes, even simple filter operations can force the database to scan millions of rows, which directly degrades the Power BI report experience.

Why this answer

In DirectQuery mode, incremental refresh is not supported (option A is incorrect). Creating indexes on columns used in filters and relationships (option B) speeds up query execution on SQL Server. Removing unused columns from the fact table (option C) reduces the amount of data transferred per query.

Hiding columns (option D) does not affect the data retrieved by queries. Adding calculated columns (option E) increases query overhead and degrades performance.

Exam trap

Candidates often think hiding unused columns improves performance, but in DirectQuery it does not reduce query size. They also mistakenly believe calculated columns are beneficial, whereas they add overhead.

480
MCQhard

You have a Power BI semantic model with a date table that has a 1:* relationship to a Sales table. You need to create a measure that shows the number of sales transactions for the last 30 days. The date table is marked as a date table. Which DAX expression should you use?

A.CALCULATE(COUNTROWS(Sales), DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -30, DAY))
B.CALCULATE(COUNTROWS(Sales), DATESBETWEEN('Date'[Date], TODAY()-30, TODAY()))
C.CALCULATE(COUNTROWS(Sales), PREVIOUSMONTH('Date'[Date]))
D.CALCULATE(COUNTROWS(Sales), DATEADD('Date'[Date], -30, DAY))
AnswerA

This expression is correct because DATESINPERIOD constructs a continuous, dynamic 30-day window ending at the boundary defined by MAX('Date'[Date])—the latest date present in the current filter context. By specifying DAY as the interval type and a negative offset of -30, the function returns the set of dates from MAX('Date'[Date]) minus 29 days through MAX('Date'[Date]), inclusive of both endpoints, resulting in exactly 30 calendar days. Since it is anchored to the maximum date in the date table rather than to a hardcoded system date like TODAY(), it remains accurate even when the underlying data has not been refreshed up to the current day, and it automatically adapts to whatever date range is selected in a report slicer or page filter, making it the most robust choice for a rolling last-30-days measure.

Why this answer

Option A is correct because DATESINPERIOD('Date'[Date], MAX('Date'[Date]), -30, DAY) returns a 30-day rolling window ending at the last date in the current filter context, which is exactly what a 'last 30 days' measure requires when the model has a marked date table. Wrapping it in CALCULATE with COUNTROWS(Sales) then counts the Sales rows whose related Date values fall in that window. Option B uses DATESBETWEEN with TODAY()-30 and TODAY(), which hard-codes the window to the actual current date rather than the model's latest date and can return blank or wrong results if the data is not current.

Option C uses PREVIOUSMONTH, which returns the entire prior calendar month, not a 30-day period. Option D uses DATEADD with -30 DAY, which shifts the current filter context back 30 days rather than returning a 30-day range, so it does not produce a rolling 30-day count.

481
Multi-Selectmedium

Which TWO are required components of a Power BI Paginated Report?

Select 2 answers
A.A subscription
B.A map visual
C.A dataset
D.A data source
E.A query parameter
AnswersC, D

In a paginated report, a dataset defines the query and the fields that populate the data regions; without a dataset, there is no data to bind to the report items. The dataset references a data source and includes the query text, parameters, and field collection. Even if a report uses a shared dataset, there is still at least one dataset in the report's data model. Therefore, a dataset is an essential, required component.

Why this answer

In Power BI Paginated Reports, every report must be bound to at least one dataset (option C), which defines the fields and query results the report's tables, matrices, and other regions render. That dataset in turn must be backed by a data source (option D), the connection object that specifies the provider and connection string used to retrieve the data. Together, the data source and dataset form the minimum required data-retrieval components of a paginated report.

A subscription (option A) is an optional delivery mechanism for scheduled report distribution, not a required report component. A map visual (option B) is just one optional report item type, and a query parameter (option E) is an optional filtering/parameterization feature, neither of which is mandatory for a paginated report to exist.

Exam trap

Microsoft often tests the misconception that optional features like subscriptions, map visuals, or query parameters are mandatory, when in fact only the dataset and data source are strictly required for a paginated report to render.

482
Multi-Selectmedium

You are using Power Query to transform a column 'FullName' containing values like 'Smith, John'. You need to split this into 'LastName' and 'FirstName' columns. Which THREE steps are required?

Select 3 answers
A.Unpivot columns
B.Use 'Split Column' by delimiter
C.Trim leading/trailing spaces from new columns
D.Merge the split columns back
E.Rename the new columns to LastName and FirstName
AnswersB, C, E

Using 'Split Column' by delimiter is the core transformation that parses the fullname column into two columns based on the comma separator. In Power Query, this command (found on the Transform tab) scans each cell for the specified delimiter and divides the text at that point, producing two new columns containing the fragments. This is the only option here that directly creates the separate LastName and FirstName values from the original string, so it is the correct primary action.

Why this answer

Option B is correct because the 'FullName' values like 'Smith, John' must first be separated at the comma, which is exactly what Power Query's 'Split Column' by delimiter (comma) does, producing two new columns. Option C is correct because the delimiter is followed by a space, so the resulting 'John' value will have a leading space that must be removed with Trim to get clean FirstName values. Option E is correct because the split produces generically named columns (e.g., 'FullName.1' and 'FullName.2'), so they must be renamed to 'LastName' and 'FirstName' to match the required output.

Option A does not belong because Unpivot transforms columns into rows and is unrelated to splitting a single text column. Option D does not belong because merging the columns back would undo the split and recreate a single combined value, contradicting the goal of separate LastName and FirstName columns.

483
MCQeasy

You are designing a Power BI semantic model for an e-commerce company. You have a fact table with OrderID, CustomerID, OrderDate, and SalesAmount. You also have a Customers table with CustomerID, CustomerName, and CustomerSegment. You need to ensure that filters on CustomerSegment propagate to the SalesAmount measure. What should you do?

A.Use the LOOKUPVALUE function in a calculated column.
B.Create a one-to-many relationship from Customers[CustomerID] to Sales[CustomerID].
C.Merge the Customers and Sales tables into a single table in Power Query.
D.Create a snowflake schema by adding a separate Segment table.
AnswerB

Creating a one-to-many relationship from Customers[CustomerID] to Sales[CustomerID] is the correct star schema design. This relationship lets filter context flow from the dimension table (Customers) to the fact table (Sales), enabling correct aggregations like total sales by customer name. It also uses Power BI's optimized VertiPaq engine to join tables only when needed, reducing memory and improving query performance compared with calculated columns or merged tables. The cardinality is correctly specified because one customer can appear in many sales records.

Why this answer

Option B is correct because creating a one-to-many relationship from Customers[CustomerID] to Sales[CustomerID] establishes the Customers table as the lookup (dimension) table and Sales as the related (fact) table, so filter context applied to Customers[CustomerSegment] flows down to the Sales table and affects the SalesAmount measure. This is the standard star-schema filter propagation behavior in Power BI. Option A does not propagate filters; LOOKUPVALUE merely retrieves a value row-by-row in a calculated column and cannot drive cross-table filtering.

Option C would work functionally but destroys the dimensional model and is not the recommended design. Option D adds a Segment table but does not by itself create the needed relationship from Customers to Sales, so segment filters would not reach SalesAmount.

484
Multi-Selecthard

Which THREE considerations are important when implementing row-level security (RLS) in Power BI? (Select exactly 3.)

Select 3 answers
A.Roles can use DAX expressions to define filters
B.RLS can filter data based on the user's identity
C.RLS is automatically applied when using Analyze in Excel
D.RLS in DirectQuery mode pushes filters to the source database
E.RLS can restrict access to specific measures
AnswersA, B, D

Roles in Power BI define row-level security by using DAX expressions as filter predicates. For example, a role can be configured with a DAX filter like `[SalesRegion] = "North"` or a more complex FILTER expression that returns a table of allowed rows. These expressions are evaluated within the filter context of each row, and only rows that return TRUE for the predicate become visible to users assigned to that role. This makes DAX the core mechanism for implementing custom, flexible row-level security in Power BI.

Why this answer

Option A is correct because RLS roles in Power BI define filters using DAX expressions (for example, [Region] = "West" or USERPRINCIPALNAME()), which is the core mechanism for row-level filtering. Option B is correct because RLS is designed to filter data based on the user's identity, typically via functions like USERNAME() or USERPRINCIPALNAME() mapped to a security table. Option D is correct because in DirectQuery mode, RLS filters are translated and pushed down to the source database as part of the query, so the source must be able to process them.

Option C is not correct because RLS is not automatically applied in Analyze in Excel; the connection must use a role or the user must be a member of a role, and behavior depends on the connection method. Option E is not correct because RLS filters rows, not measures; restricting access to specific measures is handled through object-level security (OLS), not RLS.

485
MCQeasy

You are building a Power BI semantic model that includes a Date table. Which of the following is a best practice for creating a Date table?

A.Mark the date table as a date table in Power BI Desktop.
B.Create relationships from the date table to every fact table column that contains dates.
C.Use the CALENDARAUTO function to automatically generate dates.
D.Use a date table that includes only dates that exist in the fact tables.
AnswerA

Marking a table as a date table in Power BI Desktop (via Table tools > Mark as date table) establishes it as the model's official calendar source. This designation is required for time intelligence functions like TOTALYTD, SAMEPERIODLASTYEAR, and DATESBETWEEN to operate correctly. Power BI validates that the chosen date column contains continuous, unique dates and automatically uses it for date-based calculations and hierarchy generation.

Why this answer

Option A is correct because marking a table as a date table in Power BI Desktop (via Table tools > Mark as date table) designates it as the model's official date table, enabling built-in time intelligence functions to work correctly and ensuring the table meets the requirements of a contiguous, unique date column. This is a documented best practice for any semantic model that uses time intelligence. Option B is wrong because relationships should be created between the date table and the date columns of fact tables, not to every date-bearing column, and a single active relationship per fact table is typical.

Option C is not a best practice because CALENDARAUTO generates dates based on the model's data range, which can produce an unpredictable or incomplete range; a manually or Power Query–built date table with a fixed, contiguous range is preferred. Option D is wrong because a date table must contain a continuous, unbroken sequence of dates, not just the dates present in fact tables, so that time intelligence calculations over gaps work properly.

486
MCQeasy

You need to combine two tables: Sales and Products, where Sales has a ProductID column and Products has a ProductKey column. The tables have a many-to-one relationship. Which Power Query transformation should you use?

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

Merge Queries performs a relational join by matching rows on a common key column, such as ProductID, with configurable join types (Inner, Left Outer, Full Outer, etc.). This enriches each sales record with the corresponding product attributes (name, price, category) from the Products table in a single output table. Because the requirement is to combine two tables column-wise based on a shared field, Merge Queries is the correct approach.

Why this answer

Merge Queries (C) is correct because it performs a join between two tables based on matching columns, which is exactly what is needed to combine Sales and Products using ProductID and ProductKey. This transformation supports many-to-one relationships and allows you to expand related columns from the Products table into the Sales table, enabling further data analysis.

Exam trap

The trap here is that candidates confuse Merge Queries with Append Queries, mistakenly thinking that combining tables always means stacking rows, rather than joining on a key relationship.

How to eliminate wrong answers

Option A is wrong because Group By aggregates data by grouping rows and computing summary statistics (e.g., sum, count), not for combining tables based on key columns. Option B is wrong because Append Queries stacks rows from two tables vertically, requiring identical column structures, and does not join on a key relationship. Option D is wrong because Pivot Column transforms unique values from a column into new columns, typically for reshaping data, not for merging related tables.

487
Multi-Selecthard

You are creating a Power BI report that uses a composite model with DirectQuery and imported tables. Which two considerations should you keep in mind?

Select 2 answers
A.Some DAX functions may have limitations when used across storage modes
B.Relationships can only be defined between tables of the same storage mode
C.Performance may be impacted if the report requires aggregations from both sources
D.DirectQuery tables cannot be related to imported tables
E.All measures must be created in the imported tables
AnswersA, C

In composite models, time intelligence functions like DATESYTD or TOTALYTD often fail or behave unexpectedly when they reference tables from both Import and DirectQuery storage modes. This occurs because the engine cannot guarantee consistent calendar boundaries across heterogeneous sources, and certain functions such as OPENINGBALANCEQUARTER rely on iterating a date table that must be fully cached. As a result, you may need to use CALCULATE with explicit filters or ensure all supporting tables are in the same storage mode.

Why this answer

Option A is correct because in a composite model, DAX functions that traverse relationships between DirectQuery and Import tables (or that rely on certain query-folding capabilities) can be limited; functions like CALCULATE, time intelligence, and some iterators may not fully translate to the source, so cross-storage-mode calculations can behave differently or be restricted. Option C is correct because when a report needs aggregations that combine data from both DirectQuery and Import sources, Power BI must query the external source and then combine results locally, which can degrade performance due to network latency, source query cost, and limited query folding. Option B is incorrect because relationships can be defined across tables of different storage modes in a composite model; that is a core capability of composite models.

Option D is incorrect for the same reason—DirectQuery tables can be related to imported tables as long as the relationship is valid and the model is configured as a composite model. Option E is incorrect because measures can be created on DirectQuery tables as well as imported tables; there is no requirement that all measures reside in imported tables.

Exam trap

The trap here is that candidates assume all relationships must be within the same storage mode or that DirectQuery tables cannot be related to imported tables, but composite models explicitly allow cross-mode relationships, and the key limitation is on certain DAX functions and performance, not on relationship or measure placement.

488
MCQmedium

A Power BI developer has a fact table that contains sales data at the transaction level. The table includes columns: TransactionID, ProductID, CustomerID, DateKey, Quantity, UnitPrice, Discount, and SalesAmount. The developer wants to create a measure for total sales after discount. Which approach is best for performance and accuracy?

A.Create a measure: SUM(Sales[SalesAmount]) - SUM(Sales[Discount])
B.Add a calculated column in Power Query: NetAmount = Quantity * UnitPrice - Discount, then create a measure: SUM(Sales[NetAmount])
C.Create a measure: SUMX(Sales, Sales[Quantity] * Sales[UnitPrice] - Sales[Discount])
D.Create a measure: SUM(Sales[Quantity] * Sales[UnitPrice]) - SUM(Sales[Discount])
AnswerB

Creating a calculated NetAmount column in Power Query (M) evaluates Quantity * UnitPrice - Discount once at refresh time, storing the result as a static column in the data model. The subsequent measure SUM(Sales[NetAmount]) simply aggregates those pre-computed values, avoiding row-by-row evaluation at report time and improving query performance for large fact tables. Because the calculation is pushed to the query engine instead of the DAX engine, it also keeps the code simpler and avoids iterator overhead during visual rendering.

Why this answer

It performs the net amount calculation at the row level in Power Query (M), which is computed during data refresh and stored in the table. This avoids runtime row-by-row iteration in DAX, making the measure SUM(Sales[NetAmount]) a simple, highly efficient aggregation. It ensures both performance and accuracy, as the discount is applied per transaction before aggregation.

Exam trap

The trap here is that candidates often assume a DAX measure using SUMX or a simple subtraction of aggregated columns is equivalent in performance, but the exam tests the understanding that pre-calculating row-level logic in Power Query (M) is the most performant approach for large fact tables, while also ensuring mathematical accuracy.

How to eliminate wrong answers

Option A is wrong because subtracting SUM(Discount) from SUM(SalesAmount) is mathematically incorrect when discounts are stored as absolute values per row; it would only work if Discount were a total discount amount per row, but here it is a per-row value that should be subtracted from the row’s net amount, not aggregated separately. Option C is wrong because SUMX iterates over the entire table row by row at query time, which is slower than a pre-calculated column, especially for large fact tables; it also forces the calculation engine to evaluate the expression for every row during measure execution. Option D is wrong because SUM(Sales[Quantity] * Sales[UnitPrice]) is invalid syntax in DAX—SUM expects a single column reference, not an expression; this would cause a syntax error or unexpected behavior, and even if corrected, it would still suffer from the same aggregation-order issue as Option A.

489
MCQmedium

You are modeling data from a SQL database that has a table with columns: OrderID, CustomerID, OrderDate, ProductID, Quantity, and Price. You want to create a star schema in Power BI. Which columns should you move to dimension tables?

A.OrderDate, Quantity, Price
B.Quantity, Price, OrderID
C.CustomerID, ProductID, OrderDate
D.OrderID, Quantity, Price
AnswerC

CustomerID, ProductID, and OrderDate are all foreign keys that establish relationships to the Customer, Product, and Date dimension tables. In a proper star schema, these keys should be replaced with dimension attributes such as CustomerName, ProductCategory, and OrderMonth during reporting. This replacement makes reports readable and lets users filter and group by meaningful descriptions instead of opaque ID numbers.

Why this answer

Option C (CustomerID, ProductID, OrderDate) is correct because in a star schema these columns are foreign keys or attributes that belong in dimension tables: CustomerID links to a Customer dimension, ProductID links to a Product dimension, and OrderDate links to a Date dimension for time-based analysis. The fact table should retain the numeric measures and the order identifier, so Quantity, Price, and OrderID stay in the fact table. Option A incorrectly moves Quantity and Price, which are measures, into dimensions.

Option B incorrectly moves Quantity and Price and keeps CustomerID/ProductID out of dimensions. Option D incorrectly moves Quantity and Price while leaving the dimension keys in the fact table.

490
Multi-Selecteasy

Which TWO are valid Power BI workspace roles?

Select 2 answers
A.Viewer
B.Admin
C.Owner
D.Reader
E.Editor
AnswersA, B

Viewer is a legitimate read-only workspace role in Power BI. Viewers can see and interact with dashboards, reports, and apps in the workspace, but they cannot edit content, share items, or manage permissions. This role is ideal for consumers who only need to view and analyze data without modifying the underlying reports.

Why this answer

In Power BI, the four valid workspace roles are Admin, Member, Contributor, and Viewer, so option A (Viewer) is correct because it grants read-only access to view reports and dashboards without editing content, and option B (Admin) is correct because it provides full control of the workspace including adding/removing users, managing permissions, and deleting the workspace. Option C (Owner) is not a Power BI workspace role—ownership concepts apply to items or capacities, not workspace membership roles. Option D (Reader) is not a workspace role; read-only access is provided by the Viewer role.

Option E (Editor) is not a workspace role; edit permissions are granted via Contributor, Member, or Admin roles.

491
MCQeasy

You are a Power BI data analyst for a retail company. You have a semantic model with a Sales fact table and a Products dimension table. You need to create a measure that calculates total sales amount. Which DAX function should you use?

A.SUM(Sales[SalesAmount])
B.COUNT(Sales[SalesAmount])
C.SUMX(Sales, Sales[SalesAmount])
D.CALCULATE(SUM(Sales[SalesAmount]))
AnswerA

SUM is the correct DAX function to add all values in a numeric column, such as Sales[SalesAmount]. It aggregates the column across the filter context, providing the total sales amount. This is a fundamental aggregation function for measures and is efficient because it operates on a single column without iterating rows.

Why this answer

The SUM function is designed to add all numbers in a single column, making it the simplest and most efficient choice for total sales amount. SUMX is for row-by-row expressions, CALCULATE is for filter manipulation, and COUNT tallies non-blank values. For a straightforward total, SUM is correct.

Exam trap

The trap here is overcomplicating a simple aggregation by using an iterator like SUMX or wrapping SUM in CALCULATE, when a basic SUM is sufficient and more efficient.

492
Multi-Selecteasy

Which TWO of the following are valid DAX functions for time intelligence?

Select 2 answers
A.TOTALYTD
B.RANKX
C.SUM
D.CALCULATE
E.SAMEPERIODLASTYEAR
AnswersA, E

TOTALYTD is a DAX time intelligence function that evaluates an expression over the year-to-date period based on a given date column. It returns a scalar value representing the cumulative total from the start of the year to the latest date in the current filter context. This function is specifically designed for time-based calculations, making it a valid answer.

Why this answer

TOTALYTD is a valid DAX time intelligence function that calculates the year-to-date value of an expression, typically used with a date column to aggregate data from the start of the year to the current context. It requires a properly marked date table with continuous dates to function correctly.

Exam trap

Microsoft often tests the distinction between general DAX functions (like CALCULATE and SUM) and dedicated time intelligence functions, trapping candidates who assume any function that works with dates qualifies as time intelligence.

493
MCQeasy

You want to create a measure that calculates the percentage of total sales for each product category. What DAX function should you use to get the grand total?

A.VALUES
B.ALLSELECTED
C.REMOVEFILTERS
D.ALL
AnswerD

ALL('Sales'[Category]) inside a CALCULATE removes all filters applied to the Category column, including row and slicer filters, giving you the grand total across every category. This is the canonical method for building a percentage-of-total measure: you divide the current category's sales by the unfiltered total from CALCULATE with ALL. By clearing only the category filter, you preserve other context like date ranges, making the measure precise and flexible.

Why this answer

The correct answer is D, ALL, because it removes all filters from the specified table or column and returns the grand total across the entire dataset, which is exactly what is needed to compute each category's percentage of total sales (e.g., SUM(Sales[Amount]) / CALCULATE(SUM(Sales[Amount]), ALL(Product[Category]))). ALL is the standard DAX function for obtaining an unfiltered grand total in ratio measures. VALUES does not remove filters; it returns a single-column table of distinct values, so it cannot produce a grand total.

ALLSELECTED respects filters applied outside the query (such as slicers) rather than giving the true grand total, and REMOVEFILTERS is a filter modifier used inside CALCULATE that removes filters but is not the conventional function for retrieving a grand total in this scenario.

494
MCQhard

You are designing a Power BI data model for a sales analysis. The source data has a table 'Orders' with columns: OrderID, CustomerID, ProductID, OrderDate, Quantity, UnitPrice. You also have a table 'Customers' with CustomerID, CustomerName, and 'Products' with ProductID, ProductName. You need to create a star schema. What should you do?

A.Split Orders into multiple fact tables by year
B.Create a snowflake schema by normalizing Customers and Products further
C.Keep Customers and Products as separate dimension tables, and Orders as the fact table
D.Merge Customers and Products into a single dimension table
AnswerC

Keeping Customers and Products as separate dimension tables and Orders as the fact table correctly implements a star schema: the fact table holds numeric measures and foreign keys, while each dimension provides descriptive attributes linked by one-to-many relationships. This design lets users filter sales by any customer or product attribute without duplication or fan-out, and it lets DAX aggregate order measures directly and efficiently.

Why this answer

In a star schema, a single fact table (Orders) stores quantitative measures (Quantity, UnitPrice) and foreign keys (CustomerID, ProductID) that link to dimension tables (Customers, Products) containing descriptive attributes. This design optimizes query performance by reducing joins and enabling efficient aggregation, which is a best practice for Power BI data modeling.

Exam trap

Microsoft often tests the misconception that splitting fact tables by time (e.g., year) is beneficial, but the correct approach is to keep a single fact table with a date dimension for time-based analysis.

How to eliminate wrong answers

Option A is wrong because splitting Orders into multiple fact tables by year would break the star schema principle of having a single fact table per business process, leading to complex cross-table queries and loss of historical trend analysis. Option B is wrong because creating a snowflake schema by normalizing Customers and Products further (e.g., splitting CustomerName into separate tables) would increase the number of joins and degrade query performance in Power BI, which prefers denormalized dimension tables. Option D is wrong because merging Customers and Products into a single dimension table would create a non-conformed dimension with mixed attributes, causing data redundancy and making it impossible to analyze customers and products independently.

495
MCQhard

You are a data analyst at a utility company. You load a table of meter readings into Power BI Desktop from an Azure SQL Database. The table has columns MeterId, ReadingTimestamp, and Consumption. You discover duplicate rows caused by a known upstream issue where the same reading is sometimes inserted twice with identical values in all three columns. You need to remove these exact duplicate rows in Power Query while keeping one copy of each reading. What should you do?

A.Add an index column, then use Remove Rows > Remove Duplicates on the index column.
B.Group By MeterId, ReadingTimestamp, and Consumption with an All Rows operation, then expand the first row of each group.
C.Select the MeterId column only, then use Remove Rows > Remove Duplicates.
D.Select all three columns, then use Remove Rows > Remove Duplicates.
AnswerD

Remove Duplicates evaluates the selected columns as a composite key, so rows that match on MeterId, ReadingTimestamp, and Consumption are treated as duplicates. One copy of each distinct combination is retained. This precisely targets the exact duplicates described without risking removal of legitimate readings that differ in any column.

Why this answer

Remove Duplicates treats the set of selected columns as the key for comparison. Selecting MeterId, ReadingTimestamp, and Consumption means only rows identical across all three are collapsed, which matches the described upstream duplication. Narrower keys would delete valid readings, and an index column would prevent any matches.

Exam trap

The trap here is choosing a single column as the duplicate key, which feels efficient but actually removes valid readings that share the same meter identifier.

496
MCQhard

You are a Power BI data analyst for an e-commerce company. You have a report with a matrix visual that shows product categories as rows and years as columns, with total sales as values. You want to add a sparkline to each row that shows the trend of sales over the years. What should you do?

A.Use a calculated column to create a text-based trend indicator and display it in the matrix.
B.Add a line chart to the report and use the 'Small multiples' feature with Product Category as the small multiples field.
C.Add a sparkline to the matrix by enabling 'Sparklines' in the Format pane and adding the Sales measure.
D.Convert the matrix to a table visual and enable 'Data bars' for the sales column.
AnswerC

Matrix visuals in Power BI support sparklines. In the Format pane, under 'Sparklines', you can turn them on and add a measure (e.g., Total Sales). The sparkline then appears in each row, showing the trend across the columns (years). This is the correct way to add sparklines to a matrix.

Why this answer

Matrix visuals support sparklines, which can be enabled in the Format pane under 'Sparklines'. You add a measure to plot, and the sparkline appears in each row, showing the trend across the matrix columns. This is the correct method to add sparklines to a matrix without creating separate visuals.

Exam trap

The trap here is confusing sparklines with small multiples or data bars; sparklines are a built-in feature of matrix visuals, not a separate visual or a formatting option for tables.

497
MCQeasy

You have two tables: 'Orders' and 'Customers'. You want to create a relationship where each order is linked to one customer, but a customer can have many orders. Which cardinality should you choose?

A.Many-to-many (*:*)
B.Many-to-one (*:1) from Orders to Customers
C.One-to-many (1:*) from Orders to Customers
D.One-to-one (1:1)
AnswerB

The many-to-one (*:1) relationship from Orders to Customers is correct because the Orders table contains many rows that reference the same single customer row through the customer key. Each order belongs to exactly one customer, so the CustomerID column is not unique in Orders but is unique in Customers. This is the standard fact-to-dimension relationship in Power BI, where filtering from Customers to Orders yields all orders for that customer.

Why this answer

The correct choice is B, many-to-one (*:1) from Orders to Customers, because each individual order row references exactly one customer row, while the same customer key can appear in many order rows — which is precisely the *:1 direction when viewed from Orders toward Customers. In relational terms this is implemented by placing a foreign key in Orders pointing to the Customers primary key, enforcing referential integrity without duplicating customer data. Option A (*:*) is wrong because many-to-many requires a junction table and would let one order map to multiple customers, contradicting the scenario.

Option C (1:* from Orders to Customers) reverses the direction, implying one order relates to many customers. Option D (1:1) is wrong because it would restrict each customer to at most one order.

498
MCQeasy

You are a Power BI administrator. You need to ensure that users in your organization can only access Power BI through the web browser and cannot use the Power BI Desktop application to connect to the Power BI service. Which tenant setting should you configure?

A.Disable 'Publish to web' for the entire organization.
B.Disable 'Allow users to connect to the Power BI service with Power BI Desktop'.
C.Disable 'Allow service principals to use Power BI APIs'.
D.Disable 'Allow users to try Power BI Desktop for free'.
AnswerB

This tenant setting specifically blocks users from connecting Power BI Desktop to the Power BI service. Enabling this restriction ensures that users can only use the browser-based service, as required. It is the direct control for limiting Desktop client access to the service.

Why this answer

The tenant setting 'Allow users to connect to the Power BI service with Power BI Desktop' controls whether Desktop can be used to connect to the service. Disabling it restricts users to the web browser. Other settings address different features such as publishing publicly or API access, and do not prevent Desktop connections.

Exam trap

The trap here is confusing settings that limit publishing or trial usage with the specific setting that blocks Desktop connections to the service.

499
MCQmedium

You are reviewing a Power BI dataset configuration in the service. The JSON shows a data source for an Azure SQL Database. Which statement about the configuration is correct?

A.The dataset uses key-based authentication and does not use single sign-on.
B.The dataset uses single sign-on with Azure AD.
C.The dataset is configured to use a cloud gateway for direct query.
D.The dataset uses cloud-only data sources and does not require a gateway.
AnswerD

The dataset points to Azure SQL Database, a fully managed cloud PaaS service, so Power BI can connect directly over the internet without any on-premises data gateway. Neither Import mode nor DirectQuery requires a gateway for cloud-only sources, because the data source is not behind a corporate firewall and is already reachable via standard cloud endpoints. This is why the configuration correctly shows no gateway association and the dataset functions normally.

Why this answer

Azure SQL Database is a cloud-native data source in Power BI, and cloud data sources do not require a gateway, whether using DirectQuery or Import. The configuration shown in the JSON is for an Azure SQL Database, which is inherently cloud-only, so no gateway is needed. Option A is incorrect because key-based authentication is not supported for Azure SQL Database; using 'Key' credential type would cause a connection failure.

Option B is incorrect because the JSON does not indicate single sign-on (no 'SingleSignOn' property set to true). Option C is incorrect because a cloud gateway is not required for Azure SQL Database; it is only needed for on-premises or virtual-network sources.

Exam trap

The trap here is that candidates often assume any Azure SQL Database connection automatically uses Azure AD SSO or requires a gateway, but the JSON's credential type explicitly reveals the authentication method, and cloud-native sources like Azure SQL Database do not inherently need a gateway.

How to eliminate wrong answers

Option B is wrong because single sign-on (SSO) with Azure AD would require the JSON to include a 'SingleSignOn' property set to true or a credential type of 'OAuth2' with an Azure AD token, which is not present in the given configuration. Option C is wrong because a cloud gateway (e.g., on-premises data gateway) is only required for on-premises or non-cloud data sources; an Azure SQL Database is a cloud-native data source and does not need a gateway for DirectQuery or import mode. Option D is wrong because while Azure SQL Database is a cloud-only data source, the statement is too broad and ignores that the dataset could still require a gateway if the Power BI service cannot directly connect due to network restrictions (e.g., VNet integration), but the JSON does not indicate any gateway configuration, so the correct inference is about authentication, not gateway necessity.

500
MCQhard

You are designing a data model for a sales analysis report. The source data includes a Sales table with columns: OrderID, CustomerID, ProductID, OrderDate, Quantity, and UnitPrice. You also have a Customers table and a Products table. Which approach best optimizes query performance and storage?

A.Create a star schema with Sales as a fact table and Customers and Products as dimension tables.
B.Create separate fact tables for each dimension.
C.Create a single flat table by joining all columns from Sales, Customers, and Products into one table.
D.Create a snowflake schema by normalizing Customers into multiple related tables.
AnswerA

Star schema is the recommended modeling approach in Power BI because it separates measure-bearing numeric data (Sales) from descriptive attributes (Customers, Products). This structure leverages VertiPaq's columnar compression by storing dimensions as small, indexed tables, and enables unambiguous one-to-many relationships that make DAX filters propagate correctly. As a result, queries are simpler, more performant, and the model is easier for report consumers to navigate.

Why this answer

A star schema optimizes query performance and storage in Power BI by separating transactional data (Sales fact table) from descriptive attributes (Customers and Products dimension tables). This reduces data duplication, improves compression, and enables efficient aggregations and filter propagation via one-to-many relationships, which is the recommended modeling approach for analytical workloads.

Exam trap

The trap here is that candidates often choose a flat table (Option C) thinking it simplifies the model, but they overlook the severe storage and performance penalties from data duplication, which is a key anti-pattern in Power BI data modeling.

How to eliminate wrong answers

Option B is wrong because creating separate fact tables for each dimension would fragment the transactional data, requiring complex cross-filtering and joins, which degrades performance and increases storage overhead. Option C is wrong because a single flat table introduces massive data duplication (e.g., repeating customer and product attributes for every sale), inflating storage and slowing down query processing due to larger table scans. Option D is wrong because normalizing Customers into multiple related tables (snowflake schema) adds unnecessary join complexity in Power BI, which can degrade performance compared to a star schema, especially when using DirectQuery or large datasets.

501
MCQeasy

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

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

Splitting by comma as the delimiter separates the name into two columns, typically breaking at the comma between last and first name. After the split, the resulting columns often retain leading spaces (e.g., ' Doe' or 'Jane ') that come from the source data's formatting. Applying the Trim transformation removes these extraneous spaces, yielding clean standardized name values ready for further analysis or reporting. This combination of delimiter splitting and trimming is a best practice when handling delimited text with incidental whitespace.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

502
Multi-Selectmedium

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

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

Filtering out rows that are not needed reduces the volume of data loaded into the Power BI model, directly lowering the number of values that VertiPaq stores and compresses. The VertiPaq engine compresses data column-by-column, so fewer rows mean smaller dictionaries and bitmaps, which can also improve compression ratios. However, filter pushdown via query folding may further improve refresh speed, but the size reduction is the primary benefit.

Why this answer

Option A is correct because filtering out rows that are not needed during import (for example, using Power Query filters or a WHERE clause in the source query) reduces the number of records loaded into the model, directly shrinking the dataset size in memory and on disk. Option B is correct because removing unnecessary columns during import eliminates entire columns of data from the model, which reduces both row-level storage and the columnar compression footprint in the VertiPaq engine. Option C is incorrect because disabling query folding typically hurts performance and does not reduce dataset size; folding pushes transformations back to the source.

Option D is incorrect because adding calculated columns increases the model's size by storing additional materialized values. Option E is incorrect because DirectQuery does not store data in the model at all, but it is a connectivity mode change rather than a size-reduction action, and it does not reduce the size of an existing Import-mode dataset.

Exam trap

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

503
Multi-Selecteasy

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

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

This statement correctly describes the core mechanism Power Query uses when combining files. After you provide a sample file, Power Query auto-generates a parameterized function (often named 'Transform File') that captures the transformation steps applied to the sample file. It then calls that function for each file in the folder, passing the file's path and contents as parameters, which ensures the same cleaning, filtering, or reshaping logic is applied consistently across all files.

Why this answer

Option D is correct because when you use the 'Combine files' transform in Power Query, it generates a reusable function (typically named 'Transform File' or similar) that encapsulates the transformations applied to the sample file, and then invokes that function for every other file in the folder so each file undergoes the same steps. Option E is correct because Power Query creates a separate sample file query (often named 'Sample File' or 'Transform Sample File') that acts as a template, defining the schema and transformation logic that the function applies to all files. Option A is not correct because the sample file is not automatically chosen by alphabetical order; Power Query typically selects the first file it encounters (often based on the folder's file listing order) and lets the user pick a different sample file if needed.

Option B is not correct because all files in the folder are combined, not just the sample file. Option C is not correct because the combine process is handled entirely within Power Query's M engine, not by Power Automate.

Exam trap

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

504
MCQmedium

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

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

Performing aggregation in SQL before importing is a classic pushdown optimization that leverages the database engine to pre-summarize the sales data, so only the aggregated results are transferred to Power BI. This dramatically reduces the row count and the size of the imported dataset, leading to faster refreshes, lower model memory usage, and quicker report responses. It also offloads compute from Power BI to the SQL server, which is generally more scalable for large fact tables.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

505
MCQhard

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

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

Setting QuoteStyle.None tells the CSV parser to ignore the special meaning of double quotes, so it treats every comma as a field separator, even those that are inside a quoted string. For example, a line like "John, Doe" would become two columns instead of one, causing column count mismatches and data shifting. This is exactly the kind of symptom that would appear when debugging an import. The fix is to use QuoteStyle.Csv (or another style) so the parser honors quoted fields and keeps embedded commas as part of the same value.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

506
Multi-Selecthard

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

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

This is a correct use case for composite models. In Power BI, a composite model allows you to combine tables from different storage modes in a single data model. A DirectQuery table can be configured to always pull the latest data from the source, while historical tables can be imported and refreshed on a schedule. This hybrid approach gives you real-time visibility into current transactions without giving up the performance benefits of pre-loaded historical data.

Why this answer

Option A is correct because a composite model lets some tables use DirectQuery (for real-time or frequently changing data) while other tables remain in Import mode, so you can blend live DirectQuery data with imported historical data in one model. Option B is correct because composite models support aggregation tables, allowing you to keep large fact tables in DirectQuery (or as detail tables) while importing pre-aggregated summary tables to accelerate queries. Option E is correct because the core purpose of a composite model is to combine DirectQuery sources with imported tables in the same semantic model, which is otherwise impossible in a pure Import or pure DirectQuery model.

Option C is not a valid reason: composite storage mode does not inherently improve relationship performance, and relationship performance depends on cardinality, cross-filter direction, and model design rather than storage mode. Option D is not a valid reason: calculated tables are created with DAX and are always stored in Import mode, so they cannot be based directly on DirectQuery sources as a benefit of using a composite model.

507
MCQeasy

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

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

The Microsoft Purview compliance portal (Audit) hosts the unified audit log for Microsoft 365, which captures user and admin activities across services, including Power BI. Events such as viewing a report, modifying a dataset, sharing a dashboard, and exporting data are recorded with actor, timestamp, operation, and affected item details. Searching this log is the standard way to perform compliance auditing of Power BI user activities, making it the correct answer.

Why this answer

The correct option is B, Microsoft Purview compliance portal (Audit), because it provides the unified audit log that captures detailed Power BI user activity such as viewed reports, edited datasets, shared dashboards, and exported data, which is exactly what a compliance audit requires. Power BI activity events are surfaced through the Microsoft 365 audit log, accessible via the Purview compliance portal's Audit search (or the Search-UnifiedAuditLog cmdlet), letting you filter by workload, user, and date. Option A, Microsoft Defender XDR, focuses on security incidents and threat detection across endpoints, identities, and email, not on Power BI activity auditing.

Option C, Microsoft Purview Data Map, catalogs and classifies data assets for governance but does not record user action logs. Option D, the Power BI Premium capacity metrics app, reports on capacity utilization and performance metrics, not detailed per-user activity logs.

508
Multi-Selectmedium

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

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

Power BI's auto-date/time feature silently creates hidden date tables for every date column, inflating model size and creating extra relationships that can confuse the report layer. Disabling this option forces you to use an explicit date table, giving you control over data type, granularity, and contiguous date ranges, which improves time-intelligence performance and reduces memory footprint.

Why this answer

Option C is correct because Power BI's Auto date/time feature creates a hidden calculated date table for every date column, which adds memory overhead and can bloat a large model, so disabling it (via Options or Tabular Editor) keeps the model lean. Option D is correct because a star schema with a central fact table surrounded by dimension tables produces efficient, simple relationships that the VertiPaq engine compresses and queries faster than snowflake or normalized designs. Option E is correct because integer keys consume less memory and compress better than text keys, and integer-to-integer relationships are processed more efficiently during query execution.

Option A is not appropriate because calculated columns are stored and compressed in the model, consuming memory and increasing refresh time, so measures or calculated tables should be preferred where possible. Option B is not appropriate because adding unnecessary columns increases model size, hurts compression, and slows processing, so fact tables should contain only the columns needed for analysis.

Exam trap

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

509
MCQeasy

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

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

Using a line chart with OrderDate on the axis and the built-in date hierarchy enables drill-down from year to quarter to month without extra measures or columns. This hierarchy is auto-generated by Power BI for date columns, supports correct chronological sorting, and provides a natural, interactive way for users to explore trends at multiple granularities. The line chart's continuous axis is ideal for showing changes in Amount over time.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

510
MCQhard

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

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

This is the canonical star-schema relationship. A single customer can appear in many orders, so Customers is the 'one' side and Orders is the 'many' side. By placing the relationship from Customers to Orders, customer attributes (region, segment, etc.) automatically filter and slice all related order rows, enabling correct aggregations in measures. This relationship uses the dimension table as the lookup table and the fact table as the data table, which is the preferred pattern for performance and intuitive filtering.

Why this answer

In a star schema, the dimension table (Customers) has a unique CustomerID and the fact table (Orders) has many rows per customer, so the relationship is one-to-many from Customers to Orders. Power BI's default filter direction is single, meaning Customers filters Orders, which is exactly what is needed for filtering Orders by Segment. This is the standard dimensional modeling pattern.

Exam trap

PL-300 often tests the direction confusion between 'one-to-many from Customers to Orders' and 'many-to-one from Orders to Customers' — candidates pick the many-to-one wording even though it describes the same relationship from the wrong side.

How to eliminate wrong answers

Option B is wrong because 'many-to-one from Orders to Customers' is the same physical relationship described from the opposite direction — Power BI defines it as one-to-many from the 'one' side (Customers) to the 'many' side (Orders); choosing the many-to-one wording as the configuration is misleading and not how the relationship is set up. Option C is wrong because many-to-many with a bridge table is only needed when both sides have duplicate keys (e.g., orders with multiple customers or many-to-many dimensions) — here CustomerID is unique in Customers, so a bridge is unnecessary and adds complexity. Option D is wrong because one-to-one would require a unique CustomerID in both tables, but Orders has multiple rows per customer.

511
MCQmedium

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

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

Power BI only exposes sensitivity labels that are published through a sensitivity label policy in Microsoft Purview. Creating a label alone is insufficient—the label must be added to a policy that is enabled for Power BI and scoped to the appropriate users or security groups. Without such a policy, the labels remain invisible in the Power BI interface.

Why this answer

The correct answer is C: the labels are not included in a label policy that applies to Power BI. Sensitivity labels created in Microsoft Purview only become selectable in Power BI when they are published through a label policy whose scope includes Power BI (and the users are in that policy); simply creating the labels does not make them available. Options A, B, and D do not fit: labels are tenant-level objects not tied to a Power BI workspace, Premium capacity is not required for sensitivity labels, and Power BI Pro licensing does not control label availability.

512
MCQmedium

You are preparing data for a Power BI report at a hospital network. You connect to an Azure Synapse Analytics dedicated SQL pool. The fact table contains encounter records, and a dimension table named Patients stores protected health information. Hospital policy requires that the Patients table be filtered to only active patients before it is loaded into the semantic model, and the filter must be applied as close to the source as possible to minimize data transfer. You also need to be able to refresh the model without modifying the source database. What should you do in Power Query?

A.In the Patients query, add a step that filters the IsActive column to true, and ensure this step is folded by keeping only foldable transformations before it.
B.Import the entire Patients table and apply a visual-level filter on IsActive in the report so only active patients appear.
C.Create a stored procedure in Azure Synapse Analytics that returns only active patients, and call it from Power Query.
D.Use a DAX calculated table in the semantic model that uses FILTER to keep only rows where IsActive is true.
AnswerA

Filtering on the IsActive column is a foldable operation for Azure Synapse Analytics, so Power Query can translate it into a WHERE clause in the native query sent to the source. This reduces the rows transferred over the network and satisfies the requirement to filter as close to the source as possible. No source schema change is needed.

Why this answer

Filtering the IsActive column inside Power Query is a foldable transformation for Azure Synapse Analytics, so the row restriction is pushed down into the source query. This minimizes data transfer and avoids modifying the database. The other options either filter after import, require source changes, or apply filtering at the wrong layer.

Exam trap

The trap here is assuming that any filter placed early in the query is automatically folded, when in fact a preceding non-foldable step can break folding and force the filter to run locally.

513
MCQhard

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

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

Embedding the WHERE clause in a native SQL query lets the source database filter rows before Power Query ingests them, satisfying the stem's requirement to push filtering upstream. This avoids loading the full table and applying the filter locally, which is what causes the slow grouping by ProductID.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

514
MCQeasy

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

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

DATEDIFF(Orders[OrderDate], Orders[ShipDate], DAY) is correct because the DATEDIFF function in DAX returns the number of interval boundaries crossed between a start date and an end date, with the third argument specifying the interval unit. Here, DAY asks for whole calendar days, so the result is an integer representing the total days from OrderDate to ShipDate. This is the intended calculation for order-to-ship time.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

515
MCQmedium

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

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

DATESINPERIOD correctly constructs a contiguous range of dates ending at MAX(Date[Date]) and extending backward 12 months using the MONTH interval. This creates a filter context containing approximately 365 days that includes the current month and the preceding 11 months, so the CALCULATE SUM aggregates all sales attributable to that trailing twelve-month window. Because the end date is dynamically determined by the active filter context and the interval is relative, the measure automatically updates as the user selects different time periods, making it the accurate rolling 12-month total.

Why this answer

Option C is correct because DATESINPERIOD(Date[Date], MAX(Date[Date]), -12, MONTH) returns a rolling 12-month window ending at the last date in the current filter context, and wrapping it in CALCULATE makes the running total dynamic as slicers or visuals change. This matches the requirement to include the current month and the preceding 11 months. Option A uses hard-coded dates from 2024-01-01, so it is not dynamic and may not cover the last 12 months.

Option B uses PARALLELPERIOD, which shifts the entire period back 12 months rather than accumulating a rolling 12-month total. Option D uses TOTALYTD, which calculates a year-to-date total from the start of the fiscal or calendar year, not a rolling 12-month total.

516
MCQhard

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

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

A calculated table in DAX is materialized in memory when the model is refreshed, meaning its rows and values are stored as static data in the VertiPaq engine. Slicer selections generate a filter context at query time and can only filter visuals over existing rows; they cannot re-execute the table expression for each selection. To make a summary respond to slicers, the aggregation must be defined as a measure or use a dynamic technique such as a disconnected table with measures.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

517
MCQeasy

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

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

This automates combining files with different structures.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

518
MCQmedium

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

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

With RLS, you create a role whose DAX filter uses USERPRINCIPALNAME() to identify the current user—for example, filtering a 'Manager' column to match the user's UPN, or using LOOKUPVALUE to return all employees reporting up to that manager. Because USERPRINCIPALNAME() is evaluated per user at query time, a single role dynamically resolves the correct data scope for any manager without per-user configuration. This is the standard pattern for hierarchical or manager-based row-level security.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

519
MCQeasy

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

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

SAMEPERIODLASTYEAR is a time-intelligence function that returns a table of dates shifted exactly one year back from the current filter context, preserving the same day, month, and quarter boundaries. When used inside CALCULATE, it recalculates a measure over that prior-year date range, making it the precise foundation for a year-over-year growth calculation. Because it respects the current filter context and automatically handles leap years by shifting to the nearest valid date, it is the standard choice for comparing any arbitrary period—month, quarter, or cumulative range—to the same period in the previous year.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

520
MCQmedium

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

A.The on-premises data source is misconfigured, causing the refresh to load data from an outdated source.
B.The refresh took longer than expected and timed out.
C.The scheduled refresh is not set to refresh the dataset.
D.The on-premises data gateway is offline.
AnswerA

Correct. A misconfigured on-premises data source in the Power BI service — such as a gateway data source entry pointing to the wrong server, database, or folder, or using credentials for a different environment — can cause the refresh engine to successfully connect to and load data from an outdated or unintended location. Because the refresh completes without error, the service reports success even though the dataset is populated from the wrong source. This perfectly matches the scenario: a successful refresh that yields stale data.

Why this answer

The most likely cause is that the on-premises data source is misconfigured (e.g., pointing to a stale backup or snapshot). This results in the scheduled refresh loading data from an outdated source, making it appear successful yet yielding old data. The gateway does not cache data; the issue lies in the data source reference.

Exam trap

Candidates may assume a successful refresh guarantees current data, but misconfiguration of the data source (e.g., wrong connection string pointing to a backup) can cause the refresh to load outdated data without failure.

How to eliminate wrong answers

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

521
MCQhard

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

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

In Power BI, an active relationship is what enables automatic filter propagation between tables; without one, Power BI cannot traverse from the Sales table to the Regions table to retrieve RegionName. When a foreign key column like RegionID is placed in a visual and no active relationship links it to the Regions table, Power BI simply shows the raw ID value because it has no way to perform the lookup. The correct fix is to create or activate a relationship between Sales[RegionID] and Regions[RegionID] (typically with a single-direction filter), so that the relationship becomes active and the report can display the corresponding RegionName.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

522
MCQhard

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

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

Importing all tables into memory and applying an incremental refresh policy to the Sales table to keep only the last 5 years is the correct approach because it reduces the 500M-row table to a manageable subset that leverages the VertiPaq columnstore engine for in-memory aggregations. Incremental refresh uses RangeStart/RangeEnd parameters to filter historical data during each refresh, while keeping the model's date table and time-intelligence functions intact. This delivers fast, consistent performance and satisfies the requirement for a date hierarchy without sacrificing freshness of the most recent data.

Why this answer

Option C is correct because Import mode with incremental refresh on the 500-million-row Sales table delivers the sub-5-second report performance required, while the incremental refresh policy limits data loaded to the last 5 years and only refreshes changed partitions. Import mode also fully supports the required Year→Quarter→Month hierarchy, Country and Category slicers, and DAX time-intelligence measures like YoY growth and a 12-month moving average, provided a proper Dates table is related to Sales. Option A is wrong because DirectQuery for all tables pushes every visual query to Azure SQL, which will not reliably meet the 5-second page load requirement at this data volume.

Option B is wrong because DirectQuery on the large Sales table still incurs slow remote queries for aggregations and time intelligence. Option D is wrong because using DateKey from Sales without a dedicated date table prevents correct time-intelligence functions such as SAMEPERIODLASTYEAR and DATESINPERIOD.

523
MCQmedium

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

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

When an Azure Blob Storage container is private, Power BI's anonymous (public) access is rejected, so you must authenticate with a credential the storage service actually recognizes. The Azure Blob connector in Power BI supports Account Key authentication as the straightforward shared-key method: supplying the storage account key authorizes your request as the account owner. This grants full access to the container and resolves the 'container is private' error without needing to configure Azure RBAC roles. Use the key from the storage account's Access keys blade in the Azure portal.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

524
MCQhard

You are a data analyst for a global retail company. The company uses Power BI Premium capacity. You are building a dataset that combines sales data from three sources: 1. An Azure SQL Database that stores transactional sales data (10 million rows per day, retained for 5 years). 2. A SharePoint Online folder containing monthly Excel reports from regional offices (each report has a different structure). 3. A Dataverse table that contains customer feedback scores. Requirements: - The dataset must support near real-time reporting for the current month's sales (maximum 15-minute latency). - Historical sales data (older than current month) can be refreshed daily. - Customer feedback scores should be updated every hour. - The Excel reports from SharePoint must be combined into a single table with consistent columns. - The final dataset should be optimized for fast query performance. You need to design the data preparation strategy. What should you do?

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

This is correct because it uses a composite model to combine DirectQuery and Import modes: DirectQuery on Azure SQL for the current month's sales queries the source directly, providing near real-time visibility without data duplication or refresh latency. Historical sales are imported with incremental refresh, which partitions the data and only loads new or changed partitions, dramatically reducing refresh time and resource use. Customer feedback is imported on an hourly schedule since it does not require sub-hour latency, and SharePoint files are combined via Power Query and imported, as they lack DirectQuery support. This design maximizes performance while meeting all stated latency and freshness requirements, and it is a recognized best practice for hybrid data scenarios in Power BI.

Why this answer

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

Exam trap

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

How to eliminate wrong answers

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

Page 6

Page 7 of 7

All pages