Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
5 years ago
Solved

How to Calculate Subtotal of Other Rows (Exclude Current Row Value)

I am looking for a way to generate a subtotal column that's the sum of other rows of data, so in other words, it ignores / excludes the current row's value from the subtotal.

 

  • Per the screenshot below, I want to create what's displayed in col D (metric1_subtotal_other rows).  
    • Col E contains examples of how I am arriving at the subtotals I would like to create
  • I already have cols A-C in my PBI report.
 
 

 

In case it's needed, you can access the sample PBI report here:

https://drive.google.com/file/d/1vGtN2pr8zHD_MSxANbs63KMcueOTcUPz/view?usp=sharing

 

Also, here is a link to the excel file used to create the PBI file and screenshot above:  https://drive.google.com/file/d/19spH03FeAMPh6SWE2zTYqFsSy8cWeHl8/view?usp=sharing

  • smpa01's avatar
    smpa01
    5 years ago

    Anonymoustry this

     

    _test = 
    IF (
        OR (
            OR ( ISINSCOPE ( SM[srg] ), ISINSCOPE ( SM[sds] ) ),
            ISINSCOPE ( SM[loc] )
        ),
        CALCULATE ( SUM ( CS1[metric1_subtotal] ), ALLSELECTED ( CS1 ) )
            - SUMX ( CS1, CS1[metric1_subtotal] ),
        IF (
            HASONEVALUE ( SM[sdv] ),
            VAR _1 =
                MAX ( SM[sdv] )
            VAR _2 =
                CALCULATE (
                    SUMX ( CS1, CS1[metric1_subtotal] ),
                    FILTER ( ALLSELECTED ( SM ), SM[sdv] <> _1 )
                )
            RETURN
                _2,
            SUMX ( CS1, CS1[metric1_subtotal] )
        )
    )

6 Replies

  • smpa01's avatar
    smpa01
    Community Champion

    Anonymouscan you try this as a measure?

     

    _x := 
    IF (
        HASONEVALUE ( SM[sdv] ),
        VAR _1 =
            MAX ( SM[sdv] )
        VAR _2 =
            CALCULATE (
                SUMX ( CS1, CS1[metric1_subtotal] ),
                FILTER ( ALLSELECTED ( SM ), SM[sdv] <> _1 )
            )
        RETURN
            _2,
        SUMX ( CS1, CS1[metric1_subtotal] )
    )

     

    • Anonymous's avatar
      Anonymous
      Not applicable

      smpa01  - Thanks for sharing this approach!

      It seems to work fine at the 'sdv' level (Level-1), but when i drill down to 'srg' (Level-2), it doesn't seem to follow the drill-level rows.

       

       

      Thoughts?

      • smpa01's avatar
        smpa01
        Community Champion

        AnonymousI am not sure how do you envision the calculation to pan out on a drill down level

         

        On individualsdv level (non-subtotal filter context), I am telling my measure to calculate evrything but that particular sdv level. So with sdv=2, it sums up 4+5+7+10.

        When you drill down and gove to sdv->srg lvel what do you plan this measure to return for sdv-srg level with 2-20 and 2-51?