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

Get certified in Microsoft Fabric—for free! For a limited time, get a free DP-600 exam voucher to use by the end of 2024. Register now

Reply
micjensen
Frequent Visitor

Power Query Calendar Creation - 53 weeks

Hi Community

I really need your help on how to create a calendar that automatically knows that when it comes to the beginning of 2021, this is still week 53 and not week 1. I have only managed to create a calendar where the week number starts by 1 when entering a new calendar year. But for year 2021: the 1st to the 3rd january is week 53 and then week 1 starting from january 4th.

@PowerQuery @calendar@weeknum
How do i build in this knowledge ??

I rellay hope that someone has the answer to this, t

3 ACCEPTED SOLUTIONS
BA_Pete
Super User
Super User

Hi @micjensen ,

This is very complex logic to code into Power Query.

I would recommend using WEEKNUM([Date], 21) in a DAX calculated column to be honest:

BA_Pete_0-1636123917354.png

BA_Pete_1-1636124036783.png

Pete



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




View solution in original post

mahoneypat
Microsoft Employee
Microsoft Employee

Please see this article with a good way to handle that.

445 Calendar with 53-Week Years – Hoosier BI

 

Pat





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


View solution in original post

ronrsnfld
Super User
Super User

Here's a custom function in M code for calculating the ISO Weeknumber (if that is what you want):

 

 

//fxISOWeekNum

(theDate as date) =>
let
   a = Date.AddDays(theDate,-1),
   b = Date.DayOfWeek(a,Day.Sunday),
   c = Date.AddDays(theDate,-b + 3),
   d2 = #date(Date.Year(c),1,3),
   IWN  =  Number.IntegerDivide(Number.From(theDate)-Number.From(d2) + Date.DayOfWeek(d2)+6,7)

in
    IWN

 

View solution in original post

4 REPLIES 4
Anonymous
Not applicable

Please look Function for ISO Year/Week number (ISO 8601)) 


NB! Pay attention to offsetindays parameter (by default it equals to zero - it means week starts on Sunday)

ronrsnfld
Super User
Super User

Here's a custom function in M code for calculating the ISO Weeknumber (if that is what you want):

 

 

//fxISOWeekNum

(theDate as date) =>
let
   a = Date.AddDays(theDate,-1),
   b = Date.DayOfWeek(a,Day.Sunday),
   c = Date.AddDays(theDate,-b + 3),
   d2 = #date(Date.Year(c),1,3),
   IWN  =  Number.IntegerDivide(Number.From(theDate)-Number.From(d2) + Date.DayOfWeek(d2)+6,7)

in
    IWN

 

mahoneypat
Microsoft Employee
Microsoft Employee

Please see this article with a good way to handle that.

445 Calendar with 53-Week Years – Hoosier BI

 

Pat





Did I answer your question? Mark my post as a solution! Kudos are also appreciated!

To learn more about Power BI, follow me on Twitter or subscribe on YouTube.


@mahoneypa HoosierBI on YouTube


BA_Pete
Super User
Super User

Hi @micjensen ,

This is very complex logic to code into Power Query.

I would recommend using WEEKNUM([Date], 21) in a DAX calculated column to be honest:

BA_Pete_0-1636123917354.png

BA_Pete_1-1636124036783.png

Pete



Now accepting Kudos! If my post helped you, why not give it a thumbs-up?

Proud to be a Datanaut!




Helpful resources

Announcements
November Carousel

Fabric Community Update - November 2024

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

Live Sessions with Fabric DB

Be one of the first to start using Fabric Databases

Starting December 3, join live sessions with database experts and the Fabric product team to learn just how easy it is to get started.

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! Early Bird pricing ends December 9th.

Nov PBI Update Carousel

Power BI Monthly Update - November 2024

Check out the November 2024 Power BI update to learn about new features.