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

IF Statement help

Good afternoon,

Can someone tell me why this is not working?

 

IF (
YEAR( 'Casino Project Feb 2020'[Date] ) = YEAR (LASTDATE('Casino Project Feb 2020'[Date]))
&& MONTH( 'Casino Project Feb 2020'[Date]) = MONTH ( LASTDATE('Casino Project Feb 2020'[Date])),
"Yes",
"No"
)
 
I am trying to calculate MTD numbers without using a slicer (the higher ups do not want a slicer) based on the lastdate of the information in the table.  The reason I can't use it based on today is because for example, the last date of information I have in my table is Feb 29, 2020.  I want it to return MTD based on Feb. 29, 2020.  If I can get the yes/no's correct, then I can calculate the mtd by filtering.  Any help is greatly appreciated and if you have a better way, I am all ears.
1 ACCEPTED SOLUTION

@sschmidt 

 

This is because lastdate returns the current row, you will need to add All(table) as the context:

 

Column = 
var Lastdate_= CALCULATE(LASTDATE('Casino Project Feb 2020'[Date]),ALL('Casino Project Feb 2020'))
Return 
IF(YEAR( 'Casino Project Feb 2020'[Date] ) = YEAR (Lastdate_)
&& MONTH( 'Casino Project Feb 2020'[Date]) = MONTH (Lastdate_),
"Yes","No")

 

 

Best regards 

Paul Zheng

View solution in original post

6 REPLIES 6
ahmedoye
Resolver III
Resolver III

@sschmidt , try using this measure for a try:

VAR SelectedYear = YEAR(SELECTEDVALUE(Casino Project Feb 2020'[Date] ))
VAR SelectedMonth = YEAR(SELECTEDVALUE(Casino Project Feb 2020'[Date] ))
VAR LatestDate = MAX('Casino Project Feb 2020'[Date])
VAR LatestYear = YEAR(LatestDate)
VAR LatestMonth = MONTH(LatestDate)

RETURN IF(SelectedYear = LatestYear && SelectedMonth = LatestMonth, "Yes", "No")

if this Solution works for you, kindly kudo and mark as solution to enable others benefit from it.

@ahmedoye, In the second line, do you mean:

VAR SelectedMonth = MONTH(SELECTEDVALUE(Casino Project Feb 2020'[Date] ))

 

I changed it to Month and now I am getting all "no"'s  so it still isn't doing it correctly....  Do you have any other thoughts?  Thank you so much for looking at this.

@sschmidt 

 

This is because lastdate returns the current row, you will need to add All(table) as the context:

 

Column = 
var Lastdate_= CALCULATE(LASTDATE('Casino Project Feb 2020'[Date]),ALL('Casino Project Feb 2020'))
Return 
IF(YEAR( 'Casino Project Feb 2020'[Date] ) = YEAR (Lastdate_)
&& MONTH( 'Casino Project Feb 2020'[Date]) = MONTH (Lastdate_),
"Yes","No")

 

 

Best regards 

Paul Zheng

@sschmidt , I figure you are doing this inside a Calculated Column. Edit your Initial DAX to look like this:

IF (
YEAR( 'Casino Project Feb 2020'[Date] ) = YEAR (LASTDATE(ALL('Casino Project Feb 2020'[Date])))
&& MONTH( 'Casino Project Feb 2020'[Date]) = MONTH (LASTDATE(ALL('Casino Project Feb 2020'[Date]))),
"Yes",
"No"
)
 
If this solution works for you, kindly give a kudo and mark it as the solution to enable others benefit from it.

In the second line, do you mean:

VAR SelectedMonth = MONTH(SELECTEDVALUE(Casino Project Feb 2020'[Date] ))

 

I changed it to Month and now I am getting all "no"'s  so it still isn't doing it correctly....

sschmidt
Frequent Visitor

Also, the calculated column is returning "yes" for all rows even when it should be "no"

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.