Showing results for 
Search instead for 
Did you mean: 
Frequent Visitor

How to calculate week number?

Im creating a small booking app, where the users are used to Weeknumbers.


Is it posible to spesify like :


Week : 5  

Result would be : 30/1-2017 - 5/2-2017


Or vice versa,

Spesify the date and then get the current weeknumber.


This allso has to adjust for leap year.


Best Regards



Hi Jeff, @jeffwllms 


I'm trying to use your solution which seems to work brilliant if you want week number 1 to be the 1st week in Jan, however i'm wanting to use this method where the week number starts with week 1 on the 1st week of April  (ie in 2020 week 1 would be the week commencing monday the 30th March)


I have tried playing about with the formula but cant work it or or adjust it.  Wondered if you knew if there was an answer to this as you seem very good at working with this function!! 🙂



Advocate I
Advocate I

Wondering why there isn't out of the box function for Week Number in a Calculated field when the function exists in Charts as a selectable Series for X-Axis and selectable in the Calendar date picker:

Calendar date pickerCalendar date pickerChart with Week numbersChart with Week numbers

Frequent Visitor

Sorry, I have not been paying that close attention to the thread lately.  I am not sure if you figured out an answer but it think it should be as easy as changing the month and day in the first part of the formula.  



RoundDown((DateDiff(Date(Year(DateAdd(DatePicker1.SelectedDate,4 - Weekday(DatePicker1.SelectedDate,Monday),Days))-1,12,31),DateAdd(DatePicker1.SelectedDate,4 - Weekday(DatePicker1.SelectedDate,Monday),Days),Days)+6)/7,0)


so in the original formula where you see the 12,31.   this calculate the date last day of the year prior to your date.  the formula takes the different of those and basically divides it by seven.  So you should just be able to change that.  march is the 3rd month and there are 31 days in march. 


new formula:


RoundDown((DateDiff(Date(Year(DateAdd(DatePicker1.SelectedDate,4 - Weekday(DatePicker1.SelectedDate,Monday),Days))-1,3,31),DateAdd(DatePicker1.SelectedDate,4 - Weekday(DatePicker1.SelectedDate,Monday),Days),Days)+6)/7,0)



I haven't tested it, but I would give that a try.



okay so after i posted this I decided to test it really quick, because I figured no way it is that simple. And it doesn't appear to be  as simple.  The problem is in the start date year.  I use -1 here as I am always counting the number of day from 12/31 of the year prior to my selected date.  You are not.  For example, if you select the date 12/31/20 you don't want to -1, because you would be then calculating the number of days between 3/31/2019 and 12/31/2020.  So additionally with the change I put above.  You will need to work out some logic to figure out if you need to -1 or not from the selected date.  So I worked out the following, it isn't as pretty, might be able to be simplified. 


RoundDown((DateDiff(Date(Year(DateAdd(DatePicker1.SelectedDate,4-Weekday(DatePicker1.SelectedDate,Monday),Days))-If(DateAdd(DatePicker1.SelectedDate,4-Weekday(DatePicker1.SelectedDate,Monday),Days) < Date(Year(DateAdd(DatePicker1.SelectedDate,4-Weekday(DatePicker1.SelectedDate,Monday),Days)),3,31),1,0),3,31),DateAdd(DatePicker1.SelectedDate,4-Weekday(DatePicker1.SelectedDate,Monday),Days),Days)+6)/7,0)


Thanks for your reply, i'm not quite sure how/why this works, but it does anyway and i got to this by just playing about with the formula and added in a "-83" in 2 places. Code below - How does this look to you?

RoundDown((DateDiff(Date(Year(DateAdd(DatePicker1.SelectedDate,-83 - Weekday(DatePicker1.SelectedDate,Monday),Days))-1,12,31),DateAdd(DatePicker1.SelectedDate,-83 - Weekday(DatePicker1.SelectedDate,Monday),Days),Days)+6)/7,0)


Advocate I
Advocate I

Thanks for the updates, in the end I created a Flow to create this week number.

I did get communication from MS PM back in Sept, that Week Number functionality in low code was not planned but could get reviewed. I'll ping him again to check how this is being prioritised.

There is a much simpler way of doing this using the fact that that Value(Today()) returns an integer that is in milliseconds, so the following gives you the week number - just change the StartOfWeek.Monday to whatever you need - this formula assumes you have the date you want to convert stored in varDate.

        ((Value(Date(Year(varDate),Month(varDate),Day(varDate))) - Value(Date(Year(varDate),1,1))) / 86400000) // Days into year
        + Weekday(Date(Year(varDate),1,1),StartOfWeek.Monday) // Offset for day of week on 1st Jan
    ) / 7 // Divide by days in a week
    ,0) // Round Up to get the week number (e.g. if 2.5 - it means we are half way through the 3rd week, so return 3)


Helpful resources

PA User Group

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group

Power Query PA Forum 768x460.png

Check it out!

Did you know that you can visit the Power Query Forum in Power BI and now Power Apps

V3_PVA CAmpaign Carousel.png

Community Challenge - Giveaways!

Participate in the Power Virtual Agents Community Challenge

Carousel 2021 Release Wave 2 Plan 768x460.jpg

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

Top Solution Authors
Top Kudoed Authors
Users online (2,874)