Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
6 years ago
Solved

Pie chart dynamic legend

Hi All, I am trying to solve a problem looks like easy but not getting any such related topic that exactly match my requirement. So posting here as a new thread.   I am dealing with Sprint data. T...
  • v-lid-msft's avatar
    6 years ago

    Hi Anonymous ,

     

    We can create a category table and a count measure to meet your requirement:

     

     

    Then create a calculate colmun to compare the spirit,

     

    Index = VALUE(SUBSTITUTE([Sprint],"S",""))

    create the measure and put into the value field:

     

    Count = 
    VAR t =
        ADDCOLUMNS (
            CALCULATETABLE ( DISTINCT ( 'Table'[WorkItem] ) ),
            "NowSprint", CALCULATE (
                MAX ( [Index] ),
                FILTER ( 'Table', 'Table'[WorkItem] = EARLIER ( [WorkItem] ) )
            ),
            "fist", CALCULATE (
                MIN ( [Index] ),
                FILTER ( ALL ( 'Table' ), 'Table'[WorkItem] = EARLIER ( [WorkItem] ) )
            )
        )
    RETURN
        SWITCH (
            SELECTEDVALUE ( 'Categories'[Category] ),
            "Previous sprint", COUNTX ( t, IF ( [NowSprint] - [fist] = 1, 1, BLANK () ) ) + 0,
            "More than 2 Sprints", COUNTX ( t, IF ( [NowSprint] - [fist] >= 2, 1, BLANK () ) ) + 0
        )

     

     


    BTW, pbix as attached.

     

    Best regards,

    Community Support Team _ Dong Li
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

  • v-lid-msft's avatar
    v-lid-msft
    6 years ago

    Hi Anonymous ,

     

    We can put the following measure into a table to meet your requirement:

     

    IsInCategory =
    VAR NowSprint =
        MAX ( 'Table'[Index] )
    VAR first =
        CALCULATE (
            MIN ( 'Table'[Index] ),
            FILTER ( ALL ( 'Table' ), 'Table'[WorkItem] = MAX ( 'Table'[WorkItem] ) )
        )
    VAR category =
        IF (
            NowSprint - first = 1,
            "Previous sprint",
            IF ( NowSprint - first >= 2, "More than 2 Sprints", "Now Sprint" )
        )
    RETURN
        IF ( category IN FILTERS ( Categories[Category] ), "Yes", BLANK () )

     


    BTW, pbix as attached.

     

    Best regards,

    Community Support Team _ Dong Li
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

  • v-lid-msft's avatar
    v-lid-msft
    6 years ago

    Hi Anonymous ,

     

    We can use the following measure to meet your requirement:

     

    IsInCategory =
    VAR NowSprint =
        MAX ( 'Table'[Index] )
    VAR first =
        CALCULATE (
            MIN ( 'Table'[Index] ),
            FILTER ( ALL ( 'Table' ), 'Table'[WorkItem] = MAX ( 'Table'[WorkItem] ) )
        )
    VAR category =
        IF (
            NowSprint - first = 1,
            "Previous sprint",
            IF ( NowSprint - first >= 2, "More than 2 Sprints", "Now Sprint" )
        )
    RETURN
        IF (
            COUNTROWS ( FILTERS ( Categories[Category] ) )
                = COUNTROWS ( ALL ( Categories[Category] ) ),
            category,
            IF ( category IN FILTERS ( Categories[Category] ), category, BLANK () )
        )

     


    BTW, pbix as attached.

     

    Best regards,

    Community Support Team _ Dong Li
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.