INTERSECT returns rows of its first table that appear in the second
Short answer
C INTERSECT keeps the first table's rows that also appear in the second, so ProductList holds matched rows of ProductsGroupA.
Question
Key Takeaways
DAX INTERSECT is order-dependent: it returns the rows of the first table expression that also exist in the second — the result's column lineage comes entirely from the left table.
A calculated table defined as INTERSECT(ProductsGroupA, ProductsGroupB) must be evaluated to know which rows appear in the result.
Common mistake: Assuming intersection is order-independent like set theory — if the arguments were swapped, the result would carry ProductsGroupB's columns and rows instead, so A and C are not both correct.
Expert Analysis
Why the Answer Is Correct
The DAX INTERSECT documentation defines the function as returning the rows of the left table that appear in the right table, preserving duplicates and using the left table's column naming and lineage. With INTERSECT(ProductsGroupA, ProductsGroupB), the left table is ProductsGroupA, so the result is all rows of ProductsGroupA that have a matching row in ProductsGroupB — option C.
Why the Other Options Are Wrong
Option A describes rows of ProductsGroupB matched in ProductsGroupA, which is the result of reversing the arguments to INTERSECT(ProductsGroupB, ProductsGroupA) — a different calculated table with different lineage. Option B describes a union-like result containing rows of both tables, which is the domain of UNION, not INTERSECT. Option D describes an anti-join (rows of the first table with no match in the second), which is closer to EXCEPT than to INTERSECT.
Community Comment Notes
One commenter claims INTERSECT is order-independent and that both A and C are correct — the documentation contradicts this by specifying left-table lineage and left-table rows. Every other comment and the unanimous vote identify C, with one quoting the function definition on duplicate retention and left-table semantics.
Official Reference
https://learn.microsoft.com/en-us/dax/intersect-function-dax
This link opens the official vendor documentation in a new tab.
Community Votes
100% of anonymous learners picked answer C. Votes are pick records left by other test-takers — they are not the verified answer.
Discussion 8 contributions
Compiled from public community threads and reader submissions, lightly edited for clarity. Handles and vote tallies are shown as recorded, and comments reflect the views of individual contributors.
From public community threads 8
-
INDEAVR 👍 13 Answered CC. all the rows in ProductsGroupA that have a matching row in ProductsGroupB
-
iamamantrivedi 👍 4The INTERSECT function in DAX is order-independent. It returns the common rows between two tables, regardless of the order in which you specify the tables. both a and c are correct.
-
Stehi 👍 3Would not A and C be both correct? ince INTERSECT finds rows that exist in both tables, the statement is correct from the perspective of either table—whether you're looking for matches in ProductsGroupA against ProductsGroupB or vice versa. The result is a table with rows that are common to both.
-
rajukg 👍 2Intersect is not commutative. In general, Intersect(T1, T2) will have a different result set than Intersect(T2, T1). Duplicate rows are retained. If a row appears in table_expression1 and table_expression2, it and all duplicates in table_expression_1 are included in the result set.
-
shahrzadkhb 👍 1 Answered CThe answer is correct. INTERSECT(<table_expression1>, <table_expression2>) Duplicate rows are retained. If a row appears in table_expression1 and table_expression2, it and any duplicates in table_expression_1 are included in the result set. Reference: https://learn.microsoft.com/sv-se/dax/intersect-function-dax
Show 3 more comments
-
Florinuca 👍 1The correct answer is C. See the example : https://learn.microsoft.com/en-us/dax/intersect-function-dax "Intersect is not commutative. In general, Intersect(T1, T2) will have a different result set than Intersect(T2, T1)."
-
jaume 👍 1 Answered CINTERSECT return the row-wise intersection of two tables. This means it retrieves only the rows that are present in both table expressions
-
rcaliandro 👍 1 Answered CC - all the rows in ProductsGroupA that have a matching row in ProductsGroupB
Reader comments & corrections
No reader corrections yet — spotted an error or have a note? Share it below.
Related Analysis
Practice All PL-300 Questions
Access 116 questions with complete answers and detailed explanations.
View Full PL-300 Practice Test →