Forum Discussion
convert week number into data
Hello,
I have a week number (1,2,...,52) and I have the year, I'm looking for a function that could transform\convert the week and the year into date.
for some reason I didn't manage to do that.
Tank you..:)
As I'm not aware of a function that returns the date of the week, instead I'd create a calendar for the year (replace "YourYear" respectively), create the week numbers and their first dates. Then filter on your week-numbers:
let Source = {Number.From(#date(YourYear,01,01))..Number.From(#date(YourYear,12,31))}, #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type date}}), WeekColumn = Table.AddColumn(#"Changed Type", "Week", each Date.WeekOfYear([Column1])), StartOfWeek = Table.AddColumn(WeekColumn, "StartOfWeek", each Date.StartOfWeek([Column1])), #"Filtered Rows1" = Table.SelectRows(StartOfWeek, each [Week] >= List.Min(YourWeekList) and [Week] <= List.Min(YourWeekList)) in #"Filtered Rows1"
9 Replies
- wgarnAdvocate II
Another way is to insert a new new column (Power BI desktop >> New Measure >> New Column)
ndate = DATE([year],1,-2)-WEEKDAY(DATE([year],1,3))+[week]*7
This is based on the ISO week date, which means we need to find the Monday nearest to the 1st of January.
- MarcelBeugCommunity Champion
- AnonymousNot applicable
Thanks, this is great and brief.
- ImkeFCommunity Champion
Do you expect to create one date per week (if yes: which one? First, last?) or all days?
- yuval86Regular Visitor
Yes, one data per week- the first day.
Thanks!
- ImkeFCommunity Champion
As I'm not aware of a function that returns the date of the week, instead I'd create a calendar for the year (replace "YourYear" respectively), create the week numbers and their first dates. Then filter on your week-numbers:
let Source = {Number.From(#date(YourYear,01,01))..Number.From(#date(YourYear,12,31))}, #"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error), #"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type date}}), WeekColumn = Table.AddColumn(#"Changed Type", "Week", each Date.WeekOfYear([Column1])), StartOfWeek = Table.AddColumn(WeekColumn, "StartOfWeek", each Date.StartOfWeek([Column1])), #"Filtered Rows1" = Table.SelectRows(StartOfWeek, each [Week] >= List.Min(YourWeekList) and [Week] <= List.Min(YourWeekList)) in #"Filtered Rows1"