Forum Discussion

SMYAguirre's avatar
SMYAguirre
Frequent Visitor
3 years ago
Solved

Divide every row in a Matrix by a static calculated row

I am not entirely sure how to ask this question, but I will give it my best shot.  I am fairly new to Power BI, but worked in other data modeling/reporting systems. 

 

We have found that income statments are not easy in Power BI, but we have managed a work-around with the exception of one area.  We need to get the percentage of each row against Revenue.  So, for example, every row in the matrix below should divide against the highlighted revenue value.  However, nothing we have tried will make that figure static down the rows and as a result, the percentages get wacky.  

 

 

The model looks as follows:

 

We have searched the internet for solutions, tried every type of measure we could find, attemped a few creative measures of our own, created a grouped "revenue only" table using a primary key to sum those totals in measures.  

Any help is greatly appreciated.  Until this is resolved, these reports are being manually distributed to the sales team.  

 

 

 

  • Hi SMYAguirre ,

     

    Please try:

    Measure =
    VAR _a =
        SUM ( TransactionsAgg[GLTotalAmount_Rev] )
    VAR _b =
        CALCULATE (
            SUM ( TransactionsAgg[GLTotalAmount_Rev] ),
            FILTER ( ALL ( '..Report Structure' ), [GL Category] = "Revenue" ),
            REMOVEFILTERS (
                TransactionsAgg[ChartOfAccounts.GL Sub Category],
                TransactionsAgg[ChartOfAccounts.GL_Code_Desc]
            )
        )
    RETURN
        DIVIDE ( _a, _b )
    

    Final output:

    Best Regards,

    Jianbo Li

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

7 Replies

    • Anonymous's avatar
      Anonymous
      Not applicable

      this worked for me! but when I apply a filter that changes the total amount in revenue it doesn't consider this change in revenue. For example, if revenue was 200 and then I apply a slicer and it becomes 100 it will still use the 200 revenue as the denominator. 

  • Hi SMYAguirre ,

     

    Please try:

    Measure =
    VAR _a =
        SUM ( TransactionsAgg[GLTotalAmount_Rev] )
    VAR _b =
        CALCULATE (
            SUM ( TransactionsAgg[GLTotalAmount_Rev] ),
            FILTER ( ALL ( '..Report Structure' ), [GL Category] = "Revenue" ),
            REMOVEFILTERS (
                TransactionsAgg[ChartOfAccounts.GL Sub Category],
                TransactionsAgg[ChartOfAccounts.GL_Code_Desc]
            )
        )
    RETURN
        DIVIDE ( _a, _b )
    

    Final output:

    Best Regards,

    Jianbo Li

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

    • SMYAguirre's avatar
      SMYAguirre
      Frequent Visitor

      Thank you so much!!  This worked and looking at the measure I understand why it worked.  Thank you again!!!

  • SMYAguirre's avatar
    SMYAguirre
    Frequent Visitor

    Thank you. This partially worked, but not completely.

    I used: 

    Measure = DIVIDE(TransactionsAgg[GLTotalAmount_Rev]),CALCULATE(SUM(TransactionsAgg[GLTotalAmount_Rev]), FILTER(ALL(TransactionsAgg),[GL Category]="Revenue")))


    So this is dividing the sum of GLTotalAmount by the sum of GLTotalAmount where the GL Category = Revenue, correct? That makes sense, but this is the result.

     

     

    The levels below were not populated.  Is there a way to include the lowest level in that measure? 

    Thank you again!!

  • Hi SMYAguirre ,

     

    What is your measure TransactionsAgg[GLTotalAmount_Rev]? What does your data look like? Sorry for that the information you have provided is not making the problem clear to me. Can you please share more details to help us clarify your scenario?

    Please provide me with more details about your table and your problem or share me with your pbix file after removing sensitive data.

     

    Refer to:

    How to provide sample data in the Power BI Forum

    How to Get Your Question Answered Quickly

     

    Best Regards,

    Jianbo Li

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

    • SMYAguirre's avatar
      SMYAguirre
      Frequent Visitor

      I apologize that I was not clear.  That "TransactionsAgg[GLTotalAmount_Rev]" is the "Value" column you see in the matrix.  I have modified the data and the report so I could share pbix file and the matrix in question.  Please see the link below:

       

      https://1drv.ms/u/s!ArrJvtdfd3Ak6im_zT5KDplM4E-C?e=7DNBYu

       

      The problem I am having is that while the measure you provided works at the top level, it does not work for the levels beneath (highlighted in screen shot below):

       

      I hope this makes things more clear.  Thank you!