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

Compete to become Power BI Data Viz World Champion! First round ends August 18th. Get started.

Reply
spehe
Helper I
Helper I

Convert date format 'YYww' to FirstDateOfWeek

Hello, I have a column with data containing the last two digits of a year and a two digit week number. I would like to add a new column called FirstDateOfWeek where the first date of the specified week.

Example: 2207 should convert to 2022-02-18

 

I have tried this code that I got from ChatGPT, but it does not work.

Date.From(Date.From(DateTime.FromText("20" & Text.From([YearWeek], "00-00"), "yyyy-MM-dd")) - Duration.From(Duration.FromDays(Date.DayOfWeek(Date.From(DateTime.FromText("20" & Text.From([YearWeek], "00-00"), "yyyy-MM-dd")) - #datetime(2000, 12, 31, 0, 0, 0)) + Number.FromText("00-01")))

 

 

1 ACCEPTED SOLUTION
FreemanZ
Super User
Super User

hi @spehe ,

 

The gpt code is for Power Query and Ibendlin's code is for a calculated column with DAX. You may also try the following:

FirstWeekDate = 
VAR _year = 20&LEFT([date], 2)
VAR _yearstart = WEEKDAY(DATE(_year, 1, 1), 2)
VAR _week = RIGHT([date], 2)
VAR _days = _week*7 - _yearstart +1
RETURN DATE(_year, 1, 1)+_days

it worked like:

FreemanZ_0-1698047905644.png

 

about how to add calculated columns:

https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-calculated-tables

 

View solution in original post

3 REPLIES 3
FreemanZ
Super User
Super User

hi @spehe ,

 

The gpt code is for Power Query and Ibendlin's code is for a calculated column with DAX. You may also try the following:

FirstWeekDate = 
VAR _year = 20&LEFT([date], 2)
VAR _yearstart = WEEKDAY(DATE(_year, 1, 1), 2)
VAR _week = RIGHT([date], 2)
VAR _days = _week*7 - _yearstart +1
RETURN DATE(_year, 1, 1)+_days

it worked like:

FreemanZ_0-1698047905644.png

 

about how to add calculated columns:

https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-calculated-tables

 

lbendlin
Super User
Super User

What is a week, in your opinion?

 

WEEKNUM function (DAX) - DAX | Microsoft Learn

 

Assuming you want to use the European system Week 07 begins on Feb 14 2022

 

Here, the column [Test]  has the numerical value 2207

 

FirstDateOfWeek = 
var y = 2000+ROUNDDOWN([Test]/100,0)
var w = MOD([Test],100)
var z = GENERATESERIES(Date(y,1,1),Date(y,12,31))
var a = ADDCOLUMNS(z,"wn",weeknum([Value],21))
return minx(filter(a,[wn]=w),[Value])

 

Even if you assumed the week to start on a Friday (system 15)  it would still result in Feb 11, not Feb18.

Hello Ibendlin, thanks for helping me with this. As I am located in Sweden, for us, the week start on Monday, and we use system 21.
Adding your suggested code gives me an error message:

spehe_0-1698044680085.png

 

I am totally new to DAX, and I have no idea what it means.

 

Helpful resources

Announcements
July 2025 community update carousel

Fabric Community Update - July 2025

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

July PBI25 Carousel

Power BI Monthly Update - July 2025

Check out the July 2025 Power BI update to learn about new features.