Courseiva

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

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

Page 1

Page 2 of 7

Page 3
76
MCQeasy

You have a Power Query query that loads data from an OData source. You need to reduce the amount of data loaded into the data model. What is the best practice?

A.Apply a filter in the data model using DAX.
B.Use 'Enable load' option to turn off loading for the query.
C.Apply a filter in Power Query before loading.
D.Load all data and then hide columns you don't need.
AnswerC

Applying a filter in Power Query before the data is loaded reduces the number of rows that are imported into the data model. For OData sources, the filter can often be folded into the native query sent to the server, so only matching rows traverse the network and are stored in VertiPaq. This lowers memory usage, improves refresh time, and shrinks the model footprint — the correct way to reduce data volume.

Why this answer

Applying filters in Power Query before loading data into the data model is the best practice for reducing data volume. Power Query pushes filters down to the OData source using OData query parameters (e.g., $filter), ensuring only the required rows are retrieved from the source. This minimizes network transfer and memory usage in the data model, aligning with the principle of early filtering in the ETL process.

Exam trap

The trap here is that candidates often confuse filtering in the data model (DAX) with filtering during data ingestion (Power Query), assuming both reduce data volume equally, but only Power Query filters reduce the actual data loaded into memory.

How to eliminate wrong answers

Option A is wrong because applying a filter in the data model using DAX does not reduce the amount of data loaded; it only restricts what is visible in reports, while the entire dataset remains in memory. Option B is wrong because disabling 'Enable load' for the query prevents the entire query from being loaded, which is not a method to reduce data volume for a query that is needed—it removes the query entirely from the model. Option D is wrong because loading all data and then hiding columns does not reduce the amount of data loaded; hidden columns still consume memory and storage in the data model.

77
MCQmedium

You are working with a Power BI dataset that imports data from a web API. The API returns a JSON response containing a nested array of order details for each order. You need to flatten this nested array so that each order detail becomes a separate row in the table. Which Power Query transformation should you use?

A.Transpose the table.
B.Expand the column containing the array.
C.Use the Unpivot Columns transformation.
D.Use the Split Column transformation with a comma delimiter.
AnswerB

Expanding the column that holds the nested array (often a List or Record type) will create a new row for each element in the array, effectively flattening the data. This is the standard way to unnest arrays in Power Query. After expansion, related order information is repeated for each detail row, which may require further shaping.

Why this answer

Expanding the column that contains the nested array is the correct way to flatten JSON data in Power Query. This creates one row per array element, duplicating the parent order fields as needed. Other transformations do not handle nested structures and would fail to produce the required row-level detail.

Exam trap

The trap here is thinking that Unpivot or Split Column can handle nested arrays, when only the Expand operation is designed for this purpose.

78
MCQeasy

You want to create a report that allows users to select a product category and see the top 5 products by sales within that category. Which approach should you use?

A.Use a waterfall chart with category on the breakdown axis.
B.Add a slicer for category and apply a Top N filter on product to the visual.
C.Use a measure to rank products and filter visual to top 5.
D.Create a calculated column for rank and filter to top 5.
AnswerB

A slicer for category establishes a filter context that the visual's Top N filter respects. When you apply a visual-level Top N filter on the product field (sorted by a measure like Total Sales) and set N=5, the visual re-evaluates the top five products *within the currently selected category*. This works because Top N is applied after slicer filtering in the query pipeline, making the ranking dynamic and context-aware, which is exactly what the user needs.

Why this answer

Option B is correct because a slicer on category lets users interactively choose the category, while a Top N filter on the product field of the visual dynamically limits the display to the top 5 products by sales within the selected category. This combination directly satisfies the requirement for user-driven category selection and automatic top-5 ranking by the visual's sales measure. Option A does not fit because a waterfall chart with category on the breakdown axis shows contribution changes, not a top-5 product ranking.

Option C is less appropriate because a ranking measure alone still requires a visual-level filter to restrict to top 5 and does not by itself provide the category slicer interaction. Option D is not suitable because a calculated column computes rank at data refresh time and cannot respond dynamically to slicer selections or the visual's filter context.

79
Multi-Selecteasy

You are profiling data in Power Query Editor. Which THREE tasks can you perform using the Column Profile feature?

Select 3 answers
A.Add a conditional column
B.Identify data type issues
C.Count distinct values
D.View the distribution of values
E.Replace values
AnswersB, C, D

The column profile pane in Power Query Editor displays a range of statistics and data type indicators, making mismatches visually apparent—for example, a numeric column containing text values will show a 'Text' data type badge or error entries. Recognizing these issues is a primary objective of profiling so you can convert or correct types before loading. This is a capability of profiling, not a step you execute on data.

Why this answer

The Column Profile feature in Power Query Editor is a read-only data profiling tool, so it can identify data type issues (B) by showing errors and mismatches in the column statistics, which helps you spot columns that need type correction. It also counts distinct values (C), displaying the number of unique entries in the column profile pane to assess cardinality. Additionally, it shows the distribution of values (D) through value frequency charts and statistics such as count, min, max, and unique counts, helping you understand data patterns.

The unmarked options do not belong because adding a conditional column (A) and replacing values (E) are data transformation operations performed via the Add Column and Transform ribbons, not tasks provided by the profiling feature.

Exam trap

The trap here is that candidates confuse the Column Profile feature (a read-only profiling tool) with data transformation actions like adding columns or replacing values, leading them to select options that are actually performed in other parts of Power Query Editor.

80
Multi-Selecthard

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

Select 3 answers
A.Use composite keys in relationships for better performance
B.Enable bidirectional cross-filtering by default
C.Implement business logic in measures rather than calculated columns
D.Use a star schema design with dimension and fact tables
E.Use surrogate keys for dimension tables
AnswersC, D, E

Measures are evaluated within the current filter context at query time, so they compute values dynamically and consume no physical memory for storage beyond their definition. Calculated columns, on the other hand, are computed during data refresh and stored in the model, increasing model size and refresh time. By implementing business logic in measures, you gain greater flexibility—logic can change without triggering a full refresh, and the same measure can respond differently based on how users filter or slice data, which is the intended DAX pattern.

Why this answer

Option C is correct because measures are evaluated at query time and do not consume memory or storage in the model, whereas calculated columns are materialized during refresh, increasing model size and refresh time; pushing business logic into measures therefore improves performance and flexibility. Option D is correct because a star schema with dimension and fact tables is the recommended Power BI modeling pattern: it produces simpler relationships, more efficient DAX and VertiPaq compression, and better query performance than snowflaked or flat designs. Option E is correct because surrogate keys (meaningless integer keys) in dimension tables keep relationships narrow and integer-based, which compresses better and performs faster than natural or string keys, and they insulate the model from changes in source business keys.

Option A is not a best practice because composite keys in relationships are not supported for all cardinalities and generally add complexity and overhead; a single surrogate key is preferred. Option B is not a best practice because bidirectional cross-filtering by default can introduce ambiguous filter paths, degrade performance, and cause unexpected results; it should be enabled only when a specific requirement demands it.

81
Multi-Selecteasy

You are creating a Power BI report to analyze customer churn. You have a table with Customer ID, Churn Date, and other attributes. You want to create a measure that calculates the number of customers who churned in the last 30 days. Which THREE components do you need?

Select 3 answers
A.A measure using CALCULATE, COUNTROWS, and DATESINPERIOD
B.A calculated column for 30-day flag
C.A relationship between date table and Churn Date
D.A separate date table marked as date table
E.A disconnected table with date range
AnswersA, C, D

This is the correct pattern for a dynamic 30-day churn count: CALCULATE modifies the filter context to filter rows meeting the condition, COUNTROWS counts rows in the churn fact table, and DATESINPERIOD generates a contiguous date range from the max visible date going back 30 days. Unlike a column, this measure is evaluated at query time, so it automatically respects report-level slicers, page filters, and drill-downs, and requires no storage overhead. The key is that DATESINPERIOD works only with a properly related date table.

Why this answer

Option D is correct because time-intelligence functions like DATESINPERIOD require a dedicated Date table that is marked as a date table, ensuring a continuous, unbroken date range for accurate period calculations. Option C is correct because the Date table must be related to the Churn Date column in the fact table, which is what allows the filter context from the date table to propagate to the churn records. Option A is correct because the measure itself is built with CALCULATE to modify filter context, COUNTROWS to count the churned customers, and DATESINPERIOD to return the set of dates covering the last 30 days.

Option B is not needed because a calculated column flag is static and evaluated at refresh, and it cannot respond dynamically to slicers or report filter context the way a measure does. Option E is not needed because a disconnected table with a date range would not filter the fact table through a relationship, so it cannot drive the time-based calculation correctly.

Exam trap

PL-300 often tests the misconception that a calculated column can replace a measure for time intelligence — candidates must recognize that dynamic rolling windows require a measure plus a marked date table with an active relationship.

82
MCQeasy

You are modeling a many-to-many relationship between 'Student' and 'Class' tables. Which approach should you use in Power BI to handle this?

A.Merge both tables into one
B.Use bidirectional cross-filtering
C.Add a bridge table with composite keys
D.Create a single one-to-many relationship
AnswerC

Adding a bridge table with composite keys decomposes the many-to-many relationship into two separate one-to-many relationships: each original table relates to the bridge table on its respective key, and the bridge table stores only valid combinations. This makes the relationship graph acyclic and unambiguous, so filter propagation follows clear paths from one dimension through the bridge to the other dimension without double-counting. Composite keys in the bridge ensure that the join preserves the exact pairing of rows, which is the standard star-schema pattern for resolving many-to-many cardinality in Power BI.

Why this answer

A many-to-many relationship in Power BI requires a bridge (or junction) table that contains composite keys (e.g., StudentID and ClassID) to resolve the relationship into two one-to-many relationships. This allows Power BI to properly filter and aggregate data across both tables without ambiguity.

Exam trap

The trap here is that candidates often confuse bidirectional cross-filtering (Option B) as a direct solution for many-to-many relationships, but Power BI requires a bridge table to properly resolve the cardinality, as bidirectional filtering alone does not create the necessary intermediate structure.

How to eliminate wrong answers

Option A is wrong because merging both tables into one would create a flat, denormalized table that duplicates data and loses the relational structure, making it impossible to maintain separate granularities for students and classes. Option B is wrong because bidirectional cross-filtering can cause ambiguous filtering and performance issues in many-to-many scenarios, and it does not resolve the underlying cardinality mismatch without a bridge table. Option D is wrong because a single one-to-many relationship cannot represent a many-to-many relationship; it would force a one-to-many direction that incorrectly assumes each student belongs to only one class or vice versa.

83
MCQeasy

Refer to the exhibit. User2 wants to add a new user to the Finance workspace. Can User2 perform this action, and why?

A.Yes, because User2 is a Contributor.
B.Yes, because User2 is a Member.
C.No, because the Premium capacity does not allow adding users.
D.No, because only Admins can add users.
AnswerD

Workspace roles follow a permission hierarchy, and only the Admin role includes the ability to add, remove, or change the roles of other workspace members. Since User2 is not an Admin, they cannot add a new user regardless of which non-Admin role they hold. This is why the correct answer is 'No' — the action requires Admin privileges, which User2 does not possess.

Why this answer

The correct answer is D: No, because only Admins can add users. In the workspace roles model, adding or removing users (managing workspace access) is an Admin-only capability; Members and Contributors can work with content but cannot change membership. Therefore User2 cannot add a new user to the Finance workspace regardless of being a Member or Contributor.

Option A is wrong because the Contributor role does not include user management, and Option B is wrong because the Member role also lacks that permission. Option C is wrong because Premium capacity is unrelated to workspace user-addition rights; permissions are governed by workspace roles, not capacity SKU.

84
Multi-Selecthard

You are connecting to a large CSV file (10 GB) stored in Azure Blob Storage. You need to load the data into Power BI with optimal performance. Which THREE practices should you follow? (Choose three.)

Select 3 answers
A.Use Parquet format instead of CSV if possible.
B.Import all columns and use Power BI to hide unused ones.
C.Split the large CSV file into multiple smaller files in the same folder.
D.Filter rows in Power Query to remove unnecessary data early in the transformation.
E.Use the on-premises data gateway to connect to Azure Blob Storage.
AnswersA, C, D

Parquet is a columnar storage format with built-in compression and predicate pushdown, meaning Power Query can read only the specific columns and row groups required instead of scanning the entire 10 GB text file. This dramatically reduces the amount of I/O and memory consumed during the Data Refresh, and also preserves the schema and data types natively, eliminating costly type-inference and parsing steps. By shifting to Parquet, you effectively move the heavy lifting to the storage engine, which is far more efficient for analytical workloads.

Why this answer

Option A is correct because Parquet is a columnar, compressed format that Power BI can read far more efficiently than CSV, reducing file size and scan time for a 10 GB dataset. Option C is correct because splitting the large CSV into multiple smaller files in the same folder enables Power BI's parallel loading and folder-combine pattern, improving throughput versus reading one monolithic file. Option D is correct because applying row filters in Power Query early reduces the volume of data pulled into the model, lowering memory and refresh cost.

Option B is wrong because importing all columns then hiding them still loads every column into the model, wasting memory and bandwidth. Option E is wrong because the on-premises data gateway is only needed for on-premises data sources, not for a native cloud source like Azure Blob Storage.

Exam trap

The trap here is that candidates may think importing all columns and hiding them is harmless, but Power BI still loads the full data into memory, wasting resources; the correct approach is to remove unnecessary columns and rows early in Power Query.

85
MCQeasy

You are loading data from a SQL Server database into Power BI. You notice that the import takes a long time because the source table contains many rows. You only need a subset of rows based on a date filter. What should you do to improve performance?

A.Remove unnecessary columns in Power Query.
B.Use a SQL query with a WHERE clause in the Power Query Editor.
C.Load all data and then apply a filter in Power BI.
D.Enable incremental refresh on the dataset.
AnswerB

Writing a SQL query with a WHERE clause directly in Power Query Editor is the most efficient approach because it implements query folding—SQL Server executes the filter and returns only the rows that satisfy the predicate. This minimizes data transfer, avoids loading irrelevant rows into Power Query memory, and speeds up both the initial load and subsequent refreshes. When the source is a relational database, a native SQL query with a filtered result set is a best practice for row-level reduction at the source.

Why this answer

Using a SQL query with a WHERE clause in Power Query Editor pushes the date filter down to the SQL Server database, reducing the amount of data transferred over the network and imported into Power BI. This query folding technique leverages the database engine's indexing and processing power, which is far more efficient than filtering after import. By retrieving only the necessary rows upfront, you minimize both network latency and memory consumption in Power BI.

Exam trap

The trap here is that candidates often choose 'Remove unnecessary columns' (Option A) thinking it reduces data volume, but they overlook that row count reduction via query folding has a far greater impact on import performance than column reduction.

How to eliminate wrong answers

Option A is wrong because removing unnecessary columns in Power Query reduces the data width but does not address the root cause of slow import—the large number of rows being transferred from SQL Server. Option C is wrong because loading all data and then applying a filter in Power BI still requires the full dataset to be imported, which consumes network bandwidth and memory, defeating the purpose of performance improvement. Option D is wrong because incremental refresh is designed for scheduled data refreshes over time, not for optimizing the initial import of a single large table; it requires a date-range parameter and a supported data source, and does not reduce the initial load time.

86
Drag & Dropmedium

Drag and drop the steps to configure a scheduled refresh for a dataset in the Power BI service into the correct order.

Drag or tap steps into the slots.

Steps
Order
1Step 1
2Step 2
3Step 3
4Step 4

Why this order

Scheduled refresh is configured in the dataset settings, enabling automatic updates at specified intervals.

87
MCQeasy

You are preparing a Power BI dataset that will be used by report authors. The source data contains a column named 'CustomerName' with leading and trailing spaces. You need to remove these spaces in Power Query. Which transformation should you use?

A.Split Column
B.Replace Values
C.Clean
D.Trim
AnswerD

The Trim transformation removes all leading and trailing whitespace from text values. Applying it to CustomerName cleans the data without altering internal spaces, which is exactly what is needed. This transformation is available in the Power Query Editor under the Transform tab and is applied to the selected column.

Why this answer

The Trim transformation is specifically designed to remove leading and trailing whitespace from text values. It preserves internal spaces, ensuring names remain intact. Other transformations either target different issues or would alter the data incorrectly.

Using Trim is the standard and correct way to clean this column in Power Query.

Exam trap

The trap here is confusing Trim with Clean, where Clean removes non-printable characters but does not affect ordinary spaces.

88
MCQeasy

You are transforming data in Power Query. A column named 'SalesAmount' contains values as text with a dollar sign and thousands separator, e.g., "$1,234.56". You need to convert this column to a decimal number for analysis. What is the most efficient sequence of transformations?

A.Split the column by delimiter and keep the numeric part, then change data type.
B.Change data type to Decimal Number directly; Power Query will automatically clean the values.
C.Use Replace Values to remove '$' and ',', then change data type to Decimal Number.
D.Use Replace Values to remove '$' and ',' then change data type to Decimal.
AnswerC

Removing specific characters is a direct and efficient method; however, a more robust approach is to use Text.Select to keep only digits and the decimal point, but Replace Values is simplest given the known characters.

Why this answer

It explicitly removes both the dollar sign and the comma using Replace Values before changing the data type to Decimal Number, ensuring proper conversion without errors. Option A is inefficient; splitting the column is unnecessary when simple replacements work. Option B would fail because Power Query cannot automatically parse currency symbols and thousands separators from text when changing data type directly.

Option D appears similar but specifies 'Decimal' instead of 'Decimal Number', which is not a valid data type in Power Query, leading to an error or incorrect result.

Exam trap

The trap here is that candidates assume Power Query's automatic type detection or direct data type change can handle currency symbols and separators, but in reality, it requires explicit cleaning steps to avoid errors or incorrect conversions.

How to eliminate wrong answers

Option A is wrong because splitting the column by delimiter is an overly complex approach that introduces unnecessary steps and potential data loss; it is not the most efficient sequence. Option B is wrong because Power Query cannot automatically clean currency symbols and thousands separators when changing data type directly; it will either error or leave the column as text. Option D is wrong because it only removes the dollar sign but not the comma, so the thousands separator remains, causing the data type conversion to fail or produce incorrect results.

89
MCQhard

You manage a Power BI deployment that uses deployment pipelines. After promoting content from Development to Test, you notice that the Test workspace dataset uses a different data source than expected. What is the most likely reason?

A.The pipeline didn't deploy the dataset because it was already in Test.
B.The data source credentials were not applied during deployment.
C.The dataset parameters were not configured in the deployment pipeline rules.
D.The Test workspace has a separate dataset that was manually created.
AnswerC

Dataset parameters, such as server name or database name, can be overridden per stage using deployment pipeline rules. If no rule is configured for the relevant parameter, Test inherits the parameter values from Development, causing the dataset to keep pointing to the Dev data source. Creating a parameter rule that assigns the Test SQL server/database value for that parameter is the required fix. Without this rule, the pipeline will successfully deploy the dataset but still reference the wrong environment.

Why this answer

Deployment pipeline rules allow you to configure dataset parameters (such as data source paths) to differ between pipeline stages. If these rules are not set, the dataset retains the data source configuration from the source stage (Development), causing the Test workspace to use an unexpected data source. The pipeline deploys the dataset artifact, but without parameter overrides, the data source connection string remains unchanged.

Exam trap

The trap here is that candidates confuse data source credentials with data source parameters, assuming that credential issues cause the wrong data source to appear, when in fact parameters control the actual connection string, while credentials only handle authentication after the connection is established.

How to eliminate wrong answers

Option A is wrong because the deployment pipeline deploys datasets regardless of their presence in the target stage; it overwrites the existing dataset with the version from the source stage. Option B is wrong because data source credentials are not applied during deployment; credentials are managed separately in the target workspace after deployment, and their absence would cause a connection error, not a different data source. Option D is wrong because if a separate dataset were manually created in Test, the pipeline deployment would overwrite it with the dataset from Development, not preserve the manually created one.

90
MCQmedium

Your organization uses Microsoft Intune to manage devices. You need to ensure that Power BI reports can only be viewed on managed devices that are compliant with company policies. What should you configure?

A.Power BI Premium capacity setting 'Restrict access to mobile devices'.
B.Conditional Access policy in Microsoft Entra ID requiring device compliance.
C.Power BI tenant setting 'Require users to sign in with Microsoft Entra ID'.
D.Mobile app management (MAM) policy in Microsoft Intune.
AnswerB

A Conditional Access policy in Microsoft Entra ID is the correct mechanism to block Power BI from non-compliant devices. The policy can require a device to be marked as 'Compliant' by Microsoft Intune before allowing access; this evaluation happens at sign-in time using signals from Intune. For example, the grant control 'Require device to be marked as compliant' combined with the Power BI cloud app will deny access to devices that do not meet your organization's compliance policies. This is the standard and supported way to enforce device-based access control for Power BI.

Why this answer

The correct answer is B: a Conditional Access policy in Microsoft Entra ID requiring device compliance. Conditional Access is the mechanism that evaluates signals such as Intune device compliance state and enforces access controls, so a policy targeting the Power BI cloud app with a 'Require device to be marked as compliant' grant control ensures reports can only be viewed from managed, compliant devices. Option A is not a real Power BI Premium capacity setting for this purpose, and Power BI capacity settings do not enforce device compliance.

Option C only enforces Entra ID authentication for the tenant and does not check device compliance or management state. Option D, an Intune MAM policy, protects app data on mobile devices but does not gate access to Power BI reports based on device compliance.

91
MCQeasy

You have a column 'ProductID' that contains integers. You need to ensure that this column is used as a key in relationships. What data type should the column have?

A.Decimal Number.
B.Text.
C.Whole Number.
D.Binary.
AnswerC

Whole Number, which uses the 64-bit integer data type, is the optimal choice for a product ID key column. Integers provide exact, unambiguous equality comparison, allow the most efficient indexing and hashing, and compress extremely well in columnar storage, resulting in faster joins, filters, and relationships. Since the ProductID contains only integer values, Whole Number perfectly represents the domain without unnecessary conversion or storage overhead.

Why this answer

In Power BI, relationship keys must be of a data type that supports exact matching and efficient indexing. Whole Number (integer) is the optimal type for primary keys in relationships, as it ensures unique, non-decimal values that Power BI can use for fast lookups and joins without precision issues.

Exam trap

The trap here is that candidates may think Text is always acceptable for keys (since it can hold any value), but the question specifically tests the optimal data type for integer-based keys in Power BI relationships, where Whole Number is the correct and most efficient choice.

How to eliminate wrong answers

Option A is wrong because Decimal Number introduces floating-point precision issues that can cause relationship failures or unexpected mismatches when exact key matching is required. Option B is wrong because Text can be used as a key, but it is less efficient than Whole Number and not the recommended type for integer-based IDs; the question specifies the column contains integers, so Text would require unnecessary conversion. Option D is wrong because Binary is not a valid data type for relationship keys in Power BI; it is used for storing binary data like images and cannot participate in relationships.

92
MCQeasy

You have a Power BI dataset that refreshes daily from an on-premises SQL Server database. The refresh fails with an error 'The data source credentials cannot be used for the connection'. What is the most likely cause?

A.The on-premises gateway is not running.
B.The dataset is using DirectQuery and the connection string is incorrect.
C.The credentials stored in the gateway for the SQL Server have changed or expired.
D.The SQL Server is not accessible from the cloud.
AnswerC

The on-premises data gateway stores the SQL Server credentials that the Power BI service uses during refresh. If the SQL Server password was changed or the account expired, the gateway can no longer authenticate to the database, and the refresh fails with a 'The credentials stored in the gateway are invalid' error. Re-validating and updating the credentials in the gateway data source settings resolves this issue, making it the correct root cause.

Why this answer

The error 'The data source credentials cannot be used for the connection' specifically indicates that the credentials stored in the on-premises data gateway for the SQL Server data source have changed or expired. When a Power BI dataset refreshes from an on-premises SQL Server via a gateway, the gateway uses stored credentials to authenticate; if those credentials are no longer valid (e.g., password was rotated), the connection fails with this exact error.

Exam trap

The trap here is that candidates often confuse a credentials error with a connectivity error (like the gateway being offline or the server being unreachable), but the specific wording 'credentials cannot be used' points directly to authentication failure, not network or gateway availability.

How to eliminate wrong answers

Option A is wrong because if the on-premises gateway were not running, the error would typically be 'Unable to connect to the gateway' or 'Gateway not found', not a credentials-specific error. Option B is wrong because the dataset refreshes daily (implying Import mode, not DirectQuery), and even if it were DirectQuery, an incorrect connection string would produce a 'Cannot connect to server' or 'Login failed' error, not a credentials-specific error. Option D is wrong because if the SQL Server were not accessible from the cloud, the error would be a network-level timeout or 'Server not found', not a credentials-specific error; the gateway handles the cloud-to-on-premises connectivity, so the cloud does not directly access the SQL Server.

93
MCQmedium

You need to design a report that allows users to drill from a yearly sales summary to quarterly details, then to monthly details, while maintaining the ability to go back. Which visual interaction should you enable?

A.Bookmarks
B.Tooltips
C.Drill-down
D.Drillthrough
AnswerC

Drill-down is the native hierarchy navigation feature in Power BI visuals such as bar charts, column charts, line charts, and matrixes. When a visual has multiple fields in its axis or rows, the drill-down icons (double down arrow for next level, double up arrow for parent level) appear in the visual's upper-right corner, allowing users to expand one level at a time or return to a previous level with a back button. This behavior is specifically designed for hierarchical exploration, enabling users to start with a high-level summary and progressively drill to granular detail while staying within the same visual, exactly matching the report requirement.

Why this answer

Drill-down (option C) is correct because it lets users navigate a single visual's hierarchy from a yearly summary to quarterly and then monthly levels while preserving the ability to go back up the hierarchy. This matches the requirement of moving through levels of the same data rather than jumping to a separate page or filtering via saved states. Bookmarks (A) capture and restore view states but do not provide hierarchical level navigation.

Tooltips (B) show supplementary detail on hover and do not change the visual's level. Drillthrough (D) navigates to a separate detail page filtered by a selected value, not down a hierarchy within the same visual.

94
MCQhard

You are connecting to an Azure SQL database using DirectQuery. The database has a large table with millions of rows. Users need to see aggregated data quickly. What should you implement to improve query performance?

A.Create aggregations in Power BI on the large table.
B.Increase the memory limit of the Power BI Desktop.
C.Use a composite model with a smaller imported table.
D.Add indexes to the database table.
AnswerA

Aggregations reduce the amount of data queried from the source.

Why this answer

Creating aggregations in Power BI on the large table allows the DirectQuery model to pre-aggregate data at the source or in Power BI, reducing the volume of data queried and improving response times for aggregated results. This is a key performance optimization for DirectQuery models with large tables, as it avoids scanning millions of rows for every query.

Exam trap

The trap here is that candidates often confuse database-side optimizations (like indexes) with Power BI-side optimizations (like aggregations), leading them to choose Option D, but the question explicitly asks what you should implement in Power BI, not in the database.

How to eliminate wrong answers

Option B is wrong because increasing the memory limit of Power BI Desktop does not improve query performance against an Azure SQL database via DirectQuery; memory limits affect local processing, not the database query execution. Option C is wrong because using a composite model with a smaller imported table would break the DirectQuery requirement and introduce data freshness issues, as the imported table would need to be refreshed separately and may not reflect real-time data. Option D is wrong because adding indexes to the database table is a database-side optimization that can improve query performance, but it is not a Power BI implementation; the question asks what you should implement in Power BI, and indexes are managed by the database administrator, not within Power BI.

95
MCQeasy

You are importing data from a SQL Server database into Power BI. The source table has a column 'OrderDate' of type DATETIME. You want to filter data based on the date only, ignoring time. What is the most efficient approach?

A.Change the data type of the OrderDate column to 'Date' in Power Query.
B.Create a calculated column in DAX using DATEVALUE(OrderDate).
C.Create a new column in Power Query using Date.From(OrderDate).
D.Use the 'Split Column' feature in Power Query to separate date and time.
AnswerA

Changing the data type of the OrderDate column to 'Date' in Power Query is the most efficient solution because it performs the conversion directly on the existing column during data load, using Power Query's native type system. This eliminates the time portion without adding a new column or increasing model size, and it ensures the column is properly date-typed for all downstream reports. The statement about being less explicit is misleading; altering the data type is the standard approach when you need to discard the time component.

Why this answer

Changing the data type of the OrderDate column to 'Date' in Power Query is the most efficient approach. This modifies the existing column directly, avoiding the storage of an additional column and reducing memory usage. Unlike creating a new column with Date.From(), which keeps both the original datetime and the new date column, changing the data type is simpler and more memory-efficient.

Power Query transformations like changing data type are applied during data load, making them more performant than DAX calculated columns, which are computed after data is loaded.

Exam trap

The trap is that candidates often assume creating a new column with Date.From() in Power Query is equally efficient, but changing the data type of the existing column is more memory-efficient because it avoids storing an extra column.

How to eliminate wrong answers

Option A is wrong because changing the data type to 'Date' in Power Query modifies the source column permanently, which may lose time information needed for other analyses and requires reloading data if the original datetime is needed later. Option C is wrong because creating a new column in Power Query using Date.From(OrderDate) is functionally similar to Option A but adds an extra column, increasing data model size and processing overhead without performance benefit over a DAX calculated column. Option D is wrong because using 'Split Column' to separate date and time is inefficient and unnecessary, as it creates two columns and adds complexity, whereas a simple DAX calculated column achieves the same result with less overhead.

96
MCQmedium

You are reviewing the partition configuration for a Power BI Import model as shown in the exhibit. The table Sales is partitioned by year. You need to modify the model to improve incremental refresh performance. What change should you make?

A.Increase the number of partitions to monthly
B.Configure incremental refresh policy
C.Remove all partitions and load data as a single table
D.Change the storage mode to DirectQuery
AnswerB

Configuring an incremental refresh policy is the correct approach because it automatically creates and manages partitions based on a date range, typically using RangeStart and RangeEnd parameters. During each refresh, only the data that has changed or is new within the sliding window is processed, while historical partitions remain untouched, significantly reducing refresh time and resource consumption. This also enables query pruning in the Power BI service, as only relevant partitions are scanned when building visuals, making it the most efficient way to optimize refresh performance for large fact tables.

Why this answer

Configuring an incremental refresh policy (Option B) is the correct approach because it automatically manages partition creation and refresh for the Sales table based on a date/time column. This improves performance by refreshing only the most recent data (e.g., last 5 years) while keeping historical partitions unchanged, reducing refresh time and resource consumption compared to manual yearly partitions.

Exam trap

The trap here is that candidates may think increasing partition count (Option A) always improves performance, but in Power BI, too many partitions increase metadata overhead and refresh orchestration time, making incremental refresh policies the correct solution for efficient, automated partition management.

How to eliminate wrong answers

Option A is wrong because increasing partitions to monthly would create more granular partitions, which can actually degrade refresh performance due to overhead from managing many small partitions, and it does not address the need for incremental refresh logic. Option C is wrong because removing all partitions and loading data as a single table would force a full refresh of the entire Sales table every time, eliminating any performance gains from partitioning and incremental refresh. Option D is wrong because changing the storage mode to DirectQuery would bypass the Import model entirely, which is not an incremental refresh improvement and could introduce query performance issues due to live querying of the source.

97
MCQeasy

You need to create a date table in Power BI using DAX. Which function should you use to generate a continuous list of dates?

A.CALCULATE.
B.CALENDAR.
C.TODAY.
D.DATEVALUE.
AnswerB

CALENDAR is the correct DAX function because it explicitly returns a single-column table containing a continuous series of all dates from a specified start date to an end date, inclusive. This generated table can be used directly as a date table or extended with calculated columns for year, month, quarter, and other date attributes. It requires two date arguments, typically defined as DATE literals or scalar expressions that resolve to dates.

Why this answer

The CALENDAR function in DAX generates a single-column table of dates that starts from a specified start date and ends at a specified end date, creating a continuous list of all dates in that range. This is the correct function to use when you need to create a date table for time intelligence calculations in Power BI.

Exam trap

The trap here is that candidates confuse CALCULATE (a context modifier) with CALENDAR (a table generator) because of the similar spelling, or they mistakenly think TODAY or DATEVALUE can produce a range of dates when they only return single values.

How to eliminate wrong answers

Option A is wrong because CALCULATE is a filter modifier function used to evaluate an expression in a modified filter context, not to generate a list of dates. Option C is wrong because TODAY returns only the current date as a scalar value, not a continuous list of dates. Option D is wrong because DATEVALUE converts a date string into a date/time value, but it does not generate a range of dates.

98
Multi-Selecthard

Which TWO of the following are true about the Power BI composite model?

Select 2 answers
A.Composite models do not support many-to-many relationships.
B.All tables in a composite model must use the same storage mode.
C.A composite model can combine DirectQuery and Import tables.
D.Relationships can be created between tables from different source groups.
E.Calculated tables are not supported in composite models.
AnswersC, D

This is a key feature of composite models.

Why this answer

A composite model in Power BI allows mixing DirectQuery and Import tables within the same data model. This enables you to leverage the performance of in-memory Import storage for some tables while using DirectQuery to access large or real-time data sources without duplicating data.

Exam trap

The trap here is that candidates often assume composite models require uniform storage modes or cannot handle many-to-many relationships, but Power BI's composite model is designed to flexibly mix storage modes and supports many-to-many relationships through proper configuration.

99
Multi-Selecthard

Which THREE actions can help optimize a Power BI report's performance? (Select THREE.)

Select 3 answers
A.Use calculated columns instead of measures for complex aggregations.
B.Reduce the number of visuals on a single page.
C.Import all columns from source tables to avoid missing data.
D.Use aggregations in the data source (e.g., pre-summarize tables).
E.Disable cross-highlighting and cross-filtering where not needed.
AnswersB, D, E

Each visual on a Power BI page issues its own DAX query when the page loads. Rendering many visuals simultaneously consumes CPU, GPU, and memory, and also necessitates cross-visual interaction filters. Reducing the number of visuals per page lowers the number of parallel queries and the rendering workload, improving page load and interaction responsiveness. This is a classic report-level optimization enabled by better layout and navigation.

Why this answer

Option B is correct because each visual on a report page issues its own DAX queries against the dataset, so reducing the number of visuals per page lowers the number of concurrent queries and the rendering workload, improving report responsiveness. Option D is correct because pre-summarizing data in the source (for example, using SQL GROUP BY, views, or Power Query aggregation) reduces the volume of data loaded into the model and lets the engine scan smaller tables, which speeds up refresh and query execution. Option E is correct because cross-highlighting and cross-filtering force Power BI to re-query and re-render every affected visual whenever a selection is made; disabling them where interactivity isn't needed avoids that cascading query overhead.

Option A is not appropriate because calculated columns are computed at refresh time, stored in the model, and consume memory, whereas measures are evaluated at query time and are the recommended approach for complex aggregations. Option C is not appropriate because importing all columns bloats the model, increases memory usage, and slows refresh and queries; best practice is to import only the columns actually needed.

100
Multi-Selectmedium

You need to create a Power BI report that allows users to analyze sales data by multiple dimensions including date, product, and region. Which THREE features should you use to provide a good user experience?

Select 3 answers
A.Add slicers for date, product, and region.
B.Create bookmarks to switch between different report views.
C.Set up drill-through pages for detailed analysis.
D.Disable cross-filtering between visuals.
E.Use only default tooltips.
AnswersA, B, C

Slicers place interactive filter controls directly on the canvas for date, product, and region, letting users slice the same visuals across all three dimensions simultaneously. This satisfies the requirement to analyse sales data by multiple dimensions without duplicating pages or reports.

Why this answer

Option A is correct because slicers for date, product, and region let users interactively filter the report across all three required dimensions, providing direct control over the data shown. Option B is correct because bookmarks capture the current state of a report page—including filters, slicers, and visibility—allowing users to switch between predefined views without rebuilding selections. Option C is correct because drill-through pages let users right-click a data point and navigate to a detail page filtered to that specific context, enabling deeper analysis of sales by the selected dimension values.

Option D is not appropriate because disabling cross-filtering removes the interactive highlighting and filtering between visuals that improves exploratory analysis. Option E is not appropriate because relying only on default tooltips limits the contextual detail users can see on hover, reducing the overall user experience.

101
MCQeasy

You want to create a custom visual that is not available in the default Power BI visuals pane. What should you do?

A.Write the visual in Python and add it to the report.
B.Use the R script visual to create the visual.
C.Download the visual from AppSource and import it.
D.Create a custom visual using Power BI Desktop's built-in editor.
AnswerC

AppSource is Microsoft's official marketplace for Power BI custom visuals, where visuals are published as .pbiviz files after validation and, if certified, a thorough code review. Downloading an AppSource visual and importing it into Power BI Desktop adds a fully integrated custom visual to the visualizations pane, supporting data binding, formatting, tooltips, and report sharing. This is the correct way to obtain a visual that is not available in the built-in gallery, provided the visual is compatible with your Power BI version and tenant policy allows non-certified visuals if you choose one without certification.

Why this answer

Custom visuals can be imported from AppSource or a file. The option to get from AppSource is standard.

102
MCQeasy

You have a Power BI model with a fact table 'Sales' and a dimension table 'Product'. The Product table contains columns: ProductID, ProductName, Category, and Subcategory. You want to create a hierarchy for drill-down in reports: Category > Subcategory > ProductName. What is the correct way to define this hierarchy?

A.In Model view, right-click 'Category' > 'Create hierarchy', then add Subcategory and ProductName as levels.
B.In Power Query, merge the Category, Subcategory, and ProductName columns into one.
C.Create a calculated column using CONCATENATE to combine the levels.
D.In Report view, add all three columns to a visual's Values well.
AnswerA

This is the correct approach because a hierarchy created in Model view is a model-level object that explicitly defines parent-child relationships among the columns. Right-clicking Category and selecting 'Create hierarchy' places Category as the top level, after which you add Subcategory and ProductName as child levels, preserving each column's own granularity. A true hierarchy enables drill-down in visuals by expanding one level to the next, and it also supports functions like ISINSCOPE in DAX for level-aware calculations.

Why this answer

Power BI's Model view allows you to create a hierarchy by right-clicking a column (e.g., Category) and selecting 'Create hierarchy', then adding Subcategory and ProductName as child levels. This defines a natural drill-down path for visuals, enabling users to navigate from Category to Subcategory to ProductName without modifying the data model or using workarounds.

Exam trap

The trap here is that candidates often confuse flattening data (merging or concatenating) with creating a true hierarchy, leading them to choose options B or C, which break drill-down functionality.

How to eliminate wrong answers

Option B is wrong because merging columns in Power Query creates a single text field, destroying the individual column granularity and preventing proper drill-down behavior in visuals. Option C is wrong because a calculated column using CONCATENATE also flattens the hierarchy into a single string, losing the ability to drill down stepwise through distinct levels. Option D is wrong because adding all three columns to a visual's Values well does not create a hierarchy; it treats each column as a separate measure or axis, not a structured drill-down path.

103
MCQeasy

You have a Power BI report that shows sales by region. Users report that the map visual is not displaying data for some countries. What is the most likely cause?

A.The geographic data is not categorized correctly in the Data pane.
B.The report page filter is excluding those countries.
C.The map visual is limited to 30 data points.
D.The map visual only supports US addresses.
AnswerA

The Power BI Map visual relies on Bing Maps to geocode location values, and it can only do that if each geographic field has the correct Data Category set in the Column tools (e.g., Country, State, City). If the field is left as 'Uncategorized', Bing may interpret the values as text or fail to resolve them, so entire countries can be omitted. To fix this, select the field in the Fields pane, go to the Column tools tab, and set the Data Category accordingly. This is the most common reason a country that exists in your data does not appear on the map.

Why this answer

The most likely cause is that the geographic data is not categorized correctly in the Data pane. Power BI map visuals rely on the data category (e.g., Country, State, City) assigned to each field to correctly geocode and plot locations. If a field containing country names is left as 'Text' or 'Uncategorized', Power BI may fail to recognize the values as geographic entities, resulting in missing data points on the map.

Exam trap

The trap here is that candidates often assume a filter or data limit is the cause, but the core issue is the data category metadata, which is a subtle but critical setting in Power BI for map visuals.

How to eliminate wrong answers

Option B is wrong because a report page filter would affect all visuals on the page, not just the map, and users would typically notice missing data across the report, not solely on the map. Option C is wrong because the map visual (Bing Maps) does not have a hard limit of 30 data points; the limit applies to scatter charts and other visuals, not to map visuals. Option D is wrong because Power BI map visuals support addresses globally via Bing Maps geocoding, not just US addresses.

104
MCQeasy

You need to combine data from two tables in Power Query that have the same columns but different row sets. Which operation should you use?

A.Union Queries
B.Group By
C.Append Queries
D.Merge Queries
AnswerC

Append Queries is the correct operation. It stacks the rows from the second table beneath the rows from the first table, effectively performing a union of the data when both tables have the same columns.

Why this answer

Append Queries is the correct operation in Power Query when you need to combine two tables with identical columns but different row sets. It stacks the rows from the second table beneath the rows from the first table, effectively performing a union of the data. This is distinct from Merge Queries, which joins columns based on a key, and Group By, which aggregates data.

Exam trap

The trap here is that candidates confuse 'Merge Queries' (which adds columns) with 'Append Queries' (which adds rows), especially since the term 'Union' is commonly used in SQL but is not the exact Power Query operation name.

How to eliminate wrong answers

Option A is wrong because 'Union Queries' is not a native Power Query operation; the correct term is Append Queries, and while the concept is similar to a SQL UNION, the Power Query interface uses 'Append' to combine rows. Option B is wrong because Group By is used to aggregate rows based on a column, not to combine separate tables with the same schema. Option D is wrong because Merge Queries performs a join (like SQL JOIN) that adds columns from one table to another based on matching keys, not stacking rows.

105
Multi-Selectmedium

Which THREE of the following are best practices when preparing data in Power BI for optimal performance?

Select 3 answers
A.Merge all tables into a single table for simplicity.
B.Create calculated columns instead of measures when possible.
C.Set correct data types for all columns.
D.Remove unnecessary columns and rows during import.
E.Use query folding to push transformations to the data source.
AnswersC, D, E

Assigning correct data types (such as integer, decimal, and date) rather than generic text optimizes the compression algorithms in Power BI, leading to smaller model sizes and faster scan performance. It also ensures that DAX functions like SUM and DATE arithmetic behave predictably, and prevents implicit type conversions that can introduce errors or degrade performance.

Why this answer

Option C is correct because assigning the correct data types (for example, whole number, decimal, date/time, or text) to every column reduces memory usage in the VertiPaq engine, enables efficient compression, and prevents implicit conversions that slow down DAX calculations. Option D is correct because removing unnecessary columns and rows during import (ideally in Power Query before loading) shrinks the data model, lowers memory consumption, and speeds up refresh and query processing. Option E is correct because query folding translates Power Query transformations into native source queries (for example, SQL statements), letting the source database perform filtering, joins, and aggregations so less data is transferred and processed locally.

Option A is not a best practice because merging all tables into one wide table creates redundancy, bloats the model, and destroys the star-schema relationships that Power BI optimizes for. Option B is not a best practice because calculated columns are computed and stored during refresh, consuming memory and increasing model size, whereas measures are evaluated at query time and are generally preferred for aggregations.

Exam trap

The trap here is that candidates may think merging all tables simplifies the model (Option A) or that calculated columns are more efficient than measures (Option B), but Power BI's in-memory engine and query folding mechanics reward normalized star schemas and measure-based calculations for optimal performance.

106
MCQmedium

You are a Power BI administrator. A user reports they cannot publish a report to a shared workspace because they receive an error 'You need at least a Contributor role to publish to this workspace.' The user is a member of a security group that has been assigned the Viewer role on the workspace. What should you do to allow the user to publish?

A.Grant the user Read permission on the report in the workspace.
B.Add the user as a Contributor directly to the workspace, or change the security group role to Contributor.
C.Change the user's role to Viewer on the workspace and ask them to use the 'Publish to web' option.
D.Create a new workspace and add the user as a Member.
AnswerB

Publishing requires the Contributor role, which grants content creation and editing rights that Viewer lacks. Since the security group holds only Viewer, the user inherits insufficient permissions. Assigning Contributor directly, or elevating the group's role, satisfies the workspace role constraint and resolves the error.

Why this answer

The correct option is B: add the user as a Contributor directly to the workspace, or change the security group role to Contributor. In Power BI, publishing a report to a workspace requires at least the Contributor role, which grants content creation and editing permissions; the Viewer role only allows read-only access, so the user's current group-based Viewer role blocks publishing. Granting Contributor either directly or by elevating the group's role resolves the error.

Option A is insufficient because Read permission on an existing report does not grant publishing rights. Option C is wrong because Viewer plus 'Publish to web' is for public embedding, not workspace publishing. Option D is unnecessary and does not address the required role in the existing shared workspace.

107
MCQeasy

A data model has a table 'Orders' with columns: OrderID, CustomerID, OrderDate, Amount. There is a 'Customers' table with columns: CustomerID, CustomerName. To analyze orders by customer, what is the best practice for modeling the relationship?

A.Create a one-to-many relationship from Customers to Orders with single direction.
B.Create a one-to-one relationship between Customers and Orders based on CustomerID.
C.Create an inactive relationship and use USERELATIONSHIP in measures.
D.Create a many-to-one relationship from Orders to Customers with both directions.
AnswerA

This is the correct star schema design. The Customers table is a dimension with a unique CustomerID per row, while Orders is a fact table that can contain many rows per CustomerID. A one-to-many relationship from Customers to Orders lets filters applied to customers (e.g., region, segment) automatically propagate to their orders in visualizations and measures. The single cross-filter direction ensures one-way filtering from the dimension to the fact, which is the standard, repeatable pattern that avoids ambiguity and keeps DAX calculations predictable.

Why this answer

In a star schema, the Customers table (dimension) should have a one-to-many relationship to the Orders table (fact) filtered from the dimension side. This single-direction filter propagation ensures that when a customer is selected, only their orders are shown, while preventing unwanted cross-filtering from orders back to customers. This is the standard best practice for modeling dimension-to-fact relationships in Power BI.

Exam trap

The trap here is that candidates often confuse the direction of the relationship (thinking the fact table should be on the 'one' side) or overcomplicate the model by using inactive relationships or bidirectional filtering when a simple single-direction one-to-many is the correct and efficient choice.

How to eliminate wrong answers

Option B is wrong because a one-to-one relationship between Customers and Orders would require each CustomerID to appear only once in Orders, which is unrealistic for a transactional fact table where one customer can have many orders. Option C is wrong because an inactive relationship with USERELATIONSHIP is only used when you need multiple relationships between the same two tables (e.g., OrderDate and ShipDate), not for the primary dimension-to-fact relationship which should always be active. Option D is wrong because a many-to-one relationship from Orders to Customers with both directions would create ambiguous cross-filtering and potential performance issues; bidirectional filtering is reserved for specific scenarios like many-to-many relationships, not for standard star schema modeling.

108
Multi-Selecthard

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

Select 3 answers
A.Hide columns that are not needed in reports.
B.Avoid bi-directional cross-filtering unless necessary.
C.Use star schema design with dimension and fact tables.
D.Use many-to-many relationships directly without bridge tables.
E.Use calculated columns instead of measures for aggregations.
AnswersA, B, C

Marking unused columns as hidden simplifies the report field list and keeps users focused on the required metrics, which lowers the apparent model complexity and reduces the risk of building visuals on irrelevant data. Because hidden columns remain resident in the Tabular engine unless physically removed, this practice works hand-in-hand with deleting never-used columns to actually shrink the model and speed up refresh. It is a core modeling hygiene step that also makes column-level security and role definitions easier to audit.

Why this answer

Option A is correct because hiding unused columns reduces the model's exposed surface and prevents report authors from accidentally dragging unnecessary fields into visuals, which keeps the VertiPaq engine from scanning and materializing columns that add no analytical value. Option B is correct because bi-directional cross-filtering forces the engine to propagate filter context in both directions, which can create ambiguous filter paths, increase query complexity, and degrade performance; single-direction relationships should be the default unless a specific requirement demands otherwise. Option C is correct because a star schema with dimension and fact tables minimizes relationship hops, keeps filter propagation simple, and lets the VertiPaq engine compress and scan narrow fact tables efficiently, which is the recommended modeling pattern for Power BI performance.

Option D is not correct because many-to-many relationships without bridge tables introduce ambiguity and expensive filter propagation; the best practice is to resolve many-to-many with a bridge table and single-direction relationships. Option E is not correct because calculated columns are computed at refresh time and stored in the model, consuming memory and increasing refresh cost, whereas measures are evaluated at query time and are the preferred approach for aggregations in a performant model.

109
MCQmedium

You have a Power BI report connected to a dataset containing a table named Sales with columns OrderDate (date), ProductCategory (text), and SalesAmount (decimal). You create a report page with a line chart showing SalesAmount over OrderDate. Users want to quickly change the date granularity from daily to monthly and also switch between ProductCategory values without editing the report. The page currently has no slicers or filters. You need to add interactive controls that allow users to change the date hierarchy level and filter by product category. What should you do?

A.Add a parameter to the dataset that allows switching the date granularity and use a slicer for ProductCategory.
B.Add a date hierarchy to the line chart's X-axis and add a slicer for ProductCategory.
C.Add a hierarchy slicer containing OrderDate and ProductCategory, and place it on the page.
D.Add a page-level filter for ProductCategory and enable the line chart's zoom slider to change date granularity.
AnswerB

Placing OrderDate as a hierarchy on the X-axis lets users drill down or up between year, quarter, month, and day using the visual's drill controls. A slicer on ProductCategory provides an interactive filter. Together they satisfy the requirement without editing the report, and both are standard Power BI interactive features.

Why this answer

Using a date hierarchy on the axis enables drill up/down to change granularity, and a slicer on ProductCategory gives users an interactive filter. Both are native Power BI features that require no report editing by consumers. This combination directly addresses the need to switch date levels and filter by category.

Exam trap

The trap here is confusing a slicer or parameter with the drill functionality of a date hierarchy, which is the proper way to change granularity on a visual axis.

110
MCQmedium

You are a Power BI data analyst at a healthcare provider. Your semantic model contains a fact table named Visits with columns VisitID, PatientID, ProviderID, VisitDate, and ChargeAmount. You also have a dimension table named Patients with PatientID, PatientName, and PrimaryCareProviderID. You need to create a relationship between Visits and Patients so that filtering Patients by PrimaryCareProviderID correctly filters Visits. However, you discover that the Visits table has multiple rows per PatientID, and the Patients table has a unique PatientID. Which relationship should you create?

A.Create a many-to-many relationship between Visits[PatientID] and Patients[PatientID].
B.Create a many-to-one relationship from Visits[PatientID] (many side) to Patients[PatientID] (one side) and set the cross-filter direction to Both.
C.Create a one-to-many relationship from Visits[PatientID] (one side) to Patients[PatientID] (many side).
D.Create a one-to-many relationship from Patients[PatientID] (one side) to Visits[PatientID] (many side).
AnswerD

Because Patients[PatientID] is unique and Visits[PatientID] repeats, the correct cardinality is one-to-many from Patients to Visits. This relationship ensures that filtering Patients by PrimaryCareProviderID propagates to Visits, enabling accurate aggregation of ChargeAmount. It also avoids ambiguity and supports efficient query performance, as the one side acts as the lookup dimension.

Why this answer

The relationship must be one-to-many from Patients to Visits because Patients[PatientID] is unique and Visits[PatientID] has duplicates. This allows filters on Patients, such as PrimaryCareProviderID, to propagate to Visits and correctly aggregate ChargeAmount. A many-to-many or reversed cardinality would not enforce referential integrity and could yield incorrect results.

Exam trap

The trap here is assuming that because Visits has many rows per patient, the relationship must be many-to-many or bidirectional, overlooking that a simple one-to-many from the unique dimension table is sufficient.

111
MCQmedium

You have a Power BI model with a table named 'Orders' that contains columns: OrderID, CustomerID, OrderDate, and TotalAmount. You need to create a measure that calculates the total sales amount for orders placed in the last 30 days, but only for customers who have placed more than 5 orders in total. What is the most efficient DAX measure?

A.TotalSalesLast30Days = CALCULATE(SUM(Orders[TotalAmount]), FILTER(Orders, Orders[OrderDate] > TODAY() - 30), FILTER(Orders, CALCULATE(COUNTROWS(Orders), ALLEXCEPT(Orders, Orders[CustomerID])) > 5))
B.TotalSalesLast30Days = CALCULATE(SUM(Orders[TotalAmount]), KEEPFILTERS(Orders[OrderDate] > TODAY() - 30), KEEPFILTERS(CALCULATE(COUNTROWS(Orders), ALLEXCEPT(Orders, Orders[CustomerID])) > 5))
C.TotalSalesLast30Days = SUMX(FILTER(Orders, Orders[OrderDate] > TODAY() - 30 && CALCULATE(COUNTROWS(Orders), ALLEXCEPT(Orders, Orders[CustomerID])) > 5), Orders[TotalAmount])
D.TotalSalesLast30Days = CALCULATE(SUM(Orders[TotalAmount]), DATESINPERIOD(Orders[OrderDate], TODAY(), -30, DAY))
AnswerC

This is the correct answer because it uses a single SUMX iterator over a FILTERed table, where the filter expression evaluates both conditions in one row context. Inside the filter, `CALCULATE(COUNTROWS(Orders), ALLEXCEPT(Orders, Orders[CustomerID]))` correctly counts all rows for the same customer, avoiding any interference from the date filter on the outer row, and the AND ensures only customers with more than five orders and a recent order date are included. SUMX then sums the TotalAmount across those qualifying rows, directly matching the requirement while remaining efficient and maintainable.

Why this answer

It iterates over filtered rows where both conditions are met using a single FILTER and SUMX, which is syntactically valid and more efficient than multiple FILTER iterators. Option B is invalid because KEEPFILTERS expects a filter expression, not a scalar boolean result from CALCULATE(...) > 5.

Exam trap

The trap here is that candidates often choose Option B because they think KEEPFILTERS can wrap a scalar boolean condition such as CALCULATE(COUNTROWS(...)) > 5. That is invalid; KEEPFILTERS expects a filter expression, not a boolean scalar. The correct approach uses SUMX with a single FILTER to apply both row-level conditions efficiently.

How to eliminate wrong answers

Option A is wrong because it uses two separate FILTER iterators over the Orders table, which forces a nested row context and can lead to incorrect results due to context transition; the second FILTER attempts to evaluate a CALCULATE with ALLEXCEPT inside a row context, which may not correctly count orders per customer. Option C is wrong because SUMX with a FILTER that includes a CALCULATE inside the logical expression causes context transition for each row, leading to poor performance and potentially incorrect customer-level aggregation; it also applies the date filter row-by-row rather than as a filter argument. Option D is wrong because it only filters by date using DATESINPERIOD and completely omits the customer condition (more than 5 orders), so it does not meet the requirement.

112
MCQhard

A Power BI report uses a composite model combining Import and DirectQuery sources. When a user filters a visual, the report takes a long time to update. The admin wants to diagnose performance issues. Which tool should the admin use?

A.DAX Studio.
B.Performance Analyzer in Power BI Desktop.
C.Power BI activity log.
D.On-premises data gateway log.
AnswerB

Performance Analyzer in Power BI Desktop is the intended diagnostic tool because it records a chronological breakdown of operations for each visual, including DAX query time, visual display time, and other report-level processes. This lets you identify whether the slowdown comes from the composite model's query engine when combining imported and DirectQuery tables or from rendering. The results can be exported to JSON for further investigation, making it the definitive answer for visual-level performance analysis.

Why this answer

The correct option is B, Performance Analyzer in Power BI Desktop, because it captures per-visual query timings and DAX query durations as the user interacts with the report, letting the admin pinpoint which visual or filter is slow in a composite model. It records each visual's rendering and query events, so the admin can see whether the delay comes from the Import or DirectQuery portion. DAX Studio (A) is useful for tuning individual DAX queries but does not profile the report's visual-by-visual interaction flow.

The Power BI activity log (C) tracks usage and audit events, not query performance per visual, and the on-premises data gateway log (D) only covers gateway traffic for DirectQuery/refresh, not the full report rendering path.

113
Multi-Selecteasy

Which TWO are valid ways to combine data from multiple sources in Power Query? (Choose two.)

Select 2 answers
A.Pivot Column.
B.Append Queries.
C.Create relationships in the data model.
D.Merge Queries.
E.Group By.
AnswersB, D

Append Queries combines multiple tables by vertically stacking all rows from each input into a single resultant table, which is essential when consolidating datasets that share a common schema—like monthly sales exports from different regions. It aligns columns by name and fills missing values with null for any mismatched columns, making it a true row-level combination method. This is one of the two valid ways to physically combine data in Power Query.

Why this answer

Append Queries (B) is correct because it stacks rows from two or more tables with matching or similar columns into a single table, which is the standard Power Query way to combine data vertically from multiple sources. Merge Queries (D) is correct because it joins two tables horizontally on one or more matching key columns, equivalent to a SQL JOIN, allowing data from multiple sources to be combined side by side. Pivot Column (A) is not a combining operation; it reshapes existing values in a single table from rows into columns.

Create relationships in the data model (C) links tables for analysis in Power Pivot/DAX but does not itself combine or transform data within Power Query. Group By (E) aggregates rows within a single table (e.g., sum, count) and does not combine data from multiple sources.

Exam trap

The trap here is that candidates often confuse 'combining data from multiple sources' with 'creating relationships in the data model,' which is a separate step performed after data loading, not a Power Query transformation.

114
MCQmedium

You are designing a Power BI report for a sales team. They need to see their individual performance compared to team averages. You have a table with columns: Salesperson, Region, SalesAmount. Which visual best allows each salesperson to see their own value alongside the average?

A.Clustered bar chart with a measure for average
B.Waterfall chart
C.Table with conditional formatting
D.Combo chart (clustered column and line) with salesperson bars and average line
AnswerD

A combo chart with clustered columns and a line is ideal because Power BI's Analytics pane allows adding an average line directly to the line component, or you can create a constant line measure for the Y-axis. Each salesperson's revenue is represented as a discrete column, while the continuous average line runs horizontally across all categories, making above/below status obvious. The dual structure aligns the column heights with the line's position, giving a clear, unambiguous comparison that bar, waterfall, and table visuals cannot achieve.

Why this answer

The combo chart (clustered column and line) with salesperson bars and average line is correct because it plots each salesperson's SalesAmount as a column while overlaying the team average as a line on the same axis, enabling direct individual-versus-average comparison. This dual-axis visual is the standard Power BI approach for comparing categorical values against a reference measure. A clustered bar chart with an average measure would show the average as another bar per salesperson rather than a single team reference, which is misleading.

A waterfall chart shows cumulative contributions or changes, not comparisons to an average. A table with conditional formatting can display numbers and color scales but does not visually juxtapose each value against the average as clearly as a combo chart.

115
MCQhard

Your Power BI dataset uses a SQL view that joins multiple tables. You notice that some columns have null values where you expect data. You suspect the view definition has a bug. How can you verify the view's output in Power Query?

A.Check the 'Table Preview' in the data model
B.Create a new query that runs the view's SQL directly against the source
C.Use 'View Native Query' in Power Query
D.Use 'Data Profiling' in Power Query
AnswerB

By creating a new Power Query query that executes the view's SQL statement directly against the source database, you bypass any existing transformations and fetch the exact rows and columns the view returns. This gives you an independent, unfiltered look at the view's output, allowing you to compare it against what the dataset actually uses. This is the only method listed that reliably exposes the raw view result set.

Why this answer

Creating a new query that runs the view's SQL directly against the source in Power Query allows you to isolate and execute the exact SQL statement, bypassing any transformations or folding issues. This lets you compare the raw output from the source with the view's expected results, directly verifying if the view definition itself contains a bug. It is the most straightforward method to confirm whether the null values originate from the view or from subsequent Power Query steps.

Exam trap

The trap here is that candidates confuse 'View Native Query' (which shows the folded query after transformations) with the ability to run the original view SQL directly, leading them to choose option C instead of B.

How to eliminate wrong answers

Option A is wrong because the 'Table Preview' in the data model shows data after all Power Query transformations have been applied, not the raw output of the SQL view; it cannot isolate the view's definition from subsequent data shaping steps. Option C is wrong because 'View Native Query' in Power Query displays the query that Power Query sends to the source after folding, which may include transformations and not the original view SQL; it does not let you run the view's SQL independently to verify its output. Option D is wrong because 'Data Profiling' in Power Query provides statistics like column quality and distribution, but it does not show the raw SQL output or allow you to execute the view's SQL directly to identify bugs in the view definition.

116
Multi-Selecthard

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

Select 3 answers
A.Remove unnecessary columns and rows during the import process.
B.Split a large fact table into multiple smaller fact tables.
C.Set data types correctly in Power Query to avoid type detection overhead.
D.Use DirectQuery mode instead of Import mode to reduce data load time.
E.Use query folding to push transformations to the source database.
AnswersA, C, E

Reducing data volume improves load time.

Why this answer

Removing unnecessary columns and rows during the import process reduces the amount of data loaded into the Power BI data model, which directly decreases memory usage and refresh time. By filtering out irrelevant data early in Power Query, you minimize the data volume that must be processed and stored, leading to faster load performance.

Exam trap

The trap here is that candidates may confuse 'splitting tables' (Option B) with star schema design best practices, but splitting a fact table unnecessarily violates dimensional modeling principles and harms performance, whereas proper star schema involves splitting dimensions from facts, not splitting facts themselves.

117
MCQhard

Refer to the exhibit. A user is a member of both 'HRManager' and 'Executive' RLS roles. The dataset uses DirectQuery. When the user views a report showing all employees, what data will they see?

A.All rows in the Employees table.
B.Only rows where Department is both 'HR' and 'Executive' (intersection).
C.No rows because roles conflict.
D.Rows where Department is 'HR' or 'Executive' (union).
AnswerD

The user effectively sees rows where Department = 'HR' OR Department = 'Executive'. Because the HR Manager role allows HR records and the Executive role allows Executive records, membership in both grants access to the union of those two sets. This is the expected additive behavior of multiple RLS roles in Power BI, where each role adds its permitted rows to the user's overall view.

Why this answer

The correct answer is D: rows where Department is 'HR' or 'Executive' (union). In Power BI row-level security, when a user belongs to multiple roles, the role filters are combined with OR logic, so the user sees the union of the rows permitted by each role. This behavior applies regardless of whether the dataset uses DirectQuery or Import mode, since RLS role membership is evaluated per user at query time.

Options A, B, and C are incorrect because RLS does not grant all rows, does not intersect multiple role filters, and does not produce an empty result due to role conflicts.

118
MCQeasy

You are preparing data for a Power BI report. The source data contains a column with values like '1,234.56' formatted as text. You need to convert this to a numeric value for calculations. What is the best approach?

A.In Power Query Editor, split the column by comma and then use the second part.
B.In DAX, create a calculated column using VALUE() after removing commas.
C.In Power Query Editor, replace the comma with an empty string, then change the data type to Decimal Number.
D.In Power Query Editor, use the 'Clean' transform to remove non-numeric characters.
AnswerC

The comma is a thousands separator, not a decimal point, so removing it yields a clean numeric string that Power Query can cast to Decimal Number. Direct type conversion would fail or produce errors on the comma-formatted text.

Why this answer

Power Query Editor provides the most efficient and scalable method for cleaning and converting text-based numeric data. By replacing the comma with an empty string and then changing the column data type to Decimal Number, you perform the transformation directly in the data preparation layer (M language), which is optimized for performance and avoids the overhead of DAX calculated columns. This approach also ensures the data remains clean for all downstream calculations.

Exam trap

Microsoft often tests the misconception that the 'Clean' transform removes all non-numeric characters, but in reality it only removes non-printable control characters, not punctuation like commas or periods.

How to eliminate wrong answers

Option A is wrong because splitting the column by comma would separate the thousands separator from the number, leaving only the decimal part (e.g., '1' and '234.56'), which loses the integer portion and corrupts the value. Option B is wrong because using DAX with VALUE() after removing commas requires a calculated column that is evaluated row-by-row in the data model, which is less efficient than performing the transformation in Power Query and can lead to performance issues with large datasets. Option D is wrong because the 'Clean' transform in Power Query removes non-printable characters (like tabs and line breaks), not punctuation such as commas, so it would not remove the thousands separator and would leave the text value unchanged.

119
MCQeasy

You have a table with a column 'Date' and a measure 'Total Sales'. You want to calculate the cumulative total of sales over time. Which DAX function should you use?

A.SUM(Sales[Amount])
B.DATESYTD('Date'[Date])
C.CALCULATE(SUM(Sales[Amount]), ALL(Sales))
D.TOTALYTD(SUM(Sales[Amount]), 'Date'[Date])
AnswerD

TOTALYTD(SUM(Sales[Amount]), 'Date'[Date]) is the correct time intelligence function because it evaluates the sum of Amount for dates from the start of the year up to the last date in the current filter context. It respects the Date table's continuous date range and requires a proper relationship between the Date and Sales tables. This yields a cumulative year-to-date total that updates dynamically as the user browses different dates.

Why this answer

TOTALYTD(SUM(Sales[Amount]), 'Date'[Date]) is correct because it is a time-intelligence function that evaluates the sum expression over the year-to-date period ending at the latest date in the current filter context, producing a cumulative total over time. It takes the aggregation and a date column as arguments and automatically applies the necessary date filtering. SUM(Sales[Amount]) alone returns only the total for the current context, not a cumulative value.

DATESYTD returns a table of dates rather than a scalar cumulative total, and CALCULATE(SUM(Sales[Amount]), ALL(Sales)) removes filters to give a grand total, not a running cumulative total.

120
MCQeasy

Your organization uses Microsoft Purview to catalog Power BI assets. You need to ensure that all published reports and dashboards are automatically scanned and added to the catalog. What should you do?

A.Register the Power BI tenant as a data source in Microsoft Purview.
B.Enable 'Allow Azure Active Directory authentication' in the Power BI admin portal.
C.Apply sensitivity labels to all assets.
D.Create a new workspace in Power BI and assign the catalog admin role.
AnswerA

Registering the Power BI tenant as a data source in Microsoft Purview is the essential first step because it establishes a connection from Purview Data Map to your organization's Power BI environment. Once registered, Purview automatically scans and catalogs metadata from all workspaces, datasets, dataflows, reports, and dashboards without requiring manual asset entry. This registration typically requires a Power BI administrator role so Purview can authenticate and retrieve the metadata.

Why this answer

The correct option is A: register the Power BI tenant as a data source in Microsoft Purview. Microsoft Purview scans and catalogs Power BI assets (reports, dashboards, datasets, dataflows) only after the Power BI tenant is registered as a data source and a scan is configured, which uses the Power BI Admin API and requires tenant-level read-only admin permissions. Option B is unrelated: enabling Azure AD authentication in the Power BI admin portal does not trigger Purview scanning or cataloging.

Option C, applying sensitivity labels, governs data protection and classification but does not populate the Purview catalog with Power BI assets. Option D is incorrect because creating a workspace and assigning a catalog admin role does not register the tenant or initiate scanning of published reports and dashboards.

121
MCQhard

You are reviewing a Power BI data source configuration JSON. The exhibit shows a data source definition. What is the privacy level setting for the data source 'SalesData'?

A.Organizational
B.Private
C.None
D.Public
AnswerB

The JSON explicitly declares "privacyLevel": "Private", so the correct answer is Private. This level tells Power Query that the source contains sensitive or confidential data, causing it to partition and rewrite queries so that no rows or columns from this source are mixed into other data sources without permission. It is the most restrictive privacy level and exactly matches the token present in the configuration file, making it the only factually defensible choice.

Why this answer

The privacy level setting for the data source 'SalesData' is 'Private' because the JSON snippet shows the property "privacyLevel":"Private". In Power BI, the Private privacy level restricts data from being combined with data from other sources, ensuring that sensitive data is not inadvertently shared across queries. This setting is explicitly defined in the data source configuration and is not Organizational, None, or Public.

Exam trap

The trap here is that candidates may confuse the 'Private' privacy level with the 'Organizational' level, thinking that data within the same organization is automatically safe to combine, but the JSON explicitly shows 'Private', which is the most restrictive setting.

How to eliminate wrong answers

Option A is wrong because 'Organizational' is a valid privacy level in Power BI that allows data to be combined with other Organizational data sources, but the JSON explicitly shows 'Private', not 'Organizational'. Option C is wrong because 'None' is not a valid privacy level in Power BI; the valid levels are Private, Organizational, and Public. Option D is wrong because 'Public' is a valid privacy level that allows data to be combined with any other data source, but the JSON explicitly shows 'Private', not 'Public'.

122
MCQeasy

You are a Power BI administrator. A user in the Sales department needs to create reports using a shared dataset, but should not be able to modify the dataset or share it with others. What is the minimum permission level you should assign to the user on the dataset?

A.Reshare
B.Build
C.Write
D.Read
AnswerB

Build permission specifically grants the right to connect to the dataset as a source for new reports and to create new visualizations in the Power BI service or Power BI Desktop. It is the minimal permission because it satisfies the user's need to author new sales reports without exposing write capabilities or allowing resharing. With Build, the user can create and save new reports, but cannot modify the dataset or grant access to others.

Why this answer

The correct option is B, Build, because the Build permission on a shared dataset allows a user to create new reports and content based on that dataset without granting rights to edit the dataset itself or reshare it. This matches the requirement of report creation with no dataset modification or sharing capability. Reshare (A) would allow the user to share the dataset with others, which is explicitly prohibited.

Write (C) grants broader editing rights over the dataset, and Read (D) only permits viewing existing content, not authoring new reports from the dataset.

Exam trap

A common trap is to select Read, thinking it's sufficient for report creation, but Read only allows viewing, not building. Build is the minimum permission needed.

123
Multi-Selecthard

Which THREE factors should you consider when choosing between Import and DirectQuery storage modes? (Choose three.)

Select 3 answers
A.User license type (Pro vs Premium).
B.Report interactivity and performance needs.
C.Report color scheme and branding.
D.Data volume and size limits.
E.Data refresh frequency and latency requirements.
AnswersB, D, E

Report interactivity and performance needs are critical because Import mode pre-loads data into memory via VertiPaq, enabling sub-second slicer and cross-filter responses. DirectQuery issues live queries to the source system, so performance depends on the source database's load, indexing, and connectivity speed, which can cause visible delays. For highly interactive dashboards, import or a composite model with aggregated import tables is usually superior.

Why this answer

Option B is correct because Import mode loads data into the in-memory VertiPaq engine and typically delivers the fastest query performance and richest interactivity, while DirectQuery pushes queries to the source and can introduce latency, so the report's interactivity and performance needs directly drive the choice. Option D is correct because Import is bounded by dataset size limits (for example, 1 GB per dataset on Shared/Pro capacity, up to 400 GB on Premium/Fabric capacities) and memory, whereas DirectQuery has no such dataset size limit since data stays at the source, making data volume a key factor. Option E is correct because Import requires scheduled refreshes (up to 8 per day on Pro, 48 on Premium) and only shows data as of the last refresh, while DirectQuery reflects source changes in near real time, so refresh frequency and latency requirements are decisive.

Option A is not a storage-mode factor because the Pro vs Premium license affects capacity features and refresh limits rather than the fundamental Import vs DirectQuery decision. Option C is irrelevant because color scheme and branding are purely visual design choices unrelated to how data is stored or queried.

Exam trap

The trap here is that candidates confuse licensing constraints (Pro vs Premium) with storage mode capabilities, when in fact both modes are available regardless of license, though Premium offers higher Import size limits and additional features like automatic page refresh for DirectQuery.

124
Multi-Selecthard

Which THREE considerations are important when designing a dashboard for executive stakeholders?

Select 3 answers
A.Focus on key performance indicators (KPIs) that align with business goals.
B.Use consistent colors and fonts to maintain a professional look.
C.Provide high-level summaries with the ability to drill down if needed.
D.Include as many interactive slicers as possible for flexibility.
E.Use detailed tables to show all underlying data.
AnswersA, B, C

A Power BI KPI visual compares a DAX measure against a defined goal (e.g., a target value in a separate measures table), giving executives an instant signal of whether strategic objectives are on track. Because every visual on an executive dashboard competes for attention, choosing only KPIs that tie directly to business goals ensures the dashboard drives decisions rather than merely displaying data. This avoids the trap of including vanity metrics that look interesting but are not actionable in the context of the company's strategy.

Why this answer

Option A is correct because executive dashboards must center on KPIs tied directly to strategic business objectives, so leadership can immediately gauge organizational performance against goals rather than sifting through operational noise. Option B is correct because consistent colors and fonts reduce cognitive load and reinforce a credible, professional presentation, which matters when executives make rapid decisions from visual cues. Option C is correct because executives need high-level summaries first, with drill-down capability available on demand, balancing at-a-glance insight with the ability to investigate anomalies.

Option D does not belong because excessive interactive slicers add complexity and clutter, slowing comprehension rather than aiding executive decision-making. Option E does not belong because detailed tables of all underlying data overwhelm a strategic audience and belong in operational or analyst-level reports, not executive dashboards.

125
Multi-Selecteasy

Which TWO of the following are valid DAX functions for time intelligence? (Select two.)

Select 2 answers
A.RANKX
B.DATEADD
C.CONCATENATEX
D.MINX
E.TOTALYTD
AnswersB, E

DATEADD shifts a date column by a specified interval, returning dates offset by days, months, quarters or years. It is a genuine time-intelligence function, satisfying the stem because it operates on dates rather than aggregating values like SUM or COUNT.

Why this answer

DATEADD is a valid DAX time intelligence function that shifts dates forward or backward by a specified number of intervals (days, months, quarters, years). TOTALYTD is also a valid time intelligence function that calculates the year-to-date value of an expression. Both are part of the dedicated time intelligence function set in DAX, which requires a properly marked date table with continuous dates.

Exam trap

Microsoft often tests the distinction between iterator functions (like RANKX, MINX, CONCATENATEX) and dedicated time intelligence functions (like DATEADD, TOTALYTD), causing candidates to confuse functions that perform row-by-row operations with those that manipulate date ranges.

126
MCQhard

You are reviewing a Power BI dataset schema. The Date column is used in time intelligence measures. What is missing from this schema?

A.There is no separate date table marked as a date table.
B.The version should be 2.0.
C.The Amount column should be a decimal.
D.The data type for Date should be date instead of dateTime.
AnswerA

Time intelligence DAX functions, such as TOTALYTD and SAMEPERIODLASTYEAR, require a separate date table that has been marked as a date table in the model. This explicitly signals to Power BI which column holds the continuous date range, enabling proper year, quarter, month, and day filtering. Without this designated date table, time intelligence calculations will not function correctly, regardless of other model settings.

Why this answer

The correct answer is A: there is no separate date table marked as a date table. Time intelligence functions in DAX (such as TOTALYTD, SAMEPERIODLASTYEAR, and DATEADD) require a dedicated date table that is marked as a date table and has a continuous, unbroken range of dates at the day level, which a transactional fact table's Date column cannot reliably provide. Without this marked date table, the time intelligence measures will either fail or return incorrect results.

Option B is irrelevant because the schema version number has no bearing on time intelligence functionality. Option C is incorrect because the Amount column's data type does not affect time intelligence calculations. Option D is incorrect because changing the Date column's data type from dateTime to date does not satisfy the requirement for a separate, marked date table.

127
MCQhard

You are building a Power BI report for a multinational corporation. The data model includes a fact table named Orders with columns: OrderID, CustomerID, OrderDate, ProductID, Quantity, UnitPrice, and Discount. The Customer dimension contains columns: CustomerID, CustomerName, Country, and Segment. The Product dimension contains: ProductID, ProductName, Category, Subcategory, and Price. You need to create a calculated column in the Orders table that calculates the net amount after discount for each order line (Quantity * UnitPrice * (1 - Discount)). You also need to ensure that the column is stored in the model for high-performance filtering. Which DAX expression should you use?

A.NetAmount = SUMX(Orders, Orders[Quantity] * Orders[UnitPrice] * (1 - Orders[Discount]))
B.NetAmount = Orders[Quantity] * Orders[UnitPrice] * (1 - Orders[Discount])
C.NetAmount = CALCULATE(SUM(Orders[Quantity]) * SUM(Orders[UnitPrice]) * (1 - SUM(Orders[Discount])))
D.NetAmount = Orders[Quantity] * Orders[UnitPrice] - Orders[Discount]
AnswerB

This is the correct calculated column expression because it uses direct column references in row context, so for each order row it computes Quantity multiplied by UnitPrice, then multiplies by (1 - Discount) to apply the discount proportionally. The calculation respects the percentage nature of the discount and yields the net amount for that individual line item. The result is evaluated row by row and stored physically in the table, making it available for use as a column in reports.

Why this answer

Option B is correct because a calculated column in the Orders table must use row context, and the expression Orders[Quantity] * Orders[UnitPrice] * (1 - Orders[Discount]) evaluates row by row and is stored in the model for high-performance filtering. Option A is wrong because SUMX is an iterator that returns a scalar aggregate, not a row-level calculated column, and it would not produce a per-order-line value. Option C is wrong because CALCULATE with SUM aggregates the entire table and also misapplies the discount logic, rather than computing each row's net amount.

Option D is wrong because it subtracts the discount value directly instead of applying the percentage discount to Quantity * UnitPrice.

128
MCQmedium

You are building a star schema model in Power BI. You have a fact table of sales transactions and dimension tables for Date, Customer, Product, and Store. The Date table contains a column 'FiscalYear' that you want to use for time intelligence calculations. What is the best practice for handling the Date relationship?

A.Create a separate fiscal date table and relate it to the fact table using the FiscalYear column.
B.Use the built-in DATESYTD function directly on the OrderDate column from the fact table.
C.Create a composite key using FiscalYear and Quarter columns in the Date table and relate to the fact table.
D.Mark the Date table as a date table using the Calendar icon in the Table tools ribbon and set a relationship on the Date column.
AnswerD

Marking the Date table as a date table using the Calendar icon in the Table tools ribbon is the correct approach because it explicitly identifies the Date column as the continuous set of dates that Power BI uses to enable time intelligence functions like DATESYTD, TOTALYTD, and SAMEPERIODLASTYEAR. Setting a relationship on the Date column—which is unique and contiguous—ensures proper filtering from the date dimension to the fact table, following the star schema design principle. This allows DAX calculations to correctly respect the user's selected date range and fiscal calendar, making it the only option that fully supports robust time-based reporting.

Why this answer

Marking the Date table as a date table (via the Calendar icon in Table tools) and creating a relationship on the Date column is the best practice for time intelligence in Power BI. This ensures that DAX time intelligence functions (e.g., TOTALYTD, SAMEPERIODLASTYEAR) work correctly by using a single, continuous date column that aligns with the fact table's date column. It also avoids the need for composite keys or separate fiscal tables, maintaining a clean star schema.

Exam trap

The trap here is that candidates often think they need a separate fiscal table or composite keys to handle fiscal years, but Power BI's date table marking feature inherently supports fiscal calendars through the 'Mark as Date Table' option and the 'Start of Fiscal Year' setting, making those workarounds unnecessary and incorrect.

How to eliminate wrong answers

Option A is wrong because creating a separate fiscal date table related via FiscalYear would break the star schema's simplicity and prevent proper time intelligence, as DAX functions require a continuous date column, not a fiscal year column. Option B is wrong because DATESYTD requires a date column from a properly marked date table, not a direct call on a fact table column, and it would ignore the fiscal year context. Option C is wrong because a composite key using FiscalYear and Quarter would not provide a continuous date range for time intelligence, and Power BI relationships should be on a single, unique column (typically the date) to avoid ambiguity and support proper filtering.

129
MCQeasy

You have a Power BI report that includes a line chart showing monthly sales. You want to add a trend line to help users identify the overall direction of sales over time. Which feature should you use?

A.Forecast option in the visual
B.Add a DAX measure for linear regression
C.Format pane to change line style
D.Analytics pane in the visual
AnswerD

The Analytics pane adds trend lines, forecasting, and other statistical overlays to an existing visual. For a line chart of monthly sales, it inserts the trend line directly, showing overall direction without altering the underlying data model.

Why this answer

The Analytics pane in the visual (option D) is the correct feature because Power BI provides built-in trend line support there; selecting the visual, opening the Analytics pane, and adding a Trend line overlays a linear regression line on the line chart to show the overall direction of sales over time. The Forecast option (option A) is also in the Analytics pane but is designed to project future values using exponential smoothing, not to display a historical trend line. Writing a DAX measure for linear regression (option B) is unnecessary and more complex since Power BI already offers a native trend line, and the Format pane (option C) only changes cosmetic line styling such as color, width, or dash type, not the trend calculation.

Exam trap

A common trap is confusing the Forecast option with the Trend line option. Both are in the Analytics pane, but they serve different purposes: Forecast predicts future values, while Trend line shows the general direction of existing data.

130
Multi-Selecteasy

Which TWO of the following are valid database data source types for Power BI?

Select 2 answers
A.Azure SQL Database
B.SharePoint Online List
C.JSON file
D.MongoDB
E.Oracle database
AnswersA, E

Azure SQL Database is a first-party relational database service in Microsoft Azure with a native Power BI connector. It supports both Import mode and DirectQuery mode through the SQL Server or Azure SQL Database connector, and it authenticates with SQL credentials or Azure Active Directory. Because it is an officially maintained connector, it qualifies as a valid data source type in Power BI.

Why this answer

Azure SQL Database (A) is a valid Power BI data source because Power BI Desktop and the Power BI service include a native Azure SQL Database connector that uses the SQL protocol/TDS to query it directly. Oracle database (E) is also valid because Power BI ships with a dedicated Oracle connector (requiring the Oracle Data Provider for .NET, ODP.NET) to import or use DirectQuery against Oracle. SharePoint Online List (B) is not a database data source type—it is a cloud list service accessed via the SharePoint Online List connector, not a database.

JSON file (C) is a flat/semi-structured file source consumed through the JSON connector, not a database. MongoDB (D) is a NoSQL document store and is not one of Power BI's built-in database connectors (it would require an ODBC driver or third-party tool), so it is not a valid database data source type here.

Exam trap

Candidates may incorrectly assume that SharePoint Online List is a valid data source type due to its frequent use, but in the context of this question, only database types like Azure SQL and Oracle are considered. They also confuse file formats (JSON) and non-native connectors (MongoDB) with officially listed source types.

131
MCQeasy

You are a Power BI administrator. You need to prevent users from exporting underlying data from reports. Which tenant setting should you disable?

A.'Export data'
B.'Export reports as PowerPoint presentations'
C.'Export reports as PDF files'
D.'Export reports as MHTML files'
AnswerA

'Export data' in the Power BI admin tenant settings controls whether users can extract the underlying dataset from a visual, such as copying values to the clipboard, downloading a .csv file, or exporting summary data to Excel. This is the only option listed that reveals the actual numbers and granular row-level or aggregated fields behind a report. Disabling this setting prevents raw data extraction through the service, though visual snapshots in other export formats may still leak information visually.

Why this answer

'Export data' controls the ability to export underlying data. Option B is wrong because 'Export reports as PowerPoint' is for exporting the report itself. Option C is wrong because 'Export reports as PDF' is for static exports.

Option D is wrong because 'Export reports as MHTML' is also for report export.

132
MCQhard

You are designing a Power BI semantic model for a retail company. The model includes a Sales table (50 million rows) and a Product table (10,000 rows). You need to create a measure that calculates the average sales amount per product category. The Product table has a column 'Category' with 20 distinct values. To optimize performance, what should you do?

A.Add a calculated column to Sales that looks up the category using RELATED.
B.Summarize the Sales table to the category level in Power Query.
C.Create a separate calculated table for categories and link it to Sales.
D.Create a relationship between Sales and Product on ProductID, and use Product[Category] in the measure.
AnswerD

Creating a relationship from Sales to Product on ProductID and using Product[Category] inside the measure is the correct star-schema design. When the measure evaluates, category filters from the Product table propagate down the one-to-many relationship to Sales, and PowerPoint BI's in-memory engine pushes that filtering efficiently to the compressed fact table. This preserves the 50-million-row fact table at its lowest grain while allowing any product attribute to be used in measures without extra storage or materialization, making it ideal for performance and maintainability.

Why this answer

Option D is correct because creating a relationship between Sales and Product on ProductID and then using Product[Category] in the measure lets the VertiPaq engine aggregate the 50 million Sales rows through the dimension, which is the standard star-schema approach and performs best. The relationship filters Sales by category at query time, so no row-level lookups or duplicated category values are stored in the large fact table. Option A is wrong because a calculated column using RELATED materializes the category on all 50 million Sales rows, increasing model size and refresh time.

Option B is wrong because summarizing Sales to category level in Power Query destroys the detail needed for other measures and prevents dynamic slicing. Option C is wrong because a separate calculated table would not be related to Sales on ProductID and would not correctly filter the fact table.

Exam trap

Candidates often default to adding calculated columns or summarizing tables, but the most performant approach in Power BI is to use relationships and let the engine handle aggregation dynamically.

133
MCQhard

Refer to the exhibit. You have a DAX measure that calculates year-over-year sales growth. When you add this measure to a table visual with Year and Month, some rows show blank values. What is the most likely cause?

A.The measure cannot be used at the month level because SAMEPERIODLASTYEAR only works at year level
B.The measure is trying to divide by zero for months with no sales in the previous year
C.The relationship between Sales and Calendar is inactive
D.The Calendar table does not have a continuous date range, causing SAMEPERIODLASTYEAR to return blank for some months
AnswerD

The root cause is that SAMEPERIODLASTYEAR requires a contiguous sequence of dates in the Calendar table to determine the prior-year period. If the Calendar table has gaps — for example, missing weekends, holidays, or incomplete year boundaries — the function cannot compute a continuous shift and returns BLANK for those months. Time-intelligence functions in DAX depend on a complete, continuous date dimension; any missing date breaks the comparison. Marking the table as a date table does not compensate for missing rows; the table must actually contain every date in the range.

Why this answer

The correct answer is D: the Calendar table does not have a continuous date range, causing SAMEPERIODLASTYEAR to return blank for some months. Time-intelligence functions like SAMEPERIODLASTYEAR require a contiguous, gap-free date column in a marked Date table; if any dates are missing, the shifted period lookup fails and the measure returns BLANK for the affected rows. Option A is wrong because SAMEPERIODLASTYEAR works at any granularity, including month, as long as the date table is continuous.

Option B is wrong because a divide-by-zero would typically surface as an error or infinity, not blank, and DAX's DIVIDE handles it gracefully. Option C is wrong because an inactive Sales–Calendar relationship would break the measure for all rows, not just some months.

134
MCQeasy

A company has a Power BI semantic model with a table named 'Sales' that contains columns: OrderDate, ShipDate, Quantity, and Revenue. The company wants to create a measure that calculates the total revenue for orders shipped within 7 days of the order date. Which DAX expression should be used?

A.CALCULATE(SUM(Sales[Revenue]), DATEDIFF(Sales[OrderDate], Sales[ShipDate], DAY) <= 7)
B.SUMX(FILTER(Sales, Sales[ShipDate] - Sales[OrderDate] <= 7), Sales[Revenue])
C.CALCULATE(SUM(Sales[Revenue]), DATEDIFF(Sales[OrderDate], Sales[ShipDate], DAY) <= 7)
D.CALCULATE(SUM(Sales[Revenue]), Sales[ShipDate] - Sales[OrderDate] <= 7)
AnswerA, C

This expression is syntactically and functionally identical to the other correct option, and its presence as a duplicate answer choice is a common exam design to test your ability to recognize a valid pattern when it appears more than once. The DATEDIFF function with DAY computes the number of day boundaries between the two dates, returning an integer that does not depend on any time portion, so the filter condition in CALCULATE correctly identifies all sales where the ship-date-to-order-date span is exactly seven days or less. Since CALCULATE applies its filter arguments as a row-level condition over the current filter context, the SUM of Revenue is computed only for that subset, yielding the desired total. Recognizing that this version is correct, despite being repeated, reinforces the key rule: use DATEDIFF for date-difference comparisons, not arithmetic subtraction on datetime columns.

Why this answer

Options A and C contain the same valid DAX expression: CALCULATE(SUM(Sales[Revenue]), DATEDIFF(Sales[OrderDate], Sales[ShipDate], DAY) <= 7). This expression correctly uses CALCULATE to modify the filter context, applying DATEDIFF to compute the day difference between OrderDate and ShipDate, and filtering for orders shipped within 7 days. Both are correct because they are identical.

Option B uses SUMX with FILTER, but direct date subtraction (Sales[ShipDate] - Sales[OrderDate]) in DAX treats dates as serial numbers with time components, which can lead to inaccurate day counts and is not recommended. Option D also uses direct date subtraction in a filter argument, which is similarly incorrect. Therefore, A and C are correct.

Exam trap

The trap here is that candidates often assume direct date subtraction works the same in DAX as in Excel or SQL, but DAX treats date subtraction as a datetime operation, not a simple day count, leading to incorrect results or errors.

How to eliminate wrong answers

Option B is wrong because it uses a direct subtraction `Sales[ShipDate] - Sales[OrderDate]`, which in DAX does not return a number of days but rather a date/time value (the difference in days as a decimal), leading to incorrect or unexpected results. Option C is wrong because it is syntactically identical to Option A but is listed as a separate answer; the question expects the correct expression, and Option C is a duplicate of A, not a distinct wrong answer. Option D is wrong because it uses direct subtraction `Sales[ShipDate] - Sales[OrderDate] <= 7`, which in DAX does not evaluate as a day count comparison; it compares a date/time value to the number 7, which is invalid and will cause an error or incorrect filtering.

135
MCQmedium

You receive a Power Query error: 'Expression.Error: The key didn't match any rows in the table.' This occurs when merging two queries. What is the most likely cause?

A.The join columns have different data types.
B.The second table is empty due to a permission issue.
C.The join columns contain duplicate values.
D.The join column in the first table contains values that do not exist in the second table.
AnswerD

This is the direct reason for the error: when a value in the first table's join column is not present in the second table's join column, the merge operation cannot find a matching row for that key. If the join kind requires a match or you are using a lookup-style operation, Power Query raises 'Expression.Error: The key didn't match any rows' instead of silently inserting nulls.

Why this answer

The error 'The key didn't match any rows in the table' occurs during a merge operation when Power Query attempts to find a matching value from the first table's join column in the second table's join column, but no match exists. This is a standard behavior for inner joins or left outer joins where the lookup fails, and it typically indicates that the first table contains values absent in the second table.

Exam trap

Microsoft often tests the misconception that this error is caused by data type mismatches or duplicate values, but the actual cause is a missing key in the lookup table, which is a fundamental concept in Power Query merge operations.

How to eliminate wrong answers

Option A is wrong because different data types in join columns would cause a type mismatch error (e.g., 'We cannot convert the value...'), not a key-matching error; Power Query automatically attempts type coercion during merge, but if it fails, it raises a different error. Option B is wrong because an empty second table due to permission issues would produce a different error, such as a data source access error or a 'Table is empty' warning, not a key-matching error; the merge operation would still attempt to match keys, but if the table is empty, no rows exist to match, leading to a different behavior (e.g., no rows returned) rather than this specific error. Option C is wrong because duplicate values in join columns are allowed in Power Query merges; they result in a many-to-many or one-to-many relationship, not a key-matching error, and the merge will still succeed by creating multiple matches.

136
MCQeasy

You are a Power BI data analyst for a marketing agency. You create a report with a pie chart showing the percentage of total website traffic by device type (Desktop, Mobile, Tablet). A stakeholder asks you to change the chart so that it shows the actual number of sessions for each device type instead of percentages. What should you do?

A.Convert the pie chart to a donut chart and enable 'Show values'.
B.Change the visual type to a stacked bar chart.
C.In the pie chart's format settings, change the 'Detail labels' to display 'Value' instead of 'Percent of total'.
D.Add a card visual next to the pie chart showing the total sessions.
AnswerC

Pie charts can display either percentages or actual values as data labels. By changing the detail labels to show 'Value', the chart will display the number of sessions for each slice. The slices still represent proportions, but the labels show the absolute numbers, satisfying the stakeholder's request.

Why this answer

Pie charts display proportions by default, but you can change the data labels to show actual values. In the format settings for the pie chart, under 'Detail labels', you can select 'Value' instead of 'Percent of total'. This makes each slice display the number of sessions for that device type while the slice size still represents the proportion.

Exam trap

The trap here is assuming that changing the visual type or adding another visual is necessary; the solution is simply to modify the data label settings within the existing pie chart.

137
MCQeasy

A company has a Power BI dataset that contains a date table with columns: Date, Year, Month, Quarter, Day. The data model also includes a sales fact table with a SalesDate column. To enable time intelligence functions like TOTALYTD, what is the minimum requirement for the relationship between these tables?

A.Create a calculated column in the sales table to extract the date part and relate it to the date table.
B.Create a one-to-many relationship from the date table to the sales table and mark the date table as a date table.
C.Create a many-to-many relationship between the date table and the sales table.
D.Create a one-to-many relationship from the sales table to the date table with bidirectional cross-filtering.
AnswerB

This is the correct design: Power BI time intelligence functions (e.g., DATESYTD, DATEADD) rely on a date table that is explicitly marked with the Mark as Date Table option, and a one-to-many relationship from the date table to the sales table ensures each date filters its associated sales rows unambiguously. Marking the date table lets the engine identify the date column for time-based calculations, while the one-to-many cardinality matches the logical model where each calendar day can appear in many fact records. This star-schema pattern supports reliable, accurate time-series reporting.

Why this answer

Time intelligence functions like TOTALYTD require a properly configured date table marked as a date table, with a one-to-many relationship from the date table to the sales fact table. This ensures that the date table provides a continuous, unique set of dates that Power BI can use for time-based calculations, and marking it as a date table enables the engine to recognize it as the primary date dimension for time intelligence.

Exam trap

The trap here is that candidates often think any relationship between a date table and a fact table is sufficient, but they overlook the critical step of marking the date table as a date table, which is mandatory for time intelligence functions to work correctly.

How to eliminate wrong answers

Option A is wrong because creating a calculated column in the sales table to extract the date part is unnecessary and does not establish the required relationship; time intelligence functions rely on a dedicated date table with a marked date column, not on derived columns in the fact table. Option C is wrong because a many-to-many relationship between the date table and sales table would violate the requirement that the date table must have unique dates (one side) to support time intelligence, and it would introduce ambiguity in filter propagation. Option D is wrong because a one-to-many relationship from the sales table to the date table reverses the correct direction; the date table must be on the one side and the sales table on the many side, and bidirectional cross-filtering is not required for time intelligence functions.

138
Multi-Selectmedium

Which TWO actions can you take to improve the performance of a Power BI report that uses a large dataset?

Select 2 answers
A.Use multiple columns in slicers for more granular filtering.
B.Use aggregations to pre-summarize data at higher levels.
C.Create complex calculated measures that use many nested functions.
D.Reduce the number of visuals on a page.
E.Switch from Import mode to DirectQuery mode.
AnswersB, D

Aggregations are pre-built summary tables (often at month, quarter, or year level) that the Power BI storage engine transparently redirects to when a query matches the aggregation's grain. By answering from a compact, precomputed table instead of scanning every transaction row, the engine dramatically reduces I/O and CPU usage, which accelerates report performance with minimal impact on user interactivity or drill-down capability.

Why this answer

Option B is correct because aggregations let you pre-summarize large fact tables at higher grain levels (for example, daily or monthly totals) and cache those smaller tables in memory, so most report queries hit the compact aggregation table instead of scanning billions of detail rows, dramatically reducing query time. Option D is correct because every visual on a page issues its own DAX query against the dataset, so reducing the number of visuals lowers the total number of queries and the volume of data retrieved per page render, which directly improves report responsiveness. Option A is not appropriate because adding more columns to slicers increases the cardinality of filter combinations and generates larger, more complex filter context, which typically slows queries rather than speeding them up.

Option C is wrong because deeply nested calculated measures are evaluated at query time and consume CPU and memory, degrading rather than improving performance. Option E is incorrect because DirectQuery pushes queries to the source database on every interaction and generally performs worse than Import mode for large datasets, not better.

139
MCQmedium

You are designing a Power BI semantic model that uses a large fact table from Azure SQL Database. The table includes a date column. You need to ensure that the model supports time intelligence functions like TOTALYTD and SAMEPERIODLASTYEAR. What is the recommended approach?

A.Use the 'Add Calendar' function in Power Query and rely on auto-date/time.
B.Use DirectQuery mode and rely on the SQL Server date functions.
C.Use the built-in date hierarchy from the fact table's date column.
D.Create a separate date table and mark it as a date table in the model.
AnswerD

Creating a separate date table and marking it as a date table is the correct approach because it establishes a continuous, non-blank range of dates that the DAX engine explicitly recognizes for time intelligence. Marking the table via 'Mark as Date Table' sets the ‘Date’ column as the authoritative calendar reference, which enables functions like TOTALYTD, PREVIOUSYEAR, and PARALLELPERIOD to correctly compute period boundaries and offsets. This practice also supports fiscal calendars, holidays, and custom hierarchies, making it the recommended design pattern in Power BI for any model requiring robust date analysis.

Why this answer

Time intelligence functions like TOTALYTD and SAMEPERIODLASTYEAR require a separate date table with a contiguous date range marked as the date table in the model. This ensures that DAX can correctly calculate time-based aggregations across all dates, even if the fact table has gaps or missing dates. Without a marked date table, these functions may return incorrect or blank results.

Exam trap

The trap here is that candidates often think auto-date/time or the built-in date hierarchy is sufficient, but Microsoft explicitly recommends creating and marking a separate date table for reliable time intelligence, especially when using large fact tables with non-contiguous dates.

How to eliminate wrong answers

Option A is wrong because the 'Add Calendar' function in Power Query creates a date table but does not automatically mark it as a date table in the model; you must still manually mark it, and relying on auto-date/time disables the use of explicit date tables, which is required for robust time intelligence. Option B is wrong because DirectQuery mode does not support DAX time intelligence functions like TOTALYTD and SAMEPERIODLASTYEAR; these functions require a local date table in the model, not SQL Server date functions. Option C is wrong because using the built-in date hierarchy from the fact table's date column relies on auto-date/time, which creates hidden date tables but does not allow you to mark a custom date table, leading to potential issues with non-contiguous dates and incorrect time intelligence calculations.

140
MCQhard

You are a Power BI consultant for a logistics company. The company has a semantic model with a 'Shipments' fact table (containing 'ShipmentID', 'Date', 'OriginCity', 'DestinationCity', 'Weight', 'Cost') and 'City' dimension table (with 'City', 'Region', 'Country'). The company wants a report that displays a map visual with bubbles sized by total shipment weight, and a slicer to select a region. Additionally, they want to be able to click on a bubble (city) and see a table of shipments from that city. You have implemented a map visual using the 'City' field and a table visual. When you click on a bubble, the table does not filter to show only shipments from that city. You have confirmed that cross-filtering is enabled. What is the most likely cause?

A.The map visual does not have a legend field, so clicking does not generate a filter.
B.The table visual has a filter that prevents cross-filtering.
C.The relationship between Shipments and City is based on OriginCity, but the table shows DestinationCity, so the filter does not apply.
D.The region slicer is interfering with the cross-filtering.
AnswerC

The map visual is cross-filtering based on the City dimension (e.g., CityName) which is related to the Shipments table via the OriginCity foreign key. However, the table visual displays DestinationCity, which is either a different column in the Shipments table or a different dimension that is not related to the same City table. Because the filter propagates only along active relationships to the fields used in the target visual, the DestinationCity field is not affected, so the table does not update.

Why this answer

The correct answer is C: the relationship between Shipments and City is based on OriginCity, but the table shows DestinationCity, so the filter does not apply. In Power BI, cross-filtering propagates along active model relationships, so clicking a city bubble filters the Shipments table only through the column used by the map's active relationship (OriginCity); if the table visual displays DestinationCity, the filter on OriginCity does not restrict those rows. The fix is to use the same city column in both visuals or add a role-playing dimension/relationship for DestinationCity.

Option A is wrong because a legend is not required for a map bubble to act as a filter source. Option B is wrong because a table filter would not silently block cross-filtering unless it explicitly conflicts, and the scenario says cross-filtering is enabled. Option D is wrong because a slicer on Region does not prevent a map selection from filtering the table.

141
MCQeasy

You are preparing an Excel workbook for import into Power BI. The workbook contains one worksheet named 'SalesData' with a well-formed table named 'tblSales' that includes headers in the first row. You want the most reliable way to import only this table so that column names and types are detected correctly. What should you do?

A.Use Get Data > Folder, point to the directory containing the workbook, and combine the files.
B.Use Get Data > Excel workbook, select the workbook, and choose the 'tblSales' table in the Navigator.
C.Use Get Data > Text/CSV and point to the .xlsx file, then set the delimiter to Tab.
D.Use Get Data > Excel workbook, select the workbook, and choose the 'SalesData' worksheet in the Navigator.
AnswerB

Selecting the named table in Navigator imports the defined table range, so headers, column names, and data types are recognized reliably. Named tables are stable references, so adding rows or columns within the table updates the query without reconfiguration, making this the most dependable approach for a well-structured worksheet.

Why this answer

Choosing the named table in Navigator gives Power Query a precise, stable reference to the structured range. Headers and data types come through cleanly, and the query adapts as the table grows. Importing the whole worksheet or using connectors meant for other file types introduces detection problems and unnecessary complexity.

Exam trap

The trap here is selecting the worksheet instead of the named table, which imports extra cells and can confuse header and type detection.

142
MCQeasy

You have a Power BI report that includes a slicer for product category. Users want to select multiple categories and see the combined data. The slicer currently allows only single selection. What should you change?

A.Change the slicer style to dropdown.
B.Use the sync slicer pane to replicate the slicer on other pages.
C.Add a second slicer for product category.
D.Enable multi-select in the slicer formatting options.
AnswerD

In the formatting pane for a slicer, the 'Selection controls' section contains a 'Multi-select' toggle that directly controls whether users can pick more than one value. When this toggle is turned on, users can Ctrl+click (or tap) multiple items—optionally using checkboxes—and the report's visuals will show combined data for all selected product categories. This is the precise, built-in mechanism for enabling multiple selection on a slicer and is the correct fix for the stated requirement.

Why this answer

The correct option is D: enable multi-select in the slicer formatting options. In Power BI, the Selection Controls section of the slicer's formatting pane includes a Multi-select toggle (on by default for most slicers), and turning it on lets users Ctrl-click or check multiple product categories so the visual aggregates combined data. Changing the slicer style to dropdown (A) only alters the display, not the selection cardinality, and sync slicers (B) merely propagate an existing slicer's state across pages.

Adding a second slicer (C) creates two independent filters that intersect rather than combine categories, so it does not achieve multi-selection.

143
MCQeasy

When creating a many-to-many relationship between two tables, what is a common approach to model this in Power BI?

A.Use the CROSSJOIN DAX function in calculated tables.
B.Merge both tables into a single table.
C.Introduce a bridge table that contains the unique combinations.
D.Create a direct many-to-many relationship in the model.
AnswerC

Introducing a bridge table (also called a junction or associative table) is the standard way to model a many-to-many relationship in Power BI: it stores one row for each unique pair of keys from the two original tables, and then you create two one-to-many relationships with the bridge table as the 'many' side on both. This configuration allows filter context to flow from either original table through the bridge to the other, resolving the many-to-many condition without ambiguity. For correctness, the bridge table must contain distinct composite keys and may include additional attribute columns such as weight or validity dates, and you must be careful with cross-filter direction to avoid fan-out and double-counting in measures.

Why this answer

The correct answer is C: introduce a bridge table that contains the unique combinations, because Power BI's recommended pattern for many-to-many relationships is to create a junction (bridge) table with one row per unique pairing of the two entity keys, then relate each original table to the bridge via one-to-many relationships. This keeps the model star-schema-like, avoids ambiguous filter paths, and lets DAX propagate filters correctly across both dimensions. Option A is wrong because CROSSJOIN in a calculated table just produces a Cartesian product of all rows and does not establish a proper relational model.

Option B is wrong because merging both tables into one denormalized table destroys the separate entities and causes duplication and aggregation errors. Option D is wrong because although Power BI can technically create a direct many-to-many relationship, it is not the common or recommended modeling approach and can produce ambiguous or incorrect results.

144
MCQeasy

Refer to the exhibit. You are reviewing a DAX expression used in a Power BI measure. You need to ensure that only users in the 'West' region see data for that region. Which approach should you use?

A.Implement row-level security (RLS) in the dataset with a role filter.
B.Use the CALCULATE function with a filter on the report page.
C.Modify the measure to include a conditional statement that checks the user's email.
D.Create a calculated column with the same logic.
AnswerA

Correct. Row-level security (RLS) is enforced at the dataset level by defining one or more roles in Power BI Desktop, each with a DAX filter that restricts rows based on the current user (e.g., using USERPRINCIPALNAME() or CUSTOMDATA()). This filter is applied by the Analysis Services engine for every query against the dataset, regardless of which report pages, visuals, or measures are used, so no user can ever see rows outside their role's allowed set. It is the only option here that actually slices data by security identity before results reach the reporting layer.

Why this answer

Row-level security (RLS) in the dataset with a role filter is the correct approach because it enforces data restrictions at the model level, so users in the 'West' region automatically see only rows where the region equals 'West' regardless of which report or visual they open. RLS roles are defined in Power BI Desktop and assigned to users or groups in the Power BI Service, providing centralized and secure filtering. Using CALCULATE with a report-page filter (B) only affects calculations or visuals, not the underlying data visible to users, so it can be bypassed.

A measure with a conditional statement checking the user's email (C) is not a security boundary and cannot reliably restrict row visibility. A calculated column (D) computes values at refresh time and does not filter data per user, so it cannot enforce regional access.

145
Multi-Selectmedium

Which TWO options are valid methods to combine multiple tables in Power Query?

Select 2 answers
A.Join
B.Concatenate
C.Merge
D.Union
E.Append
AnswersC, E

Merge is the correct Power Query transformation for combining tables horizontally. It matches rows between two tables based on one or more key columns, using a join kind such as Left Outer, Inner, or Full Outer. After merging, you expand the resulting nested column to bring in the desired fields from the second table. This aligns with the standard relational concept of a join, but within Power Query the precise name is 'Merge Queries'.

Why this answer

In Power Query, Merge is the correct operation for combining two tables horizontally by matching rows on one or more key columns, equivalent to a SQL JOIN, and it is performed via Home > Merge Queries. Append is the correct operation for stacking tables vertically, adding the rows of one table beneath another, equivalent to SQL UNION ALL, and it is performed via Home > Append Queries. The other options are not Power Query commands: Join and Union are SQL terms (Union also implies deduplication, which Append does not do), and Concatenate is a text function (Text.Combine / & operator) for joining string values, not tables.

Exam trap

The trap here is that candidates confuse SQL terminology (Join, Union) with Power Query's specific functions (Merge, Append), leading them to select the generic terms instead of the correct Power Query operations.

146
MCQmedium

You publish a Power BI report to a workspace that uses an organizational app. After updating the report, you want users to see the changes immediately without having to reinstall the app. What should you do?

A.Delete and recreate the app from the workspace.
B.Republish the report from Power BI Desktop.
C.Ask users to refresh their browser cache.
D.Update the app in the workspace by selecting 'Update app'.
AnswerD

In the Power BI service, the correct way to propagate workspace changes to the audience is to open the workspace and click "Update app" (or "Update app" in the app editing screen). This action re-publishes the app's content, including the modified report, to all current app users without interrupting their access or requiring them to reinstall the app. It also ensures the app's metadata, navigation, and permissions remain intact. This is the standard lifecycle step after editing a report or dashboard in the source workspace.

Why this answer

Updating the app in the workspace by selecting 'Update app' publishes the latest version of the report (and any other content) to the existing app without requiring users to reinstall. The app is a container that points to the workspace content; updating it refreshes that pointer, making changes immediately available to users who already have the app installed.

Exam trap

The trap here is that candidates confuse updating the workspace content (e.g., republishing a report) with updating the app itself, assuming changes automatically propagate to the app without an explicit 'Update app' step.

How to eliminate wrong answers

Option A is wrong because deleting and recreating the app forces users to reinstall the app from AppSource, causing unnecessary disruption and potential loss of app permissions or custom settings. Option B is wrong because republishing the report from Power BI Desktop only updates the report in the workspace, not the app itself; users would still see the old version until the app is updated. Option C is wrong because refreshing the browser cache does not affect the app's published content; the app is a separate deployment artifact that must be explicitly updated to reflect workspace changes.

147
MCQeasy

You are a Power BI administrator. The compliance team requires that all Power BI datasets and reports must be retained for seven years, even if users delete them. You need to configure the tenant to meet this requirement with minimal administrative effort. What should you do?

A.Configure a backup schedule for the Power BI workspace.
B.Enable Microsoft Purview retention policies for Power BI items.
C.Set the workspace retention policy to seven years in the workspace settings.
D.Instruct users to move items to a dedicated archive workspace.
AnswerB

Microsoft Purview retention policies can be applied to Power BI datasets, reports, and other items. When configured, they ensure that items are retained for the specified period even if users delete them. This is a centralized, tenant-wide solution that requires minimal ongoing effort once set up, and it meets the seven-year retention requirement.

Why this answer

Microsoft Purview retention policies are the correct solution because they can be applied to Power BI items to retain them for a specified period, even if users delete them. This is a tenant-level configuration that requires minimal effort and meets compliance requirements. Other options are either not valid Power BI features or do not enforce automatic retention.

Exam trap

The trap here is assuming that Power BI has built-in workspace-level retention settings or backup schedules, when retention is actually handled through Microsoft Purview.

148
MCQeasy

You have the above calculated column in a Power BI model. Some rows show blank values for Profit Margin even though Profit and SalesAmount are not blank. What is the most likely cause?

A.The calculated column syntax is incorrect
B.The columns are not numeric
C.The DIVIDE function cannot handle large numbers
D.SalesAmount is zero for those rows
AnswerD

When DIVIDE is used without an optional third argument, it returns BLANK if the denominator is zero. For these rows, SalesAmount equals zero, making the denominator of the division zero, so the result is blank rather than a numeric value. This is the intended behavior of DIVIDE and is why the column appears blank only for those specific rows.

Why this answer

The correct answer is D: SalesAmount is zero for those rows. In DAX, a calculated column for Profit Margin typically uses DIVIDE(Profit, SalesAmount), and DIVIDE returns BLANK when the denominator is zero (or BLANK), which explains why Profit and SalesAmount appear non-blank yet Profit Margin shows blank. Options A and B do not fit because a syntax error would prevent the column from being created or would error, and non-numeric columns would cause type/aggregation errors rather than selective blanks.

Option C is incorrect because DIVIDE handles large numbers fine; its blank behavior is driven by a zero or blank denominator, not magnitude.

149
MCQhard

A Power BI admin receives a support ticket that a user cannot see any data in a report that uses row-level security (RLS). The report is based on a dataset with a single table 'Sales' and RLS roles defined. The user is assigned to the role 'SalesManager' which filters Sales[Region] = 'West'. The dataset uses Import mode. The user can see the report but all visuals show blank. What is the most likely cause?

A.The RLS filter removes all rows for the user's role.
B.The user does not have permission to view the report page.
C.The user is viewing a dashboard tile instead of the report.
D.The dataset was refreshed using an RLS bypass account.
AnswerA

The correct diagnosis is that the row-level security (RLS) filter defined for the user's role is returning an empty result. RLS applies a DAX filter to every visual in the report; if the user's identity (via USERNAME()) doesn't match any row in the `Sales[Region]` column, all measures become BLANK and tables show zero rows. An admin can verify this by using 'View as' in Power BI Desktop and selecting the specific role to see the same empty output.

Why this answer

The correct answer is A: the RLS filter removes all rows for the user's role. In Import mode, RLS is enforced by DAX filters applied at query time, so if the 'SalesManager' role filters Sales[Region] = 'West' and the user's identity maps to no rows where Region equals 'West' (for example, due to case/spacing mismatches or the user not being in the intended region), every visual returns blank rather than an error. The other options do not fit: B would typically block report access entirely or show a permission error, not blank visuals; C describes a dashboard tile scenario, but the ticket says the user can see the report; and D is not a valid cause because refreshing with an RLS bypass account affects data loading, not the query-time RLS filtering applied to the user.

150
MCQmedium

You are modeling data from an Azure SQL Database into Power BI. The source table 'Sales' contains 10 million rows. You need to ensure that the data model supports fast query performance for a report that shows sales by month and product category. The report uses a slicer for year. What is the best practice for improving performance?

A.Disable the auto-date/time feature.
B.Increase the data load frequency to every 15 minutes.
C.Use DirectQuery mode to query the source database directly.
D.Create an aggregate table in Power BI that pre-aggregates sales by month and product category.
AnswerD

Creating an aggregate table in Power BI that pre-aggregates sales by month and product category is the correct approach because it reduces the fact table to a much coarser grain, shrinking the number of rows that report queries must scan. By configuring this aggregate table as an aggregation group in the model, Power BI can automatically route high-level visual queries to the small summary table while reserving the detailed fact table for drill-down operations. This leverages the storage engine's in-memory columnar compression and accelerates time-intelligence calculations such as year-over-year month comparisons, directly addressing the performance bottleneck caused by large transaction-level data.

Why this answer

Creating an aggregate table in Power BI that pre-aggregates sales by month and product category drastically reduces the number of rows the report must scan, from 10 million to a much smaller set of aggregated rows. This enables fast query performance for the slicer and visual-level filters, as Power BI can leverage the aggregate table via its aggregation feature, which automatically redirects queries to the pre-summarized data when possible.

Exam trap

The trap here is that candidates often confuse DirectQuery (option C) as a performance optimization for large data volumes, but in reality, DirectQuery offloads processing to the source and can be slower for aggregated reports, whereas pre-aggregating in Power BI (option D) is the correct approach for fast in-memory query performance.

How to eliminate wrong answers

Option A is wrong because disabling the auto-date/time feature reduces model size and improves load times, but it does not address the core performance bottleneck of scanning 10 million rows for every report interaction; it is a general best practice, not a solution for large-table aggregation. Option B is wrong because increasing data load frequency to every 15 minutes improves data freshness but has no impact on query performance against the existing 10 million rows; it may even degrade performance by causing more frequent refreshes. Option C is wrong because DirectQuery mode sends queries directly to the Azure SQL Database, which would still require scanning 10 million rows on each interaction, and it introduces network latency and dependency on source database performance, often resulting in slower report responsiveness compared to an in-memory aggregated model.

Page 1

Page 2 of 7

Page 3

All pages