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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.

Reply
askspepsi
Helper II
Helper II

Power Query List.Dates with today function

Greeting all, 

I have table with leave start date, end date and return date like the below table

so using this query to get Leave days from start to end date for those who are having return date

"List.Dates([LeaveFromDate], Number.From([LeaveToDate]-[LeaveFromDate])+1, #duration(1, 0, 0, 0))"

 

but how to i get Leave days for those employee who return date is having null till the date the return.

Please help me in this case.

 

Table:-

IdLeave start dateLeave end dateLeave return date
101/05/202110/05/202111/05/2021
201/05/202107/05/2021null

 

 

Desired Output:-

IdLeave start dateLeave end dateLeavedays
101/05/202110/05/202101/05/2021
101/05/202110/05/2021 02/05/2021
101/05/202110/05/2021 03/05/2021
101/05/202110/05/2021 04/05/2021
101/05/202110/05/2021 05/05/2021
101/05/202110/05/2021 06/05/2021
101/05/202110/05/2021 07/05/2021
101/05/202110/05/2021 08/05/2021
101/05/202110/05/2021 09/05/2021
101/05/202110/05/2021 10/05/2021
201/05/202107/05/202101/05/2021
201/05/202107/05/2021 02/05/2021
201/05/202107/05/2021 03/05/2021
201/05/202107/05/2021 04/05/2021
201/05/202107/05/2021 05/05/2021
201/05/202107/05/2021 06/05/2021
201/05/202107/05/2021 07/05/2021
201/05/202107/05/2021 08/05/2021
201/05/202107/05/2021 09/05/2021
201/05/202107/05/2021 10/05/2021
   till today date

 

askspepsi_0-1621437007840.png

 

 

1 ACCEPTED SOLUTION
ChrisMendoza
Resident Rockstar
Resident Rockstar

@askspepsi - Try this out, see attached:

if [Leave return date] = null then List.Transform( { Number.From ( [Leave start date] )..Number.From ( Date.From ( DateTimeZone.LocalNow () ) ) }, each Date.From( (_) ) ) else List.Transform( { Number.From ( [Leave start date] ) ..Number.From ( [Leave return date] ) }, each Date.From( (_) ) )

 

Spoiler
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIw1Dcw1TcyMAJxDA2QOQiZWJ1oJSN0xQbmSByl2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Id = _t, #"Leave start date" = _t, #"Leave end date" = _t, #"Leave return date" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Id", Int64.Type}, {"Leave start date", type date}, {"Leave end date", type date}, {"Leave return date", type date}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [Leave return date] = null then List.Transform( { Number.From ( [Leave start date] )..Number.From ( Date.From ( DateTimeZone.LocalNow () ) ) }, each Date.From( (_) ) ) else List.Transform( { Number.From ( [Leave start date] ) ..Number.From ( [Leave return date] ) }, each Date.From( (_) ) )),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom")
in
    #"Expanded Custom"





Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

Proud to be a Super User!



View solution in original post

4 REPLIES 4
ChrisMendoza
Resident Rockstar
Resident Rockstar

@askspepsi - Try this out, see attached:

if [Leave return date] = null then List.Transform( { Number.From ( [Leave start date] )..Number.From ( Date.From ( DateTimeZone.LocalNow () ) ) }, each Date.From( (_) ) ) else List.Transform( { Number.From ( [Leave start date] ) ..Number.From ( [Leave return date] ) }, each Date.From( (_) ) )

 

Spoiler
let
    Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIw1Dcw1TcyMAJxDA2QOQiZWJ1oJSN0xQbmSByl2FgA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Id = _t, #"Leave start date" = _t, #"Leave end date" = _t, #"Leave return date" = _t]),
    #"Changed Type" = Table.TransformColumnTypes(Source,{{"Id", Int64.Type}, {"Leave start date", type date}, {"Leave end date", type date}, {"Leave return date", type date}}),
    #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each if [Leave return date] = null then List.Transform( { Number.From ( [Leave start date] )..Number.From ( Date.From ( DateTimeZone.LocalNow () ) ) }, each Date.From( (_) ) ) else List.Transform( { Number.From ( [Leave start date] ) ..Number.From ( [Leave return date] ) }, each Date.From( (_) ) )),
    #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom")
in
    #"Expanded Custom"





Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

Proud to be a Super User!



@ChrisMendoza  - thank you for your valuable time and feedback. The Query is working fine. 

ChrisMendoza
Resident Rockstar
Resident Rockstar

@askspepsi - is the date format in your data 'mm/dd/yyyy'  or 'dd/mm/yyyy' ?






Did I answer your question? Mark my post as a solution!
Did my answers help arrive at a solution? Give it a kudos by clicking the Thumbs Up!

Proud to be a Super User!



@ChrisMendoza  - the date format is 'dd/mmm/yyyy'

Helpful resources

Announcements
July PBI25 Carousel

Power BI Monthly Update - July 2025

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

Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 community update carousel

Fabric Community Update - June 2025

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