cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
H_insight
Helper III
Helper III

Help with M Code

Hi All,

 

I had a sample file (attached) that contains a Data table, which consist of 17 rows and 2 columns. I would like to add an M code (Not Dax) in power query to add a conditional colmun where:

1- Date column must be in the last 3 months; And

2- Active column = Y; And

3- User Column = N

 

Please see below screenshot of what to expect in "New Column".

HeshamK_0-1636389225912.png

Sample File

Many thanks

H

2 ACCEPTED SOLUTIONS
Greg_Deckler
Super User
Super User

@H_insight Try:

if [Date] > Date.AddMonths(Date.From(DateTime.LocalNow()),-3) and [Active column] = "Y" and [User Column] = "N" then 1 else 0

@ me in replies or I'll lose your thread!!!
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Learn Power BI 2nd Edition

View solution in original post

BA_Pete
Super User
Super User

Hi @H_insight ,

 

Try this:

 

if [Date] >= Date.AddMonths(Date.From(DateTime.LocalNow()), -3)
  and [Active / Not] = "Y"
  and [User/Consumer] = "N"
then 1
else 0

 

This uses three rolling months i.e. today it will give you 2021-08-08 to 2021-11-08.

 

If you want it to evaluate against the last three complete months i.e. not including current month, then it would be:

 

if Date.IsInPreviousNMonths([Date], 3)
  and [Active / Not] = "Y"
  and [User/Consumer] = "N"
then 1
else 0

 

 

Pete

View solution in original post

5 REPLIES 5
BA_Pete
Super User
Super User

Hi @H_insight ,

 

Try this:

 

if [Date] >= Date.AddMonths(Date.From(DateTime.LocalNow()), -3)
  and [Active / Not] = "Y"
  and [User/Consumer] = "N"
then 1
else 0

 

This uses three rolling months i.e. today it will give you 2021-08-08 to 2021-11-08.

 

If you want it to evaluate against the last three complete months i.e. not including current month, then it would be:

 

if Date.IsInPreviousNMonths([Date], 3)
  and [Active / Not] = "Y"
  and [User/Consumer] = "N"
then 1
else 0

 

 

Pete

Thank you @BA_Pete for the prompt response. This is exactly what I was looking for.

@H_insight ,

 

Glad to hear it.

Just out of interest, did you use the rolling three months or the three complete months?

 

Pete

@BA_Pete I Have used the rolling 3 months.

Greg_Deckler
Super User
Super User

@H_insight Try:

if [Date] > Date.AddMonths(Date.From(DateTime.LocalNow()),-3) and [Active column] = "Y" and [User Column] = "N" then 1 else 0

@ me in replies or I'll lose your thread!!!
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Learn Power BI 2nd Edition

Helpful resources

Announcements
Microsoft Build 768x460.png

Microsoft Build is May 24-26. Have you registered yet?

Come together to explore latest innovations in code and application development—and gain insights from experts from around the world.

charticulator_carousel_with_text (1).png

Charticulator Design Challenge

Put your data visualization and design skills to the test! This exciting challenge is happening now through May 31st!

May UG Leader Call Carousel 768x460.png

What difference can a User Group make for you?

At the monthly call, connect with other leaders and find out how community makes your experience even better.

Power BI Release May 2022 768x460.png

Check it out!

Click here to read more about the May 2022 updates!