What this quiz covers
This quiz focuses on Pivot Unpivot, giving you a quick way to practice the rules, question types, and explanations that matter most for Microsoft Power BI.
A telemetry query contains DeviceID, RecordedAt, Metric, and Reading. Each device can have multiple readings for the same metric. You need one row per device, one column per metric, and only the most recent reading for each device-metric combination.
Which transformation sequence best meets the requirement without substituting the largest reading for the latest reading?
Metric using Reading, and select Maximum as the aggregation.RecordedAt using Reading, and select Don't aggregate.Metric using Reading.Metric and Reading, then group the resulting attribute values by device.Microsoft Power BI Quiz
Practice Pivot Unpivot in Microsoft Power BI with focused quiz questions that help you check what you know, review explanations, and build confidence with test-style prompts.
This quiz focuses on Pivot Unpivot, giving you a quick way to practice the rules, question types, and explanations that matter most for Microsoft Power BI.
Try each quiz question before looking at the correct answer. Use the explanations to review missed ideas, then come back to similar questions until the pattern feels familiar.
A telemetry query contains DeviceID, RecordedAt, Metric, and Reading. Each device can have multiple readings for the same metric. You need one row per device, one column per metric, and only the most recent reading for each device-metric combination.
Which transformation sequence best meets the requirement without substituting the largest reading for the latest reading?
Metric using Reading, and select Maximum as the aggregation.RecordedAt using Reading, and select Don't aggregate.Metric using Reading. (correct answer)Metric and Reading, then group the resulting attribute values by device.DeviceID and Metric, keeping the row where RecordedAt is maximum. Once each combination has exactly one row, pivoting Metric using Reading with Don't Aggregate works perfectly because there's nothing left to aggregate.
A is the classic trap this question is designed to expose. Pivoting with Maximum aggregation selects the highest reading value, not the reading from the most recent timestamp. For a sensor that's trending downward, this silently returns stale data without any error.
B pivots on RecordedAt instead of Metric, which produces date-stamp columns rather than metric-name columns — completely backwards from the requirement of one column per metric.
D describes unpivoting, which is the opposite of what you need. Your data is already in a tall, attribute-value format (Metric, Reading); unpivoting again would corrupt the structure rather than reshape it toward the one-row-per-device goal.
Study tip: On Power BI transformation questions, whenever you see "most recent" paired with numerical data, treat it as a red flag — always filter to the correct row first, then aggregate or pivot. Never rely on value-based aggregations to proxy for time-based selection.A query has three employee rows and the columns EmployeeID, Jan, and Feb. Of the six month-value cells, two contain null and four contain numeric values. You select EmployeeID and apply Unpivot Other Columns.
How many data rows will the resulting query contain, excluding the header?
A query contains ProductID, Sales_Q1, Sales_Q2, Cost_Q1, and Cost_Q2. You need the result to contain ProductID, Quarter, Sales, and Cost, with one row per product-quarter combination.
Which sequence of Power Query transformations produces the required shape?
Attribute into measure and quarter, then pivot measure using Value. (correct answer)ProductID into measure and quarter, then unpivot Value.Value into measure and quarter, then pivot Attribute.ProductID using quarter.Sales_Q1, Sales_Q2, Cost_Q1, Cost_Q2). This gives you an Attribute column containing values like Sales_Q1 and a Value column with the corresponding numbers. Next, split Attribute on the underscore, producing two columns: one for the measure type (Sales or Cost) and one for the quarter (Q1 or Q2). At this point you have ProductID, Quarter, Measure, and Value. Finally, pivot the Measure column using Value as the values column — this fans Sales and Cost out into their own columns, giving you exactly the four-column result required. That's option A, and it's the correct answer.
Option B falls apart immediately because pivoting measure columns (which are already attributes, not values) doesn't make structural sense here — you'd need to unpivot first, not last. Option C splits the wrong column: Value holds numeric data, not compound names like Sales_Q1, so splitting it produces nonsense. Then pivoting Attribute afterward would recreate the wide format you started with, the opposite of what you want. Option D uses Transpose, which swaps rows and columns entirely — useful in niche scenarios, but irrelevant here since ProductID isn't a header row that needs promoting.
A helpful rule of thumb: unpivot first to consolidate, split to separate combined names, then pivot to spread distinct categories into columns. This "unpivot → split → pivot" pattern appears frequently in Power BI exam questions involving multi-measure, multi-period data.A query contains AssetID, Property, and PropertyValue. PropertyValue is text, and Property contains values such as Color and Location. An upstream join sometimes creates exact duplicate rows. You need one row per asset with property names as columns. Conflicting property values should remain visible as data-quality errors rather than being silently selected.
Which approach should you use?
Property using PropertyValue with Don't aggregate. (correct answer)PropertyValue using Property with Count.Property using PropertyValue with Maximum.AssetID, then group PropertyValue and concatenate all text values into one field.Property using PropertyValue with Don't aggregate. This setting tells Power Query to place the raw text value directly into the new column. Crucially, if two rows share the same AssetID and Property but have different PropertyValue entries (true conflicts), Power Query will throw an error for that cell rather than silently picking one. That error is your data-quality flag — exactly what the scenario requires.
B is wrong on two levels: it keeps true duplicates that will cause errors you didn't want, and pivoting PropertyValue by Property with Count produces numeric counts, not the property values themselves — the columns would be meaningless for this use case.
C removes duplicates only on AssetID, which would silently drop legitimate rows for assets with multiple properties. Using Maximum then silently picks the highest value when conflicts exist, hiding the data-quality issue instead of surfacing it.
D goes in the wrong direction entirely — unpivoting AssetID makes no sense here, and concatenating values into a single field buries conflicts inside a string rather than exposing them as errors.
Your study tip: on pivot questions, always ask what happens to conflicting values — the aggregation choice is often the trap, not the pivot column selection itself.A staffing query contains EmployeeID, EmploymentStatus, JanHours, FebHours, and MarHours. You need a long table with EmployeeID, EmploymentStatus, Month, and Hours. The text status must not appear in the numeric Hours column.
Which transformation most directly creates the required structure?
EmploymentStatus, then apply Unpivot Other Columns and rename the attribute as EmployeeID.EmployeeID, then apply Unpivot Other Columns and convert every resulting value to number.EmploymentStatus as the values column.EmployeeID and EmploymentStatus, then apply Unpivot Other Columns and rename the generated columns. (correct answer)EmployeeID, EmploymentStatus, Month, and Hours, you need both identifier columns (EmployeeID and EmploymentStatus) protected as anchors. That's exactly what D does: select both identifiers, apply Unpivot Other Columns, and Power Query automatically unpivots JanHours, FebHours, and MarHours into two new columns — one for the month name (rename to Month) and one for the numeric hours (rename to Hours). Since only numeric hour columns get unpivoted, the Hours column stays clean with no text contamination.
A is wrong because anchoring only EmploymentStatus means EmployeeID also gets unpivoted into the attribute column — you'd lose the proper employee identifier structure entirely, and renaming the attribute column to EmployeeID doesn't fix that.
B is wrong because anchoring only EmployeeID means EmploymentStatus gets unpivoted alongside the hour columns, dumping text values like "Full-Time" directly into the values column. Converting everything to a number would error out or corrupt those rows — exactly the problem the question warns against.
C describes a Pivot operation, not an Unpivot. Pivoting spreads rows into columns, which is the opposite transformation you need here.
Study tip: On Power BI exam questions involving Unpivot, always ask yourself: which columns should stay as identifiers? Select all of them before applying Unpivot Other Columns.A transaction query initially contains CustomerID, Month, and Amount, with several transactions for the same customer and month. You pivot Month using Amount and Sum, and later unpivot the resulting month columns.
What does the final long-form query contain?
CustomerID and Month, then sums the Amount values. If a customer has three transactions in January totaling $300, the pivot stores only 300 — the individual $100, $150, and $50 rows are gone permanently. When you then unpivot the month columns, Power Query reshapes that wide table back into a long format, producing one row per customer-month combination — but each row reflects the aggregated total, not the original transactions.
B is correct because the pivot's Sum aggregation irreversibly collapsed transaction-level detail into one value per customer-month pair, and unpivot simply reshapes that already-summarized data.
A is wrong because unpivot does not reverse a pivot "exactly." It can reverse the shape, but it cannot recover data that was destroyed by aggregation. This is a common and dangerous misconception.
C is wrong because individual transaction rows were eliminated during the pivot step. There is no mechanism for unpivot to recreate rows that no longer exist in the query.
D is wrong because unpivot operates on each column independently — it does not reduce rows to one per customer or retain only the first value.
The key study tip: aggregation is a one-way door. Any transformation that groups and summarizes data cannot be undone by reshaping alone.A source includes AccountID, Department, and period columns whose names begin with FY, such as FY2025 and FY2026. Future fiscal-year columns must be unpivoted automatically. The source might also add new descriptive columns, and those columns must remain identifiers rather than being unpivoted.
Which design is most resilient to both types of schema change?
AccountID, so every future column regardless of its name prefix is treated as a period and converted to rows.FY2025 and FY2026 in an Unpivot Only Selected Columns step, so any new descriptive columns added later are automatically left as identifiers.FY, and pass that generated list to an unpivot operation so future fiscal-year columns are included and new descriptive columns are excluded. (correct answer)Department first to reduce row granularity, and then transpose any fiscal-year columns the source adds so that period values move into rows rather than columns."FY" and passing that list to Table.Unpivot. In M code, you'd use something like List.Select(Table.ColumnNames(Source), each Text.StartsWith(_, "FY")) to generate that list at refresh time. This means any future FY2027, FY2028, etc. columns are automatically captured, while new descriptive columns added by the source — which won't begin with "FY" — are naturally left as identifiers. Both schema changes are handled without touching the query.
A is tempting but dangerous. "Unpivot Other Columns" after selecting only AccountID would unpivot every non-selected column, meaning any new descriptive column the source adds (like Region or Manager) would accidentally become period rows instead of identifier columns. It solves one problem while creating another.
B hardcodes the column names FY2025 and FY2026 explicitly. While new descriptive columns are safely left alone, any future fiscal-year column is silently ignored — it never gets unpivoted. You'd have to manually update the query each year.
D is a red herring. Pivoting Department and transposing columns are unrelated operations that don't address the schema-resilience problem at all, and would likely distort the data model.
The study tip: when you see "automatically" and "resilient to future changes" in the same question, think dynamic column selection using List.Select plus Text.StartsWith — that's Power Query's pattern for prefix-based unpivoting.A sales query contains the columns CustomerID, Region, Jan, Feb, and Mar. The source will add a new month column each month. The required output must retain CustomerID and Region and create one row per customer-region-month combination.
Which Power Query transformation should you use so that future month columns are reshaped automatically without editing the query?
CustomerID and Region, and then select Unpivot Other Columns. (correct answer)Jan, Feb, and Mar, and then select Unpivot Only Selected Columns.CustomerID, and then select Unpivot Other Columns, leaving Region as an attribute.Jan, Feb, and Mar, and then select Pivot Column using Region as values.CustomerID and Region are your fixed identifier columns, the correct approach is to select them and choose Unpivot Other Columns — answer A. This tells Power Query: "keep these two columns as-is, and unpivot everything else." The beauty of this approach is its future-proofing: when April, May, or December columns appear in the source data, they are automatically treated as additional month columns to unpivot, with zero query edits required.
Answer B is the most tempting trap. Manually selecting Jan, Feb, and Mar then using Unpivot Only Selected Columns hard-codes exactly those three months. Next month, when Apr appears, it stays as a separate column — the query never adapts automatically.
Answer C is flawed because leaving Region out of the selection means it would be treated as an attribute/value column rather than an identifier, corrupting your output structure. Both CustomerID and Region must be selected together.
Answer D confuses the direction entirely. Pivot Column does the opposite — it takes rows and spreads them into columns — which would move you further from the desired row-per-combination output.
Study tip: On Power BI exam questions about unpivoting, always ask yourself "what's stable vs. what might grow?" Select the stable columns, then choose Unpivot Other Columns for automatic future flexibility.A query contains Branch, Manager, Month, and Sales. Managers can change during the year. You need exactly one row per branch, month names as columns, and total sales for each branch-month combination. When you pivot Month, the result contains multiple rows for some branches.
What should you do before or as part of the pivot operation?
Manager, pivot Month, and use Don't aggregate for Sales.Manager, pivot Month, and use Sum for Sales. (correct answer)Branch, pivot Manager, and use Sum for Sales.Manager, unpivot Month, and use Sales as the attribute column.Manager creates multiple rows per branch (since managers change throughout the year). Even if you pivot Month, Power Query still sees distinct Branch-Manager combinations as separate rows — so you end up with duplicates. The fix is to remove Manager before pivoting, leaving Branch as the only row identifier. Then, pivoting Month with Sum for Sales correctly aggregates all sales per branch per month into a single value. That's exactly what B does, making it the correct answer.
A is wrong because keeping Manager doesn't resolve the multiple-row problem — you'd still get one row per Branch-Manager combination, not one row per branch. Choosing "Don't aggregate" makes this worse, since Power Query can't collapse duplicates at all.
C is wrong on two levels: removing Branch eliminates your primary identifier, and pivoting Manager produces manager names as column headers — the opposite of what the question asks for.
D is wrong because unpivoting Month would go in the reverse direction, creating more rows rather than spreading months into columns. You'd be moving away from the desired shape, not toward it.
Your study tip: when a pivot produces unexpected duplicate rows, always look at which non-pivoted columns are creating extra granularity and remove them first.A query contains Store, Product, and Units. For one store-product combination, separate source rows contain unit values of 2 and 3. You need one row per store, one column per product, and a value of 5 for that combination.
How should you configure the Pivot Column transformation?
Store, use Units as the values column, and select Count.Product, use Store as the values column, and select Don't aggregate.Product, use Units as the values column, and select Sum. (correct answer)Units, use Product as the values column, and select Maximum.Store would make stores into column headers (the opposite of what's needed), and Count would return 2 — the number of rows — not 5, the total units.
Option B pivots Product correctly but uses Store as the values column. Store contains text identifiers, not numeric unit counts, and Don't Aggregate only works safely when each combination has exactly one row — here there are two, which would cause an error or incorrect result.
Option D pivots Units, which are numeric values, not meaningful column headers. Beyond the conceptual error, Maximum would return 3 (the larger value), not 5.
Study tip: On Power BI exam questions about Pivot Column, always ask yourself three things in order — What becomes the headers? What fills the cells? How do duplicates collapse? Matching each to the business requirement will guide you to the right configuration every time.