Forum Discussion

WinterMist's avatar
WinterMist
Icon for Impactful Individual rankImpactful Individual
4 years ago
Solved

Filter Table by Column Values Associated with Selected Slicer Values

Hello,   I am struggling to filter a table by selecting all rows which have column values associated with the selected slicer values. See example below.   Table = “Customers”   Slicer = ...
  • DataInsights's avatar
    4 years ago

    WinterMist,

     

    You can achieve this with a disconnected table, created in either Power Query or DAX. Here's the DAX calculated table:

     

    SlicerNames = SUMMARIZE ( Customers, Customers[Name], Customers[FamilyID] )

     

    Create the Name slicer using this calculated table. It should not have a relationship with the Customers table.

     

    Next, create this measure. The TREATAS function captures the selected value(s) in the slicer, and treats them as if they were from the Customers table.

     

    FamilyID Measure =
    CALCULATE (
        MAX ( Customers[FamilyID] ),
        TREATAS ( VALUES ( SlicerNames[FamilyID] ), Customers[FamilyID] )
    )

     

    In the table visual, add ID and Name (from Customers), and the measure.

     

  • DataInsights's avatar
    DataInsights
    4 years ago

    WinterMist,

     

    You're one step from success. 🙂 In the V1 (Route 1) pbix, I changed the relationship between Dim Customer Visual and Dim Customer to 1:*. You have to change the cardinality before changing the cross-filter direction. Since Dim Customer Visual is a clone of Dim Customer, it is actually a 1:1 relationship, but you have to define it as 1:* (single cross-filter direction) for this solution to work.

     

     

    Here's the result after making the change above:

     

     

  • DataInsights's avatar
    DataInsights
    4 years ago

    WinterMist,

     

    I added another member to the Dim Customer family: Dim Customer Visual Root. This is a calculated table that follows the same pattern as Dim Customer Visual. Notice that the relationship is between Dim Customer Visual[Root Parent ID] and Dim Customer Visual Root[Customer Key]. This allows parents and children to be included in Total Sales, while displaying only parents in the visual.

     

     

    DAX for the calculated table:

     

    Dim Customer Visual Root = 
    FILTER ('Dim Customer', 'Dim Customer'[IsRootParent] = 1 )

     

    Measure:

     

    Total Sales by Root Parent = 
    CALCULATE (
        SUM ( 'Fact S1'[Sales] ),
        ALL ( 'Dim Customer' ), // clear all filters from the slicer
        VALUES ( 'Dim Customer'[RootParentID] ), // get the RootParentID from the slicer
        KEEPFILTERS ( 'Dim Customer Visual Root' ),
        USERELATIONSHIP ( 'Dim Customer Visual Root'[CustomerKey], 'Dim Customer Visual'[RootParentID] ),
        USERELATIONSHIP ('Dim Customer Visual'[CustomerKey], 'Dim Customer'[CustomerKey] )
    )

     

    Use Dim Customer Visual Root columns in the Table 2 visual: