Reply
Syndicate_Admin
Administrator
Administrator
Syndicated - Inbound

Lable YTD Rows in Calendar

Source Community: Power Apps | Source Author Name: ShawnKeeneTF

I'm trying to create a way to label all YTD comparable rows in a calendar table.  I got close but it doesn't handle leap years (see screenshot)

 

Can anyone assist in a proper formula that would return true for all YTD dates of prior years?  For example, today I should see True on all rows for January 1-June 6th of all years.

 

Current attempt is an attempt to convert the row's day to the same day this year and then check if that's in current YTD:

 

= Table.AddColumn(#"Calculated Quarter", "YOY YTD", each Date.IsInYearToDate( #date(Date.Year(DateTime.Date(DateTime.LocalNow())),Date.Month([Date]), Date.Day([Date]))) )

 

undefined

 

1 ACCEPTED SOLUTION

Syndicated - Outbound

ShawnKeeneTF

The formula will return true for each of those dates. 

Regards

 

collinsg_0-1686163919185.png

The following M code generates all dates from 1st Jan 2020 to 31st Dec 2023 and uses the formula to mark each date as in YTD or not so you can check if it does what you want. The screenshot in your question was not readable so maybe there's some other subtlety in the question that it would reveal.

let
Source = List.Dates(#date(2020,1,1), Duration.TotalDays(#date(2023,12,31) - #date(2020,1,1)) + 1 , #duration(1,0,0,0)),
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type date}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Column1", "Date"}}),
#"Add in Year" = Table.AddColumn(
#"Renamed Columns",
"Error Free Version",
each Date.IsInYearToDate(
Date.AddYears( [Date], Date.Year(DateTime.LocalNow()) - Date.Year([Date]) )
),
type logical
)
in
#"Add in Year"

 

View solution in original post

4 REPLIES 4
Syndicate_Admin
Administrator
Administrator

Source Community: Power Apps | Source Author Name: ShawnKeeneTF
Syndicated - Inbound

Thanks, I see the offset you're using that makes this work when the earlier examples I had seen online didn't account for all years.  Thank you so much for this.

Syndicate_Admin
Administrator
Administrator

Source Community: Power Apps | Source Author Name: ShawnKeeneTF
Syndicated - Inbound

I found something like this online but I don't think this is exactly what I'm after. I'll give it a try though.

 

The problem is that I want for example June 1st to show up as true for all years. Basically all dates that are within the completed days this year.

 

So all these should be true for example 

 

June 1 2020

June 1 2021

June 1 2022

June 1 2023

Syndicated - Outbound

ShawnKeeneTF

The formula will return true for each of those dates. 

Regards

 

collinsg_0-1686163919185.png

The following M code generates all dates from 1st Jan 2020 to 31st Dec 2023 and uses the formula to mark each date as in YTD or not so you can check if it does what you want. The screenshot in your question was not readable so maybe there's some other subtlety in the question that it would reveal.

let
Source = List.Dates(#date(2020,1,1), Duration.TotalDays(#date(2023,12,31) - #date(2020,1,1)) + 1 , #duration(1,0,0,0)),
#"Converted to Table" = Table.FromList(Source, Splitter.SplitByNothing(), null, null, ExtraValues.Error),
#"Changed Type" = Table.TransformColumnTypes(#"Converted to Table",{{"Column1", type date}}),
#"Renamed Columns" = Table.RenameColumns(#"Changed Type",{{"Column1", "Date"}}),
#"Add in Year" = Table.AddColumn(
#"Renamed Columns",
"Error Free Version",
each Date.IsInYearToDate(
Date.AddYears( [Date], Date.Year(DateTime.LocalNow()) - Date.Year([Date]) )
),
type logical
)
in
#"Add in Year"

 

collinsg
Super User
Super User

Syndicated - Outbound

Good day ShawnKeeneTF,

An idea would be to use AddYears to add years to “Date”. AddYears takes care of leap years sensibly.

  1. The number of years to add is year(this year)-year(date).
  2. Then check if that date is in the current year to date.

Here is M code, with the formula which gives the error and then the formula using AddYears.

 

Hope this helps.

let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMtc30zcyUIrViVYystQ3grENDUDixkqxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Date = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Date", type date}}),

#"Added Error Version" = Table.AddColumn(
#"Changed Type",
"Errored Version",
each Date.IsInYearToDate(
#date(Date.Year(DateTime.Date(DateTime.LocalNow())),Date.Month([Date]), Date.Day([Date]))
),
type logical
),

#"Added Error-free Version" = Table.AddColumn(
#"Added Error Version",
"Error Free Version",
each Date.IsInYearToDate(
Date.AddYears( [Date], Date.Year(DateTime.LocalNow()) - Date.Year([Date]) )
),
type logical
)
in
#"Added Error-free Version"

 which gives the result

collinsg_0-1686158178772.png

 

avatar user

Helpful resources

Announcements
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 Power BI Update Carousel

Power BI Monthly Update - June 2025

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

June 2025 community update carousel

Fabric Community Update - June 2025

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

Top Solution Authors (Last Month)
Top Kudoed Authors (Last Month)