Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

Add total bar to bar chart when multiple values are selected

Hi,

I have a requirement where I have to add a total bar to a bar graph but it should be visible only when 2 or more values are selected in the slicer. Otherwise when only one value is selected it should show only that bar.

It should look like the below screenshots.


Regards,

Vanshika

  • Anonymous OK, I was able to do it using the following measure coupled with a disconnected table. See PBIX attached below signature.

    Measure = 
        VAR __Tiers = DISTINCT( 'Table'[Tier] )
        VAR __Count = COUNTROWS( __Tiers )
        VAR __ShowTotal = IF( __Count > 1, TRUE(), FALSE() )
        VAR __Tier = MAX( 'Tiers'[Tier] )
        VAR __Result = 
            SWITCH( TRUE(),
                __Tier IN __Tiers, SUMX( FILTER( 'Table', [Tier] = __Tier ), [Value] ),
                __Tier = "Total" && __ShowTotal, SUMX( 'Table', [Value] ),
                BLANK()
            )
    RETURN
        __Result

3 Replies

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion

    Anonymous Pretty sure that would require a disconnected table for your x-axis and then a measure that included the logic on whether to return a value or not. I'll see if I can mock it up or perhaps you could post sample data.

  • Greg_Deckler's avatar
    Greg_Deckler
    Icon for Community Champion rankCommunity Champion

    Anonymous OK, I was able to do it using the following measure coupled with a disconnected table. See PBIX attached below signature.

    Measure = 
        VAR __Tiers = DISTINCT( 'Table'[Tier] )
        VAR __Count = COUNTROWS( __Tiers )
        VAR __ShowTotal = IF( __Count > 1, TRUE(), FALSE() )
        VAR __Tier = MAX( 'Tiers'[Tier] )
        VAR __Result = 
            SWITCH( TRUE(),
                __Tier IN __Tiers, SUMX( FILTER( 'Table', [Tier] = __Tier ), [Value] ),
                __Tier = "Total" && __ShowTotal, SUMX( 'Table', [Value] ),
                BLANK()
            )
    RETURN
        __Result
    • Anonymous's avatar
      Anonymous
      Not applicable

      Thank you Greg_Deckler for the solution. It is solving my use case.