cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
Newbie_2020
Frequent Visitor

Show Week Data for the last 8 weeks and display the average of the 8-weekly data

Hello everyone,

I need some help and I would really, really appreciate any inputs.

 

Desired Output: Dynamically show the weekly data for the last 8 weeks (including current selected week) and then calculate 8 week average based on the current selected week.

 

Example: If I select 3/12/2021 (Corresponds to Week 13), table will show the Sales on 3/21/21 and the weekly sales in the last 7 weeks.

 

Sample Output:

Desired PutputDesired Putput

 

I have 2 tables Sales_Fact and dimWeek joined by Closing Week.

 

Tables.PNG

What I did is create 8 different measures:

Current Wk, Last_Wk1, Last_Wk2, Last_Wk3, Last_Wk4, Last_Wk5, Last_Wk6, Last_Wk7

 

Last_Wk1 =
var selectedwk = max(dimWeek[Week_No])
var wk = calculate(selectedwk-1)
return
  calculate([NB_PL_CY],all(dimWeek[Week_No]),filter(all(dimWeek),dimWeek[Week_No]=wk))
 
Then I created Avg_8_Wk measure that average all those 8 measures.  This is the result:
 
 
Curren_SOlution.PNG
 
This shows the last 8 weeks Sales, however, I don't think this is the right way to do it and also I would like to be able to see the Week_Ending date that dynamically change instead of the measure name (Please see sample output above).
 
Would you be able to help? Thanks so much in advance!
 
Best,
Newbie_2020

 

1 ACCEPTED SOLUTION
amitchandak
Super User
Super User

@Newbie_2020 , Create a week rank in your week table (I am using date as a name here)

 

new column

Week Rank = RANKX(all('Date'),'Date'[Year End Date ],,ASC,Dense) //YYYYWW format

 

You can have a measure like
This Week = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]=max('Date'[Week Rank])))
Last Week = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]=max('Date'[Week Rank])-1))
Last year Week= CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]=(max('Date'[Week Rank]) -52)))


Last 8 weeks = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]>=max('Date'[Week Rank])-8 && 'Date'[Week Rank]<=max('Date'[Week Rank])))

 

But this will show rolling 8 weeks for last week, not a trend. For that, you need one more copy of the week table as an independent table.

refer: https://www.youtube.com/watch?v=duMSovyosXE



New Power BI Features
Datamarts: https://youtu.be/8tskWsJTEpg
Field Parameters : https://youtu.be/lqF3Wa1FllE?t=70
Did I answer your question? Mark my post as a solution! Appreciate your Kudos!! !!
Dashboard of My Blogs !! Connect on Linkedin !! Proud to be a Super User!
Want To Learn Power BI
Learn Power BI Beginners !! Advance Power BI Concepts !! Power BI For Tableau User !! Learn Power BI in Hindi !!
!! Subscribe to my youtube Channel !!

View solution in original post

2 REPLIES 2
Newbie_2020
Frequent Visitor

@amitchandak @ Thank you so much for the information.  The link you gave me really helped.  

 

This is what I did:

  • Created a new independent table with just the week ending.
  • Created a new measure Last_8_Wk_Sale (see screenshot below)

That worked exactly how I wanted 🙂  Now, the only thing I need to do is get the average of the weekly sales for the last 8 weeks.

 

Last8Wk.PNG

 
amitchandak
Super User
Super User

@Newbie_2020 , Create a week rank in your week table (I am using date as a name here)

 

new column

Week Rank = RANKX(all('Date'),'Date'[Year End Date ],,ASC,Dense) //YYYYWW format

 

You can have a measure like
This Week = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]=max('Date'[Week Rank])))
Last Week = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]=max('Date'[Week Rank])-1))
Last year Week= CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]=(max('Date'[Week Rank]) -52)))


Last 8 weeks = CALCULATE(sum('order'[Qty]), FILTER(ALL('Date'),'Date'[Week Rank]>=max('Date'[Week Rank])-8 && 'Date'[Week Rank]<=max('Date'[Week Rank])))

 

But this will show rolling 8 weeks for last week, not a trend. For that, you need one more copy of the week table as an independent table.

refer: https://www.youtube.com/watch?v=duMSovyosXE



New Power BI Features
Datamarts: https://youtu.be/8tskWsJTEpg
Field Parameters : https://youtu.be/lqF3Wa1FllE?t=70
Did I answer your question? Mark my post as a solution! Appreciate your Kudos!! !!
Dashboard of My Blogs !! Connect on Linkedin !! Proud to be a Super User!
Want To Learn Power BI
Learn Power BI Beginners !! Advance Power BI Concepts !! Power BI For Tableau User !! Learn Power BI in Hindi !!
!! Subscribe to my youtube Channel !!

Helpful resources

Announcements
June 2022 update 768X460.jpg

Check it out!

Click here to read more about the June 2022 updates!

Power Platform Conf 2022 768x460.jpg

Join us for Microsoft Power Platform Conference

The first Microsoft-sponsored Power Platform Conference is coming in September. 100+ speakers, 150+ sessions, and what's new and next for Power Platform.

Power BI Dev Camp Session 23 768x460.jpg

Check it Out!

Mark your calendars and join us on Thursday, June 30 at 11a PDT for a great session with Ted Pattison!

June 20 episode 7 with aka link 768x460.jpg

The Power BI Community Show

Join us on June 20 at 11 am PDT when Kim Manis shares the latest on Azure Synapse analytics, the Microsoft Intelligent Data Platform, and notable Power BI Updates from Microsoft Build 2022.

Top Solution Authors
Top Kudoed Authors