Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Microsoft is giving away 50,000 FREE Microsoft Certification exam vouchers. Get Fabric certified for FREE! Learn more

Reply
Pan_Forex
Helper III
Helper III

Average from every day

Hi guys! I wonder if it is possible to create a table that adds new rows every day and leaves the old ones unchanged. I have a table that is updated several times every day with new rows and a second table that counts the average for each player. 

 

     Date   ID Player Score
20.01.2023  1025  A       8       
20.01.20231025B4
20.01.20231025C5
20.01.20231025D7
18.01.20231020A6
18.01.20231020B5
18.01.20231020C5
18.01.20231020D5
18.01.20231020E4
18.01.20231020F6
17.01.2023958F5
17.01.2023958C6
17.01.2023958D5
17.01.2023958E3

Now it looks like this:

Player              Average Score
A7
B4.5
C5.33
D5.66
E3.5
F5.5

I would like the new table to count such a ranking from each day. It would add new updated scores every day, while leaving the old scores unchanged:

DatePlayer     Average Score
20.01.2023      A7
20.01.2023B4.5
20.01.2023C5.33
20.01.2023D5.66
18.01.2023A6
18.01.2023B5
18.01.2023C5.5
18.01.2023D5
18.01.2023E3.5
18.01.2023F5.5
17.01.2023F5
17.01.2023C6
17.01.2023D5
17.01.2023E3

 

2 ACCEPTED SOLUTIONS

@Pan_Forex 

Please try

New Table =
ADDCOLUMNS (
SUMMARIZE ( 'Table', [Date], 'Table'[Player] ),
"Average Score",
CALCULATE (
AVERAGE ( 'Table'[Score] ),
ALLEXCEPT ( 'Table', 'Table'[Player] ),
[Date] <= EARLIER ( [Date] )
)
)

View solution in original post

FreemanZ
Super User
Super User

hi @Pan_Forex 

this shall also work:

Table = 
ADDCOLUMNS(
    SUMMARIZE(
        TableName,
        TableName[Date],
        TableName[Player]
    ),    
    "Avg",
    VAR _date=TableName[Date]
    RETURN CALCULATE(
    AVERAGE(TableName[Score]),
    TableName[Date]<=_date
    )
)

 

FreemanZ_0-1674284207696.png

 

View solution in original post

6 REPLIES 6
FreemanZ
Super User
Super User

hi @Pan_Forex 

this shall also work:

Table = 
ADDCOLUMNS(
    SUMMARIZE(
        TableName,
        TableName[Date],
        TableName[Player]
    ),    
    "Avg",
    VAR _date=TableName[Date]
    RETURN CALCULATE(
    AVERAGE(TableName[Score]),
    TableName[Date]<=_date
    )
)

 

FreemanZ_0-1674284207696.png

 

tamerj1
Super User
Super User

Hi @Pan_Forex 

please try

Average Score =
CALCULATE (
AVERAGE ( 'Table'[Score] ),
ALLEXCEPT ( 'Table', 'Table'[Player] ),
[Date] <= MAX ( [Date] )
)

thank you for your reply. Your solution works but I would still like to have this data in a new table and not as a measure. Is this possible? 

@Pan_Forex 

Please try

New Table =
ADDCOLUMNS (
SUMMARIZE ( 'Table', [Date], 'Table'[Player] ),
"Average Score",
CALCULATE (
AVERAGE ( 'Table'[Score] ),
ALLEXCEPT ( 'Table', 'Table'[Player] ),
[Date] <= EARLIER ( [Date] )
)
)

amitchandak
Super User
Super User

@Pan_Forex , try a measure with help from the date table

 

Cumm Sales = CALCULATE(AverageX(Values('Date'[Date]), CALCULATE(SUM(Table[Score]))) ,filter(all('Date'),'Date'[date] <=max('Date'[date])))

Full Power BI Video 20 Hours YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

Thank you for your reply. I would like the average to be calculated for each player separately and not all together from each day, and to create a new table with results only. 

Helpful resources

Announcements
March PBI video - carousel

Power BI Monthly Update - March 2025

Check out the March 2025 Power BI update to learn about new features.

Notebook Gallery Carousel1

NEW! Community Notebooks Gallery

Explore and share Fabric Notebooks to boost Power BI insights in the new community notebooks gallery.

March2025 Carousel

Fabric Community Update - March 2025

Find out what's new and trending in the Fabric community.

Top Kudoed Authors