Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

Filter Pie chart based on disconnected date table

Hi Community,

 

I have the following Pbix file:

https://www.dropbox.com/scl/fi/abmejaz39t7g6xro9z5d1/Test.pbix?rlkey=yv4pq8igcv8jw9jouovh55n5u&dl=0

 

I have a disconnected date table called PIDate which I use together with a filter Piname to select rows from the fact table (which is displayed in the table visual) based on the time frame in the PIDate. This works great together with a measure I have added to the table visual:

IsActiveMeasure =
SUMX (
    PIDate,
    SWITCH (
        TRUE (),
        MIN ( DimDate[Date]) >= MIN (PIDate[startdate])
            && MIN ( DimDate[Date] ) <= MAX(PIDate[enddate]) , 1,
        MAX ( DimDate[Date]) >= MIN ( PIDate[startdate])
            && MAX ( DimDate[Date]) <= MAX ( PIDate[enddate] ), 1
    )
)

I also have a main date table called DimDate, which relates to the fact table.

 

My main issue is that the pie chart does not get filtered based on the time frame from the PiDate when I select from the Piname filter. I have also tried writing a similar dax and applying it to the pie chart visual, but it doesn't work. How can I filter the pie chart based on the Piname filter. Your help is much appreciated.

 

 

 

  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi Anonymous ,

    Consider creating a virtual table and using it to iteratively sum.
    For example:

    Skipped 2 = 
    SUMX (
        FILTER (
            SUMMARIZE (
                'Fact',
                'Fact'[tsexecutionid],
                "filtervalue", [IsActiveMeasure],
                "skipped", SUM ( 'Fact'[skipped] )
            ),
            [filtervalue] = 1
        ),
        [skipped]
    )

    Output:

    Best Regards,
    Gao

    Community Support Team

     

    If there is any post helps, then please consider Accept it as the solution  to help the other members find it more quickly.
    If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!

    How to get your questions answered quickly --  How to provide sample data in the Power BI Forum

4 Replies

  • Hi Anonymous ,

    You can use USERELATIONSHIP() DAX to get the operation done if the tables are connected without actually connecting the tables.

     

    This requires an inactive relationship to be present between the tables. Although this looks like the tables are connected, the join doesn't work unless you use the earlier said DAX funcrton

     

    Regards,

    • Anonymous's avatar
      Anonymous
      Not applicable

      Hi, this will not work.

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi Anonymous ,

    Consider creating a virtual table and using it to iteratively sum.
    For example:

    Skipped 2 = 
    SUMX (
        FILTER (
            SUMMARIZE (
                'Fact',
                'Fact'[tsexecutionid],
                "filtervalue", [IsActiveMeasure],
                "skipped", SUM ( 'Fact'[skipped] )
            ),
            [filtervalue] = 1
        ),
        [skipped]
    )

    Output:

    Best Regards,
    Gao

    Community Support Team

     

    If there is any post helps, then please consider Accept it as the solution  to help the other members find it more quickly.
    If I misunderstand your needs or you still have problems on it, please feel free to let us know. Thanks a lot!

    How to get your questions answered quickly --  How to provide sample data in the Power BI Forum

    • Anonymous's avatar
      Anonymous
      Not applicable

      Thanks Anonymous it works great, I never thought of that 🙂

       

      I just adjusted it a bit to show all the data if nothing is selected, I hope that you agree 🙂

       

      Skipped 2 = IF(SELECTEDVALUE(PIDate[id]),
      SUMX (
          FILTER (
              SUMMARIZE (
                  'Fact',
                  'Fact'[tsexecutionid],
                  "filtervalue", [IsActiveMeasure],
                  "skipped", SUM ( 'Fact'[skipped] )
              ),
              [filtervalue] = 1
          ),
          [skipped]
      ),[skip])