Forum Discussion

phoenix20's avatar
phoenix20
New Member
9 years ago
Solved

Column creation - Ratio to sum by group

Hello all

I am struggling quite a lot with the following case. What I want to achieve is to create a column (important) per row that calculates the ratio of a value of that row, to the total by a group. Below is an example with excel with the formula:

 

Example

 

So, the highlighted column is what I want. For example row 2 , the 11,8 is calculated as a the value (B2) to the sum of the cars . The reason I need a column is that I want to use these weights later for creating another column.

 

When I create the following formula alone in Power BI to get totals per group, it works fine:

 

 

Sum_per_group = CALCULATE(SUM(RawData[Sales),RawData[Type]=RawData[Type])

 

If i then enter the value , so to find the ratio , as per below, I get only "Nan" ! (I added only the [Sales]/  )

Ratio = [Sales] /  CALCULATE(SUM(RawData[Sales),RawData[Type]=RawData[Type])

 

 

 

What am I doing wrong? :/


  • phoenix20 wrote:

    Hello all

    I am struggling quite a lot with the following case. What I want to achieve is to create a column (important) per row that calculates the ratio of a value of that row, to the total by a group. Below is an example with excel with the formula:

     

    Example

     

    So, the highlighted column is what I want. For example row 2 , the 11,8 is calculated as a the value (B2) to the sum of the cars . The reason I need a column is that I want to use these weights later for creating another column.

     

    When I create the following formula alone in Power BI to get totals per group, it works fine:

     

     

    Sum_per_group = CALCULATE(SUM(RawData[Sales),RawData[Type]=RawData[Type])

     

    If i then enter the value , so to find the ratio , as per below, I get only "Nan" ! (I added only the [Sales]/  )

    Ratio = [Sales] /  CALCULATE(SUM(RawData[Sales),RawData[Type]=RawData[Type])

     

     

     

    What am I doing wrong? :/


    phoenix20

    You can try to create a calculated column as below. See attached pbix file.

    Ratio To Type =
    RawData[Sales]
        / CALCULATE ( SUM ( RawData[Sales] ), ALLEXCEPT ( RawData, RawData[Type] ) )
    

3 Replies

  • Hi phoenix20,

     

    Try this clculated column formula

     

    =SUM(Data[Sales])/CALCULATE(SUM(Data[Sales]),FILTER(Data,Data[Type]=EARLIER(Data[Type])))

     

    Hope this helps.

  • davehus's avatar
    davehus
    Icon for Memorable Member rankMemorable Member

    Hi phoenix20,

     

    Try:

     

    SalesbyGroup = CALCULATE(SUM('Table'[sales]),ALLEXCEPT('Table', 'Table'[Type]))

     

    Ratio = DIVIDE([Total Sales],[SalesbyGroup])

     

    This should give you the desired outcome.

     

    Rgds,

     

    Dave

  • Eric_Zhang's avatar
    Eric_Zhang
    Icon for Microsoft Employee rankMicrosoft Employee

    phoenix20 wrote:

    Hello all

    I am struggling quite a lot with the following case. What I want to achieve is to create a column (important) per row that calculates the ratio of a value of that row, to the total by a group. Below is an example with excel with the formula:

     

    Example

     

    So, the highlighted column is what I want. For example row 2 , the 11,8 is calculated as a the value (B2) to the sum of the cars . The reason I need a column is that I want to use these weights later for creating another column.

     

    When I create the following formula alone in Power BI to get totals per group, it works fine:

     

     

    Sum_per_group = CALCULATE(SUM(RawData[Sales),RawData[Type]=RawData[Type])

     

    If i then enter the value , so to find the ratio , as per below, I get only "Nan" ! (I added only the [Sales]/  )

    Ratio = [Sales] /  CALCULATE(SUM(RawData[Sales),RawData[Type]=RawData[Type])

     

     

     

    What am I doing wrong? :/


    phoenix20

    You can try to create a calculated column as below. See attached pbix file.

    Ratio To Type =
    RawData[Sales]
        / CALCULATE ( SUM ( RawData[Sales] ), ALLEXCEPT ( RawData, RawData[Type] ) )