Sample Renewal Exam questions

 You are merging Orders and Orders Detail queries in Power Query Editor. Due to data quality issues, some rows in the Orders query do NOT have a matching row in the Order Details query. You need to select the appropriate join type to ensure that all the rows from the Orders query are shown. Which join type should you use? Select only one answer. a. Full Outer b. Inner c. Left Outer d. Right Anti

ChatGPT said:

Correct answer: c. Left Outer

Explanation:
When merging queries in Power Query:

  • A Left Outer Join keeps all rows from the first (left) table — in this case, the Orders query — and only matching rows from the second (right) table — the Order Details query.

If some orders do not have matching order details, those orders will still appear in the merged result, with null values for the unmatched columns.

Summary of join types (for clarity):

  • Inner → Only matching rows in both tables

  • Left Outer → All rows from left + matching from right ✅

  • Right Outer → All rows from right + matching from left

  • Full Outer → All rows from both, matched where possible

  • Right Anti → Only rows from right with no match in left

So the correct choice is c. Left Outer.

You said:
You preview a query from the Power Query Editor. You notice that Column A contains blank values and null values. You need to convert all blank values to null. Which option should you select from Column A? Select only one answer. a. Clean b. Fill Down c. Replace Errors d. Replace Values
ChatGPT said:

Correct answer: d. Replace Values

Explanation:
In Power Query, to convert blank values (empty strings) to null, you use the Replace Values option.

Steps:

  1. Select Column A.

  2. On the Home tab (or right-click the column), choose Replace Values.

  3. In the dialog box:

    • Value to Find: leave it blank

    • Replace With: enter null

This replaces all blank entries with nulls.

Other options explained:

  • Clean → Removes non-printable characters (does not affect blanks).

  • Fill Down → Fills empty cells with the value from the cell above.

  • Replace Errors → Replaces only error values, not blanks.

✅ Therefore, the correct choice is d. Replace Values.

You said:
You are previewing two queries named Query1 and Query2 in Power Query Editor. Query1 contains data about employee IDs 1 through 10. Query2 contains data about employee IDs 5 through 15. You merge by using a left outer join from Query1 to Query2. Which employee IDs will be present in the merged query? Select only one answer. a. 1 through 10 b. 5 through 10 c. 5 through 15 d. 11 through 15
ChatGPT said:

Correct answer: a. 1 through 10

Explanation:
A Left Outer Join in Power Query keeps:

  • All rows from the first (left) query → here, Query1 (IDs 1–10)

  • Plus only the matching rows from the second (right) query → here, Query2 (IDs 5–15)

That means:

  • IDs 1–4 will appear with nulls for Query2 columns (no match).

  • IDs 5–10 will appear with matching data from Query2.

✅ Therefore, the merged query will contain employee IDs 1 through 10.

You said:
You have a Microsoft Power BI semantic model that contains two tables named DimDate and FactSales. DimDate is the main date table in the model. FactSales is a fact table that contains data about sales orders. FactSales has the following three relationships to DimDate: An active relationship between FactSales[OrderDate] and DimDate[Date] An inactive relationship between FactSales[ShipDate] and DimDate[Date] An inactive relationship between FactSales[ReturnDate] and DimDate[Date] Which type of dimension is DimDate? Select only one answer. a. degenerate dimension b. junk dimension c. outrigger dimension d. role-playing dimension
ChatGPT said:

Correct answer: d. Role-playing dimension

Explanation:
A role-playing dimension is a single dimension table (like DimDate) that is used multiple times in a model to play different roles depending on the relationship.

In this case:

  • FactSales[OrderDate] → DimDate[Date] (Active)

  • FactSales[ShipDate] → DimDate[Date] (Inactive)

  • FactSales[ReturnDate] → DimDate[Date] (Inactive)

Here, the same DimDate table is being used as:

  • Order Date dimension

  • Ship Date dimension

  • Return Date dimension

That’s the definition of a role-playing dimension.

Answer: d. Role-playing dimension

You said:
You have a Power BI data model that has the following tables: Sales, Returns, Customer, and Date. No relationships have been created. You need to view and filter sales and returns by the same months at the same time. What three actions should you perform? Each correct answer presents part of the solution. Select all answers that apply. a. Create a DAX measure that combines sales and returns. b. Create a month column in both the Sales and Returns tables. c. Create a relationship between Sales and Date. d. Create a relationship between the Returns and Date. e. Select the Date table and select Mark as date table.
ChatGPT said:

Correct answers:
c. Create a relationship between Sales and Date
d. Create a relationship between Returns and Date
e. Select the Date table and select Mark as date table


Explanation:

To view and filter Sales and Returns by the same months, both fact tables (Sales and Returns) must be related to a shared Date dimension.

Here’s what each correct step does:

  • (c) Create a relationship between Sales and Date → links sales records to the calendar.

  • (d) Create a relationship between Returns and Date → links return records to the same calendar.

  • (e) Mark the Date table as the official date table → enables consistent time intelligence functions and filtering by month, quarter, year, etc.


Incorrect options:

  • (a) Creating a DAX measure combining sales and returns is optional — it doesn’t enable shared filtering.

  • (b) Creating separate month columns in Sales and Returns breaks the concept of a central date table and doesn’t solve the synchronization issue.

✅ Therefore, the correct combination is c, d, and e.

You said:
You preview a single table in the Power Query Editor in Power BI Desktop. The table contains the following columns: LocationName, LocationID, Temperature, and DateTime. You need to convert the table into a properly formed star schema. To which table should you add the LocationName field? Select only one answer. a. Date Dimension b. Location Dimension c. Location Fact d. Temperature Measurements Fact
ChatGPT said:

Correct answer: b. Location Dimension


Explanation:
In a star schema, we organize data into:

  • Fact tables → contain measurable, numeric data (e.g., Temperature).

  • Dimension tables → contain descriptive, categorical information (e.g., LocationName, Date, Product, etc.).

In your case:

  • The Fact table is Temperature Measurements Fact, containing Temperature, LocationID, and DateTime.

  • The LocationName is a descriptive attribute — it describes the location, not a measurement — so it belongs in the Location Dimension table along with LocationID.


Answer: b. Location Dimension

You said:
You need to create a relationship between two tables named Sales and Sales Detail in a Power BI data model. For every row in the Sales table, there is at least one row, and possibly multiple rows, in the Sales Detail table. How should you configure the relationship? Select only one answer. a. many-to-many from Sales to Sales Detail b. many-to-one from Sales to Sales Detail c. one-to-many from Sales to Sales Detail d. one-to-one from Sales to Sales Detail
ChatGPT said:

Correct answer: c. One-to-many from Sales to Sales Detail


Explanation:
In this scenario:

  • Each Sales record (e.g., one order) can have multiple related rows in Sales Detail (e.g., line items for that order).

  • Therefore, Sales is the “one” side of the relationship, and Sales Detail is the “many” side.

So, the relationship should be:
Sales[SalesID] (one)Sales Detail[SalesID] (many)


Answer: c. One-to-many from Sales to Sales Detail

You said:
You have a Microsoft Power BI semantic model that contains two tables named FactInventory and DimDate. FactInventory is a fact table that contains one row per product per weekday. Inventory balances are NOT recorded on weekends. DimDate is the date table in the model. You need to create a measure that shows the last available inventory balance for a selected period. Which DAX function should you include in the solution? Select only one answer. a. EOMONTH b. FIRSTNONBLANK c. LASTNONBLANK d. NETWORKDAYS
ChatGPT said:

Correct answer: c. LASTNONBLANK


Explanation:
You need a measure that returns the last available inventory balance within a selected period — even if some days (like weekends) have no data.

The DAX function LASTNONBLANK() is specifically designed for this purpose. It returns the last value in a column that is not blank, based on the current filter context — ideal for finding the most recent non-empty record.


How it works conceptually:

Last Inventory Balance := CALCULATE( LASTNONBLANK(FactInventory[Date], SUM(FactInventory[InventoryBalance])) )

This finds the last date (within the selected period) where inventory data exists, then returns the corresponding balance.


Why not the others:

  • EOMONTH → Returns the last day of a month (not related to missing data).

  • FIRSTNONBLANK → Returns the first nonblank value, not the last.

  • NETWORKDAYS → Calculates working days between two dates (Excel-style), not used for measures.

Therefore, the correct answer is: c. LASTNONBLANK

You said:
You have a Microsoft Power BI semantic model that contains two tables named DimDate and FactInventory. DimDate is the date table. FactInventory is a snapshot table that contains one row per product per date with the count of items remaining in inventory. You need to create a measure named Stock on Hand that returns the number of items available in inventory as of the last day of the selected period. The measure must work in the context of a specific day, week, month, or year. Which formula should you use in the measure? Select only one answer. a. CALCULATE( SUM(FactInventory[UnitsBalance]), LASTDATE('Date'[Date]) ) b. CALCULATE( SUM(FactInventory[UnitsBalance]), LASTNONBLANK('Date'[Date], c. c. CALCULATE(SUM(FactInventory[UnitsBalance])) ) ) CALCULATE( SUM(FactInventory[UnitsBalance]), FIRSTDATE('Date'[Date]) ) CALCULATE( SUM(FactInventory[UnitsBalance]), MAX('Date'[Date]) ) tha
ChatGPT said:

Correct answer:
a. CALCULATE( SUM(FactInventory[UnitsBalance]), LASTDATE('Date'[Date]) )


Explanation:
You want a measure — Stock on Hand — that returns the inventory balance as of the last date in the current filter context (day, week, month, or year).

The correct DAX pattern for this is:

Stock on Hand := CALCULATE( SUM(FactInventory[UnitsBalance]), LASTDATE('Date'[Date]) )

This formula:

  • Evaluates the sum of UnitsBalance.

  • Filters the calculation to only the last date in the current time context (for example, the last day of a selected month or week).


Why not the others:

  • Option b (LASTNONBLANK) → Used when there are missing dates (not required for a complete daily snapshot table).

  • FIRSTDATE('Date'[Date]) → Would return the balance on the first day of the period, not the last.

  • MAX('Date'[Date]) → Returns a scalar date value, not a filter context; it won’t work properly in a CALCULATE filter argument.


Final Answer:
a. CALCULATE( SUM(FactInventory[UnitsBalance]), LASTDATE('Date'[Date]) )

You said:
You have a Microsoft Power BI semantic model that contains two tables named DimDate and FactInventory. DimDate is the date table. FactInventory is a snapshot table that contains one row per product per date with the count of items remaining in inventory. You need to create a measure named Stock on Hand that returns the number of items available in inventory as of the last day of the selected period. The measure must work in the context of a specific day, week, month, or year. Which formula should you use in the measure? Select only one answer. 1. CALCULATE( SUM(FactInventory[UnitsBalance]), LASTDATE('Date'[Date]) ) 2. CALCULATE( SUM(FactInventory[UnitsBalance]), LASTNONBLANK('Date'[Date], 3, CALCULATE(SUM(FactInventory[UnitsBalance])) ) ) 4. CALCULATE( SUM(FactInventory[UnitsBalance]), FIRSTDATE('Date'[Date]) ) 5. CALCULATE( SUM(FactInventory[UnitsBalance]), MAX('Date'[Date]) ) tha
ChatGPT said:

Correct answer: 1.
CALCULATE( SUM(FactInventory[UnitsBalance]), LASTDATE('Date'[Date]) )


Explanation:
You need a measure that returns the inventory balance as of the last date in the currently selected time period — whether the user filters by day, week, month, or year.

This is a classic inventory snapshot pattern in Power BI.

How it works:

Stock on Hand := CALCULATE( SUM(FactInventory[UnitsBalance]), LASTDATE('Date'[Date]) )
  • SUM(FactInventory[UnitsBalance]) → sums the inventory quantity.

  • LASTDATE('Date'[Date]) → filters the calculation to the last date in the current filter context (e.g., last day of a selected month).


Why not the others:

  • 2. LASTNONBLANK → Used when there are missing dates in the fact table. Here, since there’s one row per product per date (a complete snapshot), LASTDATE is sufficient.

  • 4. FIRSTDATE → Returns the first date of the context, not the last.

  • 5. MAX('Date'[Date]) → Returns a scalar value, not a table filter, so it doesn’t behave correctly inside CALCULATE.


Final Answer:
1. CALCULATE( SUM(FactInventory[UnitsBalance]), LASTDATE('Date'[Date]) )

You said:
You have a Power BI model that contains a table named Person. The Person table contains a whole number column named Age. You need to write a DAX measure that finds the middle value in the range of Age values. What formula should you use? Select only one answer. a. AVERAGE('Person'[Age]) b. MEDIAN('Person'[Age]) c. RANK.EQ('Person'[Age], ‘Person’[Age]) d. STDEV.P('Person'[Age])
ChatGPT said:

Correct answer: b. MEDIAN('Person'[Age])


Explanation:
You need to find the middle value (the median) of the Age column in the Person table.

The DAX function MEDIAN() returns the value that lies in the middle of a numeric dataset — that is, half the numbers are greater and half are smaller.


Why not the others:

  • a. AVERAGE('Person'[Age]) → Returns the mean (average), not the middle value.

  • c. RANK.EQ('Person'[Age], 'Person'[Age]) → Returns the rank position, not the median value.

  • d. STDEV.P('Person'[Age]) → Returns the standard deviation, not the middle value.


Final Answer: b. MEDIAN('Person'[Age])

You said:
You have a Microsoft Power BI semantic model that contains a table named Table1. Table1 contains five columns named Sales Date, Product ID, Quantity, Item Price, and Region. You need to create a measure named Avg Price - All Regions that calculates the average item price for items sold across all regions. Which expression should you use in the measure? Select only one answer. a. CALCULATE( AVERAGE( Table1[Item Price] ), REMOVEFILTERS( Table1[Region] ) ) b. CALCULATETABLE( AVERAGEX( Table1[Item Price] ), REMOVEFILTERS( Table1[Region] ) ) c. CALCULATE( MEDIAN( Table1[Item Price] ), ALL( Table1[Region] ) ) d. SUMMARIZE( Table1[Item Price])
ChatGPT said:

Correct answer: a.
CALCULATE( AVERAGE( Table1[Item Price] ), REMOVEFILTERS( Table1[Region] ) )


Explanation:
You need a measure that returns the average item price — but ignores any filters on the Region column, so it always calculates the average across all regions.

The correct approach is to use CALCULATE with REMOVEFILTERS (or equivalently ALL) to remove the regional filter context.


How it works:

Avg Price - All Regions := CALCULATE( AVERAGE(Table1[Item Price]), REMOVEFILTERS(Table1[Region]) )
  • AVERAGE(Table1[Item Price]) → computes the average item price.

  • REMOVEFILTERS(Table1[Region]) → ensures the result ignores any region-based filters or slicers.


Why not the others:

  • b. CALCULATETABLE(...) → returns a table, not a scalar measure (invalid here).

  • c. MEDIAN(...) → calculates the median, not the average.

  • d. SUMMARIZE(...) → used to create tables, not scalar measures.


Final Answer:
a. CALCULATE( AVERAGE( Table1[Item Price] ), REMOVEFILTERS( Table1[Region] ) )

You said:
You create a Power BI model that contains the sales for the last five years. The size of the model is 950 MB. The Sales table contains five million rows. You need to minimize the model size and perform the following analysis: Current and one previous year sales for all active products Current year sales by product category What should you do? Select only one answer. a. Remove the Product Status column. b. Remove the rows that relate to inactive products. c. Remove the rows that relate to sales that occurred more than two years earlier. d. Remove the Sale Date column.
ChatGPT said:

Correct answer: c. Remove the rows that relate to sales that occurred more than two years earlier.


Explanation:
The analysis requirements only mention:

  • Current and previous year sales (so 2 years of data needed)

  • Current year sales by product category

Since your model currently holds five years of sales data, keeping all five years is unnecessary. Removing sales records that are more than two years old will:

  • Significantly reduce model size (since the Sales table has 5 million rows)

  • Still allow all required analyses (current and previous year comparisons)


Why not the others:

  • a. Remove the Product Status column → Only removes one column, minimal space saved; not relevant to the analysis scope.

  • b. Remove rows for inactive products → Could distort analysis if those products were active in the past year or have valid sales history.

  • d. Remove the Sale Date column → Breaks all time-based analysis; you need Sale Date for “current” and “previous year” comparisons.


Final Answer:
c. Remove the rows that relate to sales that occurred more than two years earlier.

You said:
You have a Microsoft Power BI semantic model that contains three tables named FactSales, DimProduct, and DimDate. There is a relationship between FactSales and DimProduct and FactSales and DimDate. The model is used to create reports that show monthly sales by product. FactSales contains 50 million rows of daily sales data. DimProduct contains 1,000 rows, with each row representing a unique product. DimDate contains sales dates for the last three years. You need to minimize the size of the semantic model. The solution must support the reporting requirements. What should you do? Select only one answer. a. Summarize the DimDate table to the month level. b. Summarize the FactSales table to the month level. c. Summarize the FactSales table to the product category level. d. Summarize the FactSales table to the quarter level.
ChatGPT said:

Correct answer: b. Summarize the FactSales table to the month level.

Why: Reports need monthly sales by product, so you can safely aggregate the large FactSales table from daily rows to one row per product per month. This drastically reduces rows (and model size) while preserving the required granularity (product × month).

Notes:

  • Keep DimProduct as-is (product-level lookup).

  • Keep or create a month-level date key in DimDate (or a month column) to join to the aggregated fact.

  • Ensure measures (e.g., totals, year-over-year) still work after aggregation.

You said:
You plan to use Power BI report visual to display sales values that change over time. You need to identify a visualization to use. The solution must clearly illustrate the changes of sales values over time. Which visualization type should you identify? Select only one answer. a. Column chart b. Doughnut chart c. Funnel chart d. Pie chart
ChatGPT said:

Correct answer: a. Column chart


Explanation:
When you need to show how values (like sales) change over time, the best visualizations are time-series visuals — typically a column chart or line chart.

A column chart (especially a clustered or stacked column chart) clearly illustrates trends and changes in values across time periods (e.g., months, quarters, or years).


Why not the others:

  • b. Doughnut chart → Shows part-to-whole relationships, not trends over time.

  • c. Funnel chart → Used for process stages (e.g., sales pipeline), not time-based trends.

  • d. Pie chart → Used to show proportions of a whole at one point in time, not over time.


Final Answer: a. Column chart

You said:
You have a Microsoft Power BI report that contains two pages. The first page contains a clustered bar chart. You plan to configure the clustered bar chart to use the second page as a tooltip report. What should be done on the second page? Select only one answer. a. The Allow Q&A setting must be enabled. b. The Allow use as tooltip setting must be enabled. c. The canvas background transparency must be set to 100%. d, The Canvas setting must be set to Tooltip.
ChatGPT said:

Correct answer: d. The Canvas setting must be set to Tooltip


Explanation:
To use a report page as a tooltip in Power BI (a “report page tooltip”), you must configure that page properly.

Steps:

  1. Go to the second page (the one you want to use as a tooltip).

  2. In the Visualizations pane, select Format → Page Information.

  3. Turn on “Allow use as tooltip.”

  4. In Page size → Type, set it to “Tooltip.”

Setting the Canvas (Page size) to Tooltip adjusts the page dimensions and design specifically for tooltip use.


Why not the others:

  • a. Allow Q&A setting → Used for natural language queries, unrelated to tooltips.

  • b. Allow use as tooltip → Must also be enabled, but the core configuration is setting the Canvas (Page size) to Tooltip.

  • c. Background transparency → Optional visual styling, not required for tooltip functionality.


Final Answer: d. The Canvas setting must be set to Tooltip

You said:
You plan to analyze sales data in Power BI by using the following fields: Sales amount Order Quantity Product You need to use clustering to identify groups of similar data points in a subset of your data. What visualization type should you use? Select only one answer. a. Line chart b. Scatter chart c. Tree map d. Waterfall chart
ChatGPT said:

Correct answer: b. Scatter chart


Explanation:
Clustering in Power BI helps you group similar data points based on numeric and categorical fields — for example, grouping products with similar Sales Amount and Order Quantity.

The Scatter chart is the visualization type that supports built-in clustering in Power BI. You can right-click within a scatter chart and select “Automatically find clusters” to let Power BI identify patterns and groupings.


Why not the others:

  • a. Line chart → Used for trends over time, not clustering.

  • c. Tree map → Used to show hierarchical data and proportions, not clustering.

  • d. Waterfall chart → Used to show running totals or changes between values, not clustering.


Final Answer: b. Scatter chart

You said:
You are building a sales report for your organization. The report contains a matrix visual with rows of data displaying the profit from each quarter. You need to enhance the visual by adding a comparison of each quarter's profit with the profit from the previous quarter. Which DAX query should you use? Select only one answer. a. ProfitIncrease = MOVINGAVERAGE([Profit], 2) b. ProfitIncrease = [Profit] – Next([Profit]) c. ProfitIncrease = [Profit] – PREVIOUS([Profit]) d. ProfitIncrease = RUNNINGSUM([Profit], 2)
ChatGPT said:

Correct answer: c.
ProfitIncrease = [Profit] – PREVIOUS([Profit])


Explanation:
You want to compare each quarter’s profit with the previous quarter’s profit — that is, calculate the quarter-over-quarter change.

In DAX, this type of calculation uses the PREVIOUS (or in actual DAX, typically PREVIOUSQUARTER or PREVIOUSMONTH) pattern to reference the value from the prior time period.

Conceptually, the expression means:

“Current quarter’s profit minus the previous quarter’s profit.”


Why not the others:

  • a. MOVINGAVERAGE → Not a valid DAX function (it’s an Excel concept); calculates averages, not differences.

  • b. Next([Profit]) → No such function in DAX; also, we want previous quarter comparison, not next.

  • d. RUNNINGSUM → Represents a cumulative total, not a quarter-to-quarter difference.


Final Answer: c. ProfitIncrease = [Profit] – PREVIOUS([Profit])

You said:
You are building a sales report for your organization. The report contains a table visual that displays units sold. You need to create a new visual calculation to display the cumulative total for each row in the table. Which template should you use? Select only one answer. a. Moving average b. Percent of parent c. Running sum d. Versus last
ChatGPT said:

Correct answer: c. Running sum


Explanation:
A running sum (also known as a cumulative total) shows the progressive total of a measure — in this case, Units Sold — across rows (such as over time or by category).

So if your table lists sales by date or product, a running sum will display the total units sold up to that point in the sequence.


Why not the others:

  • a. Moving average → Shows an average over a rolling window, not a cumulative total.

  • b. Percent of parent → Shows proportion relative to a parent category.

  • d. Versus last → Compares the current value to the previous one, not a running total.


Final Answer: c. Running sum

You said:
You have a Power BI report that contains a clustered column chart visual. The visual shows the revenue on the y-axis and the month on the x-axis. You need to ensure that users can drill down from month to week to day. To what should you add the Week and Day fields? Select only one answer. a. Legend b. Small Multiples c. X-axis d. Y-axis
ChatGPT said:

Correct answer: c. X-axis


Explanation:
In Power BI, drill-down functionality is created by adding multiple fields to the same axis hierarchy — typically the X-axis for time-based visuals.

In this case:

  • You already have Month on the X-axis.

  • To enable drill-down from Month → Week → Day, you add the Week and Day fields below Month in the X-axis field well.

Then users can click the drill-down arrows on the visual to navigate through the hierarchy.


Why not the others:

  • a. Legend → Used for grouping or color differentiation, not hierarchy drilling.

  • b. Small Multiples → Creates separate charts per category, not drill-down.

  • d. Y-axis → Used for numerical values (like Revenue), not hierarchical categories.


Final Answer: c. X-axis

You said:
You have a report that contains a bar chart and a pie chart. The interactions use the default settings. You need to ensure that when you select a bar, the pie chart redraws showing only the data related to the bar. You enable Edit Interactions. What should you do next? Select only one answer. a. Select the pie chart and set the bar chart interaction to Filter. b. Select the pie chart and set the bar chart interaction to None. c. Select the bar chart and set the pie chart interaction to Filter. d. Select the bar chart and set the pie chart interaction to None.
ChatGPT said:

Correct answer: c. Select the bar chart and set the pie chart interaction to Filter.


Explanation:

In Power BI, when you enable Edit Interactions, you define how selecting data in one visual affects another visual.

Here’s what you want:

When a bar is selected, the pie chart should update to show only the related data (i.e., filter the data).

That means:

  • The bar chart is the source visual (the one being clicked).

  • The pie chart is the target visual (the one being filtered).

  • Therefore, you select the bar chart, then set the interaction on the pie chart to Filter.


Why not the others:

  • a. Wrong — You should select the bar chart, not the pie chart.

  • b. Wrong — Setting to None would disable any interaction.

  • d. Wrong — Setting to None would stop filtering.


Final Answer: c. Select the bar chart and set the pie chart interaction to Filter.

You said:
You have a workspace that contains two semantic models and five reports. You need to grant all department users read access to only one of the semantic models and three of the reports. Access should be automatically removed for users who leave the department. Which two actions should you perform? Each correct answer presents part of the solution. Select all answers that apply. a. Add the security group containing the users to the Viewer role on the workspace. b. Grant app access to the security group containing the users and publish the app. c. Set Include in App to Yes for all semantic models and reports. d. Set Include in App to Yes for the one semantic model and the three reports. e. Share the one semantic model and the three reports with each user in the department.
ChatGPT said:

Correct answers:
→ b. Grant app access to the security group containing the users and publish the app.
→ d. Set Include in App to Yes for the one semantic model and the three reports.


Explanation:

You want to:

  • Give read-only access to specific Power BI content (1 semantic model + 3 reports).

  • Ensure access is automatically managed when users join or leave the department.


Step-by-step reasoning:

  1. Use an App for controlled access

    • Power BI Apps allow you to publish only selected content (datasets, reports, dashboards) from a workspace.

    • Users who get access to the app can view only what’s included.

    Answer b: Grant app access to the security group containing the users and publish the app.

    • Using a security group ensures access automatically updates when members leave or join the department.

  2. Include only relevant content in the app

    • You only want users to access one semantic model and three reports.

    • Therefore, you must explicitly include those items in the app.

    Answer d: Set Include in App to Yes for the one semantic model and the three reports.


Why not the others:

  • a. Add the security group to the Viewer role on the workspace
    ❌ This gives users read access to everything in the workspace — not just selected items.

  • c. Set Include in App to Yes for all semantic models and reports
    ❌ That would expose all content, not just the one model and three reports.

  • e. Share the one semantic model and the three reports with each user
    ❌ Manual sharing does not scale and won’t automatically remove access for users who leave.


Final Answer:
b and d

You said:
You have a Microsoft Power BI tenant that contains a workspace named Workspace1. Workspace1 contains two semantic models and five reports. You have a user named User1. You need to grant User1 access to publish reports and add other users with permissions to create reports. The solution must follow the principle of least privilege. Which workspace role should you assign to User1? Select only one answer. a. Admin b. Contributor c. Member d. Viewer
ChatGPT said:

Correct answer: → c. Member


Explanation:

You need to let User1:

  1. Publish reports

  2. Add other users with permissions to create reports

  3. Follow the principle of least privilege (only the permissions necessary — not full admin rights)


Power BI Workspace Roles Overview

RoleCan Publish Reports?Can Add/Manage Users?Can Delete Workspace?Typical Use Case
Admin✅ Yes✅ Yes (full control)✅ YesFull workspace management
Member✅ Yes✅ Can add users (except Admins)❌ NoManage content and contributors
Contributor✅ Yes❌ No❌ NoCreate and edit content only
Viewer❌ No❌ No❌ NoView-only access

Why “Member” is correct:

  • Can publish reports ✔️

  • Can add or manage users (except Admins) ✔️

  • Cannot delete the workspace (safer than Admin) ✔️

  • Follows least privilege principle ✔️


Final Answer: c. Member

You said:
You have Power BI workspace named WS1. You publish a semantic model named Model1 to WS1. Model1 contains a row-level security (RLS) role named RLS1. You plan to use a group to add members to RLS1. What should you use? Select only one answer. a. an Active Directory Domain Services security group b. a distribution list c. a Microsoft 365 group d. a Microsoft Entra security group
ChatGPT said:

Correct answer: → d. Microsoft Entra security group


Explanation:

Row-Level Security (RLS) in Power BI supports assigning roles to users or groups — but only certain group types work.


Which group types work with RLS?

Group TypeWorks with RLS?Notes
Microsoft Entra security group (formerly Azure AD security group)YesFully supported for RLS. Recommended option.
Active Directory Domain Services security group❌ NoOn-premises AD groups don’t sync automatically for RLS in Power BI Service.
Microsoft 365 group❌ NoNot supported for RLS role assignments.
Distribution list❌ NoUsed for email, not for access or RLS permissions.

Why Microsoft Entra Security Group?

  • It integrates directly with Power BI’s identity and access management system.

  • Members of the group automatically gain or lose RLS access when they are added or removed.

  • Simplifies automated access management for large teams.


Final Answer: d. Microsoft Entra security group

You said:
You have a Power BI semantic model named Model1 that contains four tables named Sales, Date, Product, and Employee. The Sales table is related to the Date, Product, and Employee tables. You need to create a row-level security (RLS) role that meets the following requirements: Employees must be able to view their respective sales only. The RLS filter must match the user to their email address. Which table filter expression should you use for the RLS role? Select only one answer. a. Employee[EmailAddress] = USERCULTURE() b. Employee[EmailAddress] = USERNAME() c. Employee[EmailAddress] = USEROBJECTID() d. Employee[EmailAddress] = USERPRINCIPALNAME()
ChatGPT said:

Correct answer: → d. Employee[EmailAddress] = USERPRINCIPALNAME()


Explanation:

To implement Row-Level Security (RLS) based on the user’s email address, you need to use the USERPRINCIPALNAME() DAX function.


Breakdown of options

OptionDescriptionWorks for this scenario?
a. Employee[EmailAddress] = USERCULTURE()Returns the user’s locale (e.g., “en-US”).❌ No — not related to email or identity.
b. Employee[EmailAddress] = USERNAME()Returns the user’s login name (format varies — sometimes domain\username or email).⚠️ Works in some setups, but inconsistent in the Power BI Service (especially with cloud users).
c. Employee[EmailAddress] = USEROBJECTID()Returns the user’s unique Microsoft Entra ID (GUID).❌ No — you’d have to store object IDs in the table, not email addresses.
d. Employee[EmailAddress] = USERPRINCIPALNAME()Returns the user’s UPN (usually their email address in Power BI Service).Yes — best practice for cloud-based RLS.

Recommended Formula

Employee[EmailAddress] = USERPRINCIPALNAME()

This ensures that when a user signs in, Power BI compares their login email to the EmailAddress field in the Employee table, filtering data so they only see their own sales.


Final Answer: d. Employee[EmailAddress] = USERPRINCIPALNAME()

Comments