Forum Discussion

Applicable88's avatar
Applicable88
Impactful Individual
5 years ago
Solved

PowerM Query extract current month

Hello, I have following table sample: YearMonth Turnover 202105 0 202104 3333 202104 3434 202103 32222 202103 4444 Hypothetically the current month is April 2021. Column...
  • lbendlin's avatar
    5 years ago

    Tie your "YearMonth"  column value to a fake date, for example the first date of each month.

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMjQwVdJRMlCK1YFyTYBcYyBAEzExNkGIGINEjIAAVcgECJRiYwE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [YearMonth = _t, Turnover = _t]),
        #"Added Custom" = Table.AddColumn(Source, "YearMonthDate", each #date(Number.From(Text.Start([YearMonth],4)),Number.From(Text.End([YearMonth],2)),1))
    in
        #"Added Custom"

     

     

  • Ashish_Mathur's avatar
    5 years ago

    Hi,

    This M code works

    let
        Source = Excel.CurrentWorkbook(){[Name="Data"]}[Content],
        #"Added Custom" = Table.AddColumn(Source, "Date", each Date.From(Text.From(Number.ToText([YearMonth])&"01", "en-US"))),
        #"Changed Type" = Table.TransformColumnTypes(#"Added Custom",{{"Turnover", type number}}),
        #"Removed Columns" = Table.RemoveColumns(#"Changed Type",{"YearMonth"})
    in
        #"Removed Columns"

    Hope this helps

  • Anonymous's avatar
    Anonymous
    5 years ago

    Hi Applicable88 ,

     

    There's no need to use calendar table. You will need to create a custom column to get current yearmonth and compare it with yearmonth column.

    Check the following formula.

    custom = if [YearMonth] = DateTime.ToText(DateTime.LocalNow(),"yyyyMM") then 1 else 0

    Then filter the 0 values and remove the custom column.

    The complete m code is as follows.

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjIwMjQwVdJRMlCK1YFyTYBcYyBAEzExNkGIGINEjIAAVcgECJRiYwE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [YearMonth = _t, Turnover = _t]),
        #"Added Custom" = Table.AddColumn(Source, "Custom", each if [YearMonth] = DateTime.ToText(DateTime.LocalNow(),"yyyyMM") then 1 else 0),
        #"Filtered Rows" = Table.SelectRows(#"Added Custom", each ([Custom] = 1)),
        #"Removed Columns" = Table.RemoveColumns(#"Filtered Rows",{"Custom"})
    in
        #"Removed Columns"

     

    Best Regards,

    Jay