Forum Discussion

PSVSupp1913's avatar
PSVSupp1913
Regular Visitor
3 years ago
Solved

Calculate average on table with multiple dimensions

I have the following table:
D

DateLocationClientValue
2023-03-21A115
2023-03-21A210
2023-03-21A325
2023-03-21B130
2023-03-22A115
2023-03-22A210
2023-03-22A325
2023-03-22B130
2023-03-23A15
2023-03-23A25
2023-03-23B15

 

I want to create a visual with the average, depending on the selected data.

For example, I want to see the average of pallets per customer per day, if I select 2023-03-21 / 2023-03-22. 

That should be:

ClientAverage
145
210
325

 

I thought I should use Avg = sum( [Value]) / DISTINCTCOUNT ( Date ) but then I get this:

ClientAvg
122,5
210
325

 

What should I do to resolve this?

  • Anonymous's avatar
    Anonymous
    3 years ago

    Hi PSVSupp1913 ,

    Please try below steps:

    1. below is my test table

    Table:

    2. create a measure with below dax formula

    Avg =
    VAR min_date =
        MINX ( 'Table', [Date] )
    VAR max_date =
        MAXX ( 'Table', [Date] )
    VAR tmp =
        FILTER ( 'Table', 'Table'[Date] >= min_date && 'Table'[Date] <= max_date )
    VAR tmp1 =
        CALCULATETABLE ( VALUES ( 'Table'[Date] ), tmp )
    VAR _val =
        SUMX ( tmp, [Value] )
    VAR _ctn =
        COUNTROWS ( tmp1 )
    RETURN
        DIVIDE ( _val, _ctn )
    

    3. add a table and slicer visual

    Please refer the attached .pbix file.

     

    Best regards,
    Community Support Team_Binbin Yu
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

3 Replies

  • Anonymous's avatar
    Anonymous
    Not applicable

    Hi PSVSupp1913 ,

    Please try below steps:

    1. below is my test table

    Table:

    2. create a measure with below dax formula

    Avg =
    VAR min_date =
        MINX ( 'Table', [Date] )
    VAR max_date =
        MAXX ( 'Table', [Date] )
    VAR tmp =
        FILTER ( 'Table', 'Table'[Date] >= min_date && 'Table'[Date] <= max_date )
    VAR tmp1 =
        CALCULATETABLE ( VALUES ( 'Table'[Date] ), tmp )
    VAR _val =
        SUMX ( tmp, [Value] )
    VAR _ctn =
        COUNTROWS ( tmp1 )
    RETURN
        DIVIDE ( _val, _ctn )
    

    3. add a table and slicer visual

    Please refer the attached .pbix file.

     

    Best regards,
    Community Support Team_Binbin Yu
    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

    • PSVSupp1913's avatar
      PSVSupp1913
      Regular Visitor

      Thanks, that works as well!

      But I found another solution. By adding a measure in the data table, Total=sum([Value]), the Dax average worked. Avg = [Total] / DISTINCTCOUNT ( [Date] ).