In a comment on a previous post, a reader asked how you return a specific day of the next month from any given date. In other words, I've got a date of March 5 and I want to use Power Query to return April 10 in Excel (or Power BI). How do you do it?
The Excel User's First Guess
So my first thought was to jump straight into the Power Query Formula reference guide to review the date functions. Surely there must be something in there to manipulate dates and such, right?
Here's a quick list of the the functions I knew I'd need:
So those are awesome for ripping dates apart and shifting them, but what I really needed at the end was a way to put things back together. I needed an equivalent of Excel's =DATE(year,month,day) function. I couldn't find one.
Return a Specific Day of the Next Month
After poking around with this for a while, it suddenly occurred to me that I was doing this all wrong. To return a specific day of the next month, I just needed to provide the "literal" #date() and I was good to go.
Let's take a simple table like this:
I pulled it into Power Query, went to Add Column --> Custom Column, and added the following formula:
And at that point it works beautifully:
Basically, the #date() literal works just like Excel's DATE() function, you just case it differently and put a # tag in front of it:
It's a weird one, for sure
Returning a specific day of the next month is one of those odd cases where you have to use one of Power Query's literals to create the date you want, rather than employing a function to convert values as you're used to in Excel. The good news though? Miguel does an amazing deep dive into the M coding language in our Power Query Academy, including explaining what literals, tokens, keywords and more are all about.
If you want to understand this in depth, check out our course:
PS: Sign up for our free trial first, to make sure you like our style! And when you're convinced… you won't find better Power Query training anywhere.