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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
ben-t
Frequent Visitor

Help - List.Generate dates with variable frequency in months

Hi, I'm trying to generate a list of jobs to do in the next 2 years
I have a working custom column that provides me the list of dates. 
But my jobs have varying frequencies of 2-12 months intervals. 

 

List.Generate(() => [Next job],
each Date.From(_) <= Date.From(Date.AddYears(Date.EndOfYear(DateTime.LocalNow()), 1)),
each Date.AddMonths(_, 2))

bent_2-1682408783789.png

 


Once I change my code to :

List.Generate(() => [Next job],
each Date.From(_) <= Date.From(Date.AddYears(Date.EndOfYear(DateTime.LocalNow()), 1)),
each Date.AddMonths( _ , [FREQUENCY]))


I get an error and when expanding further, it just shows me a date without any error message. 

bent_3-1682408917618.png

bent_4-1682408941105.png

Anyone knows what is causing this issue, and how I can work around it ?

Thanks

1 ACCEPTED SOLUTION
HotChilli
Super User
Super User

It might be a field access error.

Try

let freq = [FREQUENCY] in each Date.AddMonths( _ , freq))

 

View solution in original post

6 REPLIES 6
HotChilli
Super User
Super User

It might be a field access error.

Try

let freq = [FREQUENCY] in each Date.AddMonths( _ , freq))

 

It generates without issue once i added in this line
Thanks! 

Hi ben-t,

 

Could you share the full code that worked for you?

I think I've tried every possible code with the above solution, but I still get an error.

 

Thanks!

Hi @GekkeHellie

this is the code i used

let freq = [FREQUENCY] in
List.Generate(
() => [Next job],
each Date.From(_) <= Date.From(Date.AddYears(Date.EndOfYear(DateTime.LocalNow()),1)),
each Date.AddMonths(_, freq))

bent_2-1689043260344.png

 

 

Hi @ben-t ,

 

Your answer definitely helped me into the right direction.

In the table there is a start date, end date and frequency and I also wanted to create a new row between the two dates based on de frequency.

 

My table looks like this:

GekkeHellie_0-1689064607678.png

 

But since I have a end date in a column, instead of a formula like yours, I still got a error.

So I also added the below line to the code:

let enddate = [End Date]

GekkeHellie_1-1689064855680.png

let freq = [Frequency] in
let enddate = [End Date] in
List.Generate(
() => [Start Date],
each Date.From(_) <= Date.From(enddate),
each Date.AddDays(_, freq))

 

Thanks for helping me out!

 

 

 

 

 

 

 

 

m_dekorte
Super User
Super User

Hi @ben-t 

Its an invironment/ item access issue, here's a work around. Just assign the field value to a variable and bring that into your calculation.

 

let n = [FREQUENCY] in List.Generate(() => [Next job],
each Date.From(_) <= Date.From(Date.AddYears(Date.EndOfYear(DateTime.LocalNow()), 1)),
each Date.AddMonths(_, n ))

 

Ps. If this helps solve your query please mark this post as Solution, thanks!

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

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

April Fabric Community Update

Fabric Community Update - April 2024

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

Top Solution Authors
Top Kudoed Authors