Forum Discussion

Bohumil_Uhrin's avatar
Bohumil_Uhrin
Helper II
7 years ago
Solved

Averagex with slicer

Hello,

I have a dataset of runners and times of their arrivals to checkpoints.

 

I need to do a pivot table, which will show average time of arrival to the checkpoint:

 

 

To create a measure like this, I used the following formula:

average2:=averagex(all('sample'[Name];'sample'[Time]);'sample'[max])

Where "max" is simply:

max:=max('sample'[Time])

Now the problem is, when I used a slicer on the runner name, it does not affect the calculation.  Its prorably because of using "ALL" function, but I couldnt create a formula without it.

 

I also tried something like this, but didnt work like I wanted.. it just returned actual times, not averages:

average1:=AVERAGEX(VALUES('sample'[Checkpoint]);'sample'[max])

(here I saved my file)

 

Any help appreciated :)

  • Hi Bohumil_Uhrin

     

    If you want show the average by runner name, you may create a measure as below. 

    average3 = FORMAT(averagex(ALL('sample'[Time],'Sample'[Checkpoint]),'sample'[max]),"HH:MM")

     

    If you want to use slicer to change the average value for the table, you may use DISTINCT('Sample'[Name]) to create a slicer table first. Then you may get the table with below measure:

    average2 = FORMAT(averagex(all('sample'[Name],'sample'[Time]),'sample'[max]),"HH:MM")
    average4 = IF(HASONEVALUE(Slicer[Name]),[average3],[average2])

     

    Regards,

    Cherie

     

1 Reply

  • v-cherch-msft's avatar
    v-cherch-msft
    Microsoft Employee

    Hi Bohumil_Uhrin

     

    If you want show the average by runner name, you may create a measure as below. 

    average3 = FORMAT(averagex(ALL('sample'[Time],'Sample'[Checkpoint]),'sample'[max]),"HH:MM")

     

    If you want to use slicer to change the average value for the table, you may use DISTINCT('Sample'[Name]) to create a slicer table first. Then you may get the table with below measure:

    average2 = FORMAT(averagex(all('sample'[Name],'sample'[Time]),'sample'[max]),"HH:MM")
    average4 = IF(HASONEVALUE(Slicer[Name]),[average3],[average2])

     

    Regards,

    Cherie