Forum Discussion
Anonymous
2 years agoNot applicable
Extract month name from a date-range
I have a "Memberships" table which contains this data: Membership start date. Membership end date Membership type 2024-01-15 2024-02-28 Type-1 2024-02-03 2024-03...
- 2 years ago
Hi Anonymous ,
You can try the sample M code below.
let Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjTVNzDUNzIwMlHSUTKy0DcwgnFCKgtSdQ2VYnWilQyMkcSNDPSBfGRFRmBFRob6hgYgcWOgeF5pTg5M2lgpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Membership start date" = _t, #"Membership end date" = _t, #"Membership type" = _t]), #"Changed Type" = Table.TransformColumnTypes(Source,{{"Membership start date", type date}, {"Membership end date", type date}, {"Membership type", type text}}), #"Added Custom" = Table.AddColumn(#"Changed Type", "Dates + One Month", each let start = [Membership start date], end = if [Membership end date] = null then Date.From(DateTime.LocalNow()) else [Membership end date], Diff = Number.Round(Number.From((end - start)/( 365.25 / 12 )) ,0 ) in List.Transform({0..Diff}, each Date.AddMonths(start, _))), #"Expanded Dates + One Month" = Table.ExpandListColumn(#"Added Custom", "Dates + One Month"), #"Added Custom1" = Table.AddColumn(#"Expanded Dates + One Month", "Period", each Date.ToText([#"Dates + One Month"], "MMM-yy")), #"Changed Type1" = Table.TransformColumnTypes(#"Added Custom1",{{"Dates + One Month", type date}, {"Period", type text}}) in #"Changed Type1"You can then filter the query based on your desired date range.
danextian
2 years agoSuper User
Hi Anonymous ,
You can try the sample M code below.
let
Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjTVNzDUNzIwMlHSUTKy0DcwgnFCKgtSdQ2VYnWilQyMkcSNDPSBfGRFRmBFRob6hgYgcWOgeF5pTg5M2lgpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Membership start date" = _t, #"Membership end date" = _t, #"Membership type" = _t]),
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Membership start date", type date}, {"Membership end date", type date}, {"Membership type", type text}}),
#"Added Custom" = Table.AddColumn(#"Changed Type", "Dates + One Month", each let
start = [Membership start date],
end = if [Membership end date] = null then Date.From(DateTime.LocalNow()) else [Membership end date],
Diff = Number.Round(Number.From((end - start)/( 365.25 / 12 )) ,0 )
in List.Transform({0..Diff}, each Date.AddMonths(start, _))),
#"Expanded Dates + One Month" = Table.ExpandListColumn(#"Added Custom", "Dates + One Month"),
#"Added Custom1" = Table.AddColumn(#"Expanded Dates + One Month", "Period", each Date.ToText([#"Dates + One Month"], "MMM-yy")),
#"Changed Type1" = Table.TransformColumnTypes(#"Added Custom1",{{"Dates + One Month", type date}, {"Period", type text}})
in
#"Changed Type1"
You can then filter the query based on your desired date range.