Forum Discussion

yukon's avatar
yukon
Helper I
6 years ago
Solved

average by group

Hello,

 

I'm start learning DAX. I'm using DAX to get below figure. But i have difficult to get correct figure. What i want to do is "Average Plan Sales Amout by Group (Year)".

 

Except result

 

Year      CountryPlan Sales AmountAvg Amt.
2019AU1918365911019810
2019ID63095269999328.875
2019IN967421710526443.57
2019JP741382610668481.33
2019KR2167148811319412.4
2019MY80652778731393.5
2019SG125168778953432.333
2019TH71038307171710
2019TW72395907239590
2020AU10005000
2020ID20005500
2020IN30006000
2020JP40006500
2020KR50007000
2020MY60007500
2020SG70008000
2020TH80008500
2020TW90009000

 

 

Here is my DAX formula in Excel Data Model. I'm using Dax in excel data model.

 

 

Many thanks for your help.

  • Hola!

     

    Try this...

     

    =AVERAGEX(
    	FILTER(
    		Table1,
    		Table1[Year] = EARLIER(Table1[Year])
    	),
    	Table1[Plan Sales Amount]
    )

     

     

     

  • yukon 

    is it some running average? it looks like you have an error in Excel

    if you need average from all groups by year try a measure

    Average Plan Sales Amout by Group (Year) =
    CALCULATE(AVERAGE(Table[Plan Sales Amount]), ALLEXCEPT(Table, Table[Year]) )

    or column from littlemojopuppy  solution

  • Anonymous's avatar
    Anonymous
    6 years ago

    yukon 

    Average by group can be done in ways in DAX, like this above answers. However, I think the data you provided is not correct for some reason. How can you get different values when you average. Maybe check your excel files and also provide the formula you used so we can see what are you calculating to get that expected result.

     

    Usually, you get average by group(year) with column or measures using:

    RESULT = CALCULATE(AVERAGE([Plan Sales Amount]), ALLEXCEPT(Table,[Year]))


    Best regards
    Paul Zheng

11 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    yukon 

    Average by group can be done in ways in DAX, like this above answers. However, I think the data you provided is not correct for some reason. How can you get different values when you average. Maybe check your excel files and also provide the formula you used so we can see what are you calculating to get that expected result.

     

    Usually, you get average by group(year) with column or measures using:

    RESULT = CALCULATE(AVERAGE([Plan Sales Amount]), ALLEXCEPT(Table,[Year]))


    Best regards
    Paul Zheng

    • yukon's avatar
      yukon
      Helper I

      az38 ; littlemojopuppy ; amitchandak ; Anonymous 

       

      You all provide the AVG formula is corrrect. Excel file formula is wrong after i checked with the person who give me the file.

       

      Thank you so much for sharing the formula. I have learn a lot from you all.

       

  • az38's avatar
    az38
    Community Champion

    Hi yukon 

    try ALLEXCEPT

    Average Plan Sales Amout by Group (Year) =
    CALCULATE(AVERAGE(Table[Plan Sales Amount]), ALLEXCEPT(Table, Table[Year], Table[Country]) )
  • littlemojopuppy's avatar
    littlemojopuppy
    Community Champion

    Hola!

     

    Try this...

     

    =AVERAGEX(
    	FILTER(
    		Table1,
    		Table1[Year] = EARLIER(Table1[Year])
    	),
    	Table1[Plan Sales Amount]
    )

     

     

     

    • littlemojopuppy's avatar
      littlemojopuppy
      Community Champion

      The difference between what I posted is that az38 created a measure and I created a calculated column (which is what you seemed to want).  His will work if you want a measure, and I've shown mine works as a column.

      • yukon's avatar
        yukon
        Helper I

        littlemojopuppy ,

         

        Thank for your formula. What i'm trying to get below result

         

        so sorry for my poor explanation