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
MBenson415
Frequent Visitor

Replace Dates at Beginning of Month with Last Day of Previous Month

Hello,

 

I am attempting to use Power Query to do the following in plain langue: If a date appears at the beginning of the month, replace it with the last date of the previous month (essentially, push it back one day). Leave all other dates alone.

 

So far, I have deduced the following:

 

= if Date.Day([End Current]) = 1 then 
Table.ReplaceValue(#"Changed Type"
,each [End Current]
,each Date.AddDays([End Current], -1)
,Replacer.ReplaceValue,{"End Current"}) else 
[End Current]

 

But I am receiving the error "Expression.Error: There is an unknown identifier. Did you use the [field] shorthand for a _[field] outside of an 'each' expression?"

 

And I can't trace it.

 

Anybody have an idea about how to resolve?

 

FYI: Date.Day function returns a numeric for the date referenced, and Date.AddDays adds or removes an integer number of days according to the argument given (in this case, -1).

 

What am I missing?

 

THANK YOU! Robot Happy

1 ACCEPTED SOLUTION
FarhanAhmed1984
Resolver III
Resolver III

Can you please try this... Replacer.ReplaceValues may have some issues in conditional replace

 

 

 

#"OutP" =
Table.RenameColumns(
    Table.RemoveColumns(
        Table.AddColumn( #"Changed Type", "NewDate",
        each if Date.Day([End Current]) = 1 then
                    Date.AddDays([End Current], -1) else [End Current]),
         {"End Current"}),{{"NewDate", "End Current"}})

View solution in original post

1 REPLY 1
FarhanAhmed1984
Resolver III
Resolver III

Can you please try this... Replacer.ReplaceValues may have some issues in conditional replace

 

 

 

#"OutP" =
Table.RenameColumns(
    Table.RemoveColumns(
        Table.AddColumn( #"Changed Type", "NewDate",
        each if Date.Day([End Current]) = 1 then
                    Date.AddDays([End Current], -1) else [End Current]),
         {"End Current"}),{{"NewDate", "End Current"}})

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.