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

Be one of the first to start using Fabric Databases. View on-demand sessions with database experts and the Microsoft product team to learn just how easy it is to get started. Watch now

Reply
PaulDenne
Helper I
Helper I

17 week average

have got a date set of daily timesheets

have done a measure to summarise weekly hours

but can't get the average right to exclude zero weeks in the average 

even ones with all 17 weeks populated average doesn't seem quite right

 

Weekly Hours = CALCULATE(SUM('Detailed - Timesheet Report'[Regular Hours]), ALLEXCEPT('Detailed - Timesheet Report', 'Detailed - Timesheet Report'[Name], 'Date'[Current week], 'Date'[Year]) )
 
Rolling17CalendarWeekAvg =
VAR CurrentDate = MAX('Date'[Date])  // Use a date column from your Date table
VAR CurrentWeek = WEEKNUM(CurrentDate, 2)  // Get the current week number+VAR CurrentEmployee = SELECTEDVALUE('Detailed - Timesheet Report'[Name])
VAR CurrentEmployee = SELECTEDVALUE('Detailed - Timesheet Report'[Name])
VAR CurrentYear = YEAR(CurrentDate)  // Get the current year

RETURN
    CALCULATE(
        AVERAGEX(
            FILTER(
                ALL('Detailed - Timesheet Report'),
                'Detailed - Timesheet Report'[Year Week] >= (CurrentYear * 100 + CurrentWeek - 17) &&
                'Detailed - Timesheet Report'[Year Week] <= (CurrentYear * 100 + CurrentWeek) &&
                   'Detailed - Timesheet Report'[Name] = CurrentEmployee  // Ensure we filter for the current employee
            ),
            [Weekly Hours]
        ),
        ALLEXCEPT('Detailed - Timesheet Report', 'Detailed - Timesheet Report'[Name])
    )
 
PaulDenne_0-1730468175672.png

817 over 15 weeks shoudl be average 54 not average of 60 shown

1193.51 is close but shoudl be 70.2 not 69.9

 

have sample PBIX but couldn't se ehow to attach it 😞

1 ACCEPTED SOLUTION
adudani
Super User
Super User

hi @PaulDenne ,

 

Within the "Filter" in your measure, maybe add  " && CurrentWeek <> "Week 0" //whatever the week number not required is.

 

 

Also, an alternative method to calculate a dynamic moving average : How to Calculate Moving Averages in Power BI - The Ultimate Guide

 

P.S. you could upload a google/one drive link with the pbix file if this is not resolved.

 

 

Did I answer your question? Mark my post as a solution, this will help others!
If my response(s) assisted you in any way, don't forget to drop me a Kudos 🙂
Kind Regards,
Avinash

View solution in original post

5 REPLIES 5
DataNinja777
Super User
Super User

Hi @PaulDenne ,

 

To address the discrepancy in your rolling 17-week average, you’ll want to ensure that weeks with zero hours are excluded from the calculation. This can be achieved by adding a filter to remove weeks with zero hours in your AVERAGEX function. Here’s an updated approach to your measure:

 

Rolling17CalendarWeekAvg =
VAR CurrentDate = MAX('Date'[Date])  // Use a date column from your Date table
VAR CurrentWeek = WEEKNUM(CurrentDate, 2)  // Get the current week number
VAR CurrentEmployee = SELECTEDVALUE('Detailed - Timesheet Report'[Name])
VAR CurrentYear = YEAR(CurrentDate)  // Get the current year

RETURN
    CALCULATE(
        AVERAGEX(
            FILTER(
                ALL('Detailed - Timesheet Report'),
                'Detailed - Timesheet Report'[Year Week] >= (CurrentYear * 100 + CurrentWeek - 17) &&
                'Detailed - Timesheet Report'[Year Week] <= (CurrentYear * 100 + CurrentWeek) &&
                'Detailed - Timesheet Report'[Name] = CurrentEmployee &&
                [Weekly Hours] > 0  // Exclude weeks with zero hours
            ),
            [Weekly Hours]
        ),
        ALLEXCEPT('Detailed - Timesheet Report', 'Detailed - Timesheet Report'[Name])
    )

Best regards,

hmm that didnt change the results so makes me wonder what period the avreage is looking at as know there was some zero weeks

PaulDenne
Helper I
Helper I
adudani
Super User
Super User

hi @PaulDenne ,

 

Within the "Filter" in your measure, maybe add  " && CurrentWeek <> "Week 0" //whatever the week number not required is.

 

 

Also, an alternative method to calculate a dynamic moving average : How to Calculate Moving Averages in Power BI - The Ultimate Guide

 

P.S. you could upload a google/one drive link with the pbix file if this is not resolved.

 

 

Did I answer your question? Mark my post as a solution, this will help others!
If my response(s) assisted you in any way, don't forget to drop me a Kudos 🙂
Kind Regards,
Avinash

just watched video and got it to work using rolling average

 

many thanks

Helpful resources

Announcements
Las Vegas 2025

Join us at the Microsoft Fabric Community Conference

March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!

Dec Fabric Community Survey

We want your feedback!

Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.

ArunFabCon

Microsoft Fabric Community Conference 2025

Arun Ulag shares exciting details about the Microsoft Fabric Conference 2025, which will be held in Las Vegas, NV.

December 2024

A Year in Review - December 2024

Find out what content was popular in the Fabric community during 2024.