Forum Discussion

ZiyadSyauqi's avatar
ZiyadSyauqi
Frequent Visitor
2 years ago
Solved

Calculate Custom Row Subtotal in Matrix Visual

Dear Power BI Community, I need help creating a custom row subtotal in a Matrix Visual. Specifically, I want to calculate the vs_n_min_1_pct column by dividing tm_actual by lm_actual. Here’s a brief...
  • Anonymous's avatar
    Anonymous
    2 years ago

    Hi ZiyadSyauqi ,

     

    Thanks for the reply from ridhoaryo24  / amitchandak .

     

    Please try:

     

    Enter Power Query and pivot the Attribute column:

     

    This is the data after pivoting:

     

    Exit Power Query and create a measure:

    Measure = 
    VAR _tm = SUM('Table'[tm_actual])
    VAR _lm = SUM('Table'[lm_actual])
    RETURN
    IF(
        HASONEVALUE('Table'[group_metrics]),
        DIVIDE(SUM('Table'[tm_actual]),SUM('Table'[lm_actual])),
        DIVIDE(_tm,_lm))

     

    After creation, set the format:

     

    Drag the following fields to the Matrix visual object:

     

    The final page effect is as follows:

     

    If you have any other questions please feel free to contact me.

     

    The pbix file is attached.

     

    Best Regards,
    Yang
    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!

  • ZiyadSyauqi's avatar
    ZiyadSyauqi
    2 years ago

    Thanks using some additional DAX code and combine with your solution i got this solution:

    ValueNew = 
    VAR lm_actual = CALCULATE(
        SUM(Table[Value]),
        Table[Attribute] = "lm_actual",
        ALLEXCEPT(Table, Table[group_metrics], Table[metrics])
    )
    
    VAR tm_actual = CALCULATE(
        SUM(Table[Value]),
        Table[Attribute] = "tm_actual",
        ALLEXCEPT(Table, Table[group_metrics], Table[metrics])
    )
    
    VAR lm_group = CALCULATE(
        SUM(Table[Value]),
        Table[Attribute] = "lm_actual",
        ALLEXCEPT(Table, Table[group_metrics])
    )
    
    VAR tm_group = CALCULATE(
        SUM(Table[Value]),
        Table[Attribute] = "tm_actual",
        ALLEXCEPT(Table, Table[group_metrics])
    )
    
    RETURN 
    SWITCH(
        TRUE(),
        SELECTEDVALUE(Table[Attribute]) = "vs_n_min_1_pct" && HASONEVALUE(Table[metrics]),
                DIVIDE(tm_actual, lm_actual, 0),
        SELECTEDVALUE(Table[Attribute]) = "vs_n_min_1_pct" && NOT HASONEVALUE(Table[metrics]),
                DIVIDE(tm_group, lm_group, 0),
        SUM(Table[Value])
    )