Forum Discussion

gjgj111111's avatar
gjgj111111
Frequent Visitor
5 years ago
Solved

Dynamic calculation based on multiple slicer

Hi All, I could use some help here.. I want to make a calculation based on multiple slicer selection and I want to show it in a table Slicer 1: Date >>> To show Output of the selected date based o...
  • Anonymous's avatar
    Anonymous
    4 years ago

    Hi gjgj111111 

    I suggest you to combine all XX:PO columns to a same column. In Power BI, we always calculate values from same columns. Then add an Index column in your data model. You can add it directly in your data source or you can add this column by Power Query.

    For reference: How to create group index with Power Query or R

    You table will look like as below.

    Then build a measure.

    CNPO = 
    VAR _NPO =
        SUMX ( FILTER ( 'Table', 'Table'[CF] = "NPO" ), 'Table'[PO] )
    VAR _MaxIndex =
        MAX ( 'Table'[Index] )
    VAR _MaxIndexValue =
        CALCULATE (
            SUM ( 'Table'[PO] ),
            FILTER (
                ALL ( 'Table' ),
                'Table'[Index] <> 1
                    && 'Table'[Index] = _MaxIndex
                    && 'Table'[Date] = MAX ( 'Table'[Date] )
            )
        )
    VAR _List =
        CALCULATETABLE (
            VALUES ( 'Table'[PO] ),
            FILTER ( 'Table', 'Table'[Index] <> _MaxIndex && 'Table'[Index] <> 1 )
        )
    VAR _Product =
        IF (
            MAX ( 'Table'[Index] ) = 1
                || DISTINCTCOUNT ( 'Table'[Index] ) = 2,
            1,
            PRODUCTX ( _List, [PO] )
        )
    RETURN
        IF (
            ISFILTERED ( 'Table'[CF] ),
            ( _NPO + _MaxIndexValue * 1000 ) * _Product,
            BLANK ()
        )

    Result is as below. By default it will show blank.

    If only NPO is selected in slicer 2 & 3-Mar-14 is selected in slicer 1
    measure should be CNPO = 760543

    If NPO and some other valuein slicer 2 (ex. CT) are selected in slicer 2 & 3-Mar-14 in slicer 1is selected 
    measure should be CNPO = (760543 + (1.02049*1000)) = 761,563.49

    If NPO and all other value are selected & 27-Nov-14 in slicer 1 is selected
    measure should be CNPO = (786863.6115 + (0.154227*1000)) * 0.961114 * 1.004037 * 0.999307 * 0.999554 * 0.999548 * 1.000667 * 1.013536 = 769036.2286

    Best Regards,
    Rico Zhou

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.