cancel
Showing results for
Did you mean:
Frequent Visitor

## Average selected data (Athletes' performances)

Hi there,

I have a list of athletes, events and performances and I would like to average the performances of each athlete in a specific event. The following is an example of the dataset:

 Competition_Results_Family_name Competition_Results_Country Competition_Results_Score Competition_Results_Phase Competition_Results_Event ABEL CAN 323.25 Final Women 10m Springboard ABEL CAN 347.15 Final Women 10m Springboard ABEL CAN 338.35 Final Women 10m Springboard ABEL CAN 316.95 Final Women 3m Springboard ABEL CAN 286.5 Final Women 3m Springboard AUFFRET FRA 486.3 Final Women 10m Springboard AUFFRET FRA 491.25 Final Women 10m Springboard AUFFRET FRA 493.4 Final Women 10m Springboard

For example, I would like to average athlete's performances in Women 10m Springboard only. In the case of ABEL (Average[323.25, 347.15, 338.35]) and AUFFRET (Average[486.3, 491.25, 493.4]) and do the same with all the athletes participating in that specific event... Is there a way (DAX) to do this?

Thank you

1 ACCEPTED SOLUTION
Community Champion

Hi @Flotenva, looks like you are missing the ALL line from my code example.

6 REPLIES 6
Community Champion

Short answer is yes.  How you do it will depend on your overall approach.

A simple example would be a Dax measure that is simply "=Average(Table[Field])"  (where Table and Field is the field in your table you wish to average).  Place that formula on a card and add in 2 slicers.  1 slicer to pick the event and the other to pick the athlete.

If you wanted to get DAX to do all of it, you would use CALCULATE and you could set that in the formula.  You would need to figure out how DAX will learn of your selection, but if you give us some more details i'm sure we could advise.

Frequent Visitor

Thanks Ross,

Calculating the average is just an example...

My main concern is to know if it is possible to use a DAX to do calculations on a specific dataset when values in 2 columns are the same. For example, doing average on a dataset when value in COLUMN1 and COLUMN2 coincide.

NAME       EVENT       PERFORMANCE    AVERAGE

Athlete A - Event A - 10.0

Athlete A - Event A - 10.5

Athlete A - Event A - 11

Athlete A - Event B - 0

Athlete A - Event B - 0.5

Athlete A - Event B - 1

In this case, I would like to be able to calculate the average for Athlete A in Event A [10.0, 10.5, 11] = 10.5 and

calculate average for Athlete A in event B [0, 0.5, 1] = 0.5

But I said, average is just an example... in the future I would like to Normalize the performance Score according to previous performances..

Community Champion

I think i get what you are after.  You would need to use the "Create Column" and try something like this:

```AveragePerformance = Calculate(
Average('Table'[Performance]),
all('Table')
'Table'[Event] = EARLIER('Table'[Event]),
'Table'[Name] = EARLIER('Table'[Name])
)```

I hope that might create what you are chasing.

Frequent Visitor

Hi Ross,

I have done what you suggested:

Rank = CALCULATE(

AVERAGE('Athletics (ParseHub)'[Mark]),

'Athletics (ParseHub)'[Name]=EARLIER('Athletics (ParseHub)'[Name]),

'Athletics (ParseHub)'[Event]=EARLIER('Athletics (ParseHub)'[Event])

)

But I'm getting exactly the same value as in the column [Mark]...

Community Champion

Hi @Flotenva, looks like you are missing the ALL line from my code example.

Frequent Visitor

Thank you so much!!

Announcements

#### Happy New Year from Power BI

This is a must watch for a message from Power BI!