Don't miss your chance to take the Fabric Data Engineer (DP-600) exam for FREE! Find out how by attending the DP-600 session on April 23rd (pacific time), live or on-demand.
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
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")))
Solved! Go to Solution.
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)+_daysit worked like:
about how to add calculated columns:
https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-calculated-tables
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)+_daysit worked like:
about how to add calculated columns:
https://learn.microsoft.com/en-us/power-bi/transform-model/desktop-calculated-tables
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:
I am totally new to DAX, and I have no idea what it means.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
| User | Count |
|---|---|
| 6 | |
| 6 | |
| 3 | |
| 2 | |
| 2 |
| User | Count |
|---|---|
| 21 | |
| 10 | |
| 10 | |
| 5 | |
| 5 |