Get certified for free when you join Fabric Data Days 2026 and dive into Fabric, Power BI, SQL, AI, and other essential data skills.
Join nowData Days is here! Join us now for 60+ days of learning, challenges, and connection. Learn more
I got stucked writing Nested IF/AND statement.
Below is the statement I wrote in Excel, ref!A1 is the date 8/31/2018
=IF(V2>ref!$A$1,"Future",IF(AND(V2<=ref!$A$1, X2=0),"Late",IF(AND(V2<=ref!$A$1,X2<>0, Y2<=0),"On-Time","Late")))
This is the statement I wrote in power bi but I'm getting syntax error.
Column = IF(Data[BL Date] > date(2018,8,31) = "Future", IF(AND(Data[BL Date] <= date(2018,8,31), Data[Actual Date]<>0 = "Late"), IF(AND(Data[BL Date],Data[Actual Date]<>0),Data[Variance] <= 0),"On-Time","Late" )))
Can someone please help?
Thanks much!
Solved! Go to Solution.
The reason your formula is not working is that AND accepts only 2 arguments!
I personally prefer @MFelix's SWITCH approach using && easier to ready (for me at least)
But you could try this...
Column =
IF (
Data[BL Date] > DATE ( 2018, 8, 31 )
= "Future",
IF (
AND ( Data[BL Date] <= DATE ( 2018, 8, 31 ), Data[Actual Date] <> 0 ),
"Late",
IF (
AND ( AND ( Data[BL Date] <> 0, Data[Actual Date] <> 0 ), Data[Variance] <= 0 ),
"On-Time",
"Late"
)
)
)
@StuznetLet me know if this actually works! ![]()
EDIT: @MFelix I believe you need to add this condition...
nested if =
IF (
Data[BL Date] > DATE ( 2018, 8, 31 ),
"Future",
IF (
Data[BL Date] <= DATE ( 2018, 8, 31 )
&& Data[Actual Date] <> 0,
"Late",
IF (
Data[BL Date] <> 0
&& Data[Actual Date] <> 0
&& Data[Variance] <= 0,
"On-Time",
"Late"
)
)
)And...
SWITCH FORMULA =
SWITCH (
TRUE (),
Data[BL Date] > DATE ( 2018, 8, 31 ), "Future",
Data[BL Date] <= DATE ( 2018, 8, 31 )
&& Data[Actual Date] <> 0, "Late",
Data[BL Date] <> 0
&& Data[Actual Date] <> 0
&& Data[Variance] <= 0, "On-Time",
"Late"
)
Thank you so much for your help but the correct formula I'm looking is this. Now the result are matching.
Hi @Stuznet,
You have some incorrections on DAX IF you don't use the = to define the states also the brackets I have made some changes to reduce the DAX you can use one of both formulas below:
nested if =
IF (
Data[BL Date] > DATE ( 2018, 8, 31 ),
"Future",
IF (
Data[BL Date] <= DATE ( 2018, 8, 31 )
&& Data[Actual Date] <> 0,
"Late",
IF (
Data[BL Date] <> 0
&& Data[Actual Date] <> 0
&& Data[Variance] <= 0,
"On-Time",
"Late"
)
)
)
Rather than use the nested IF is better to use the SWITHC function check the documentation here, see below the dax formula for your case.
SWITCH FORMULA =
SWITCH (
TRUE (),
Data[BL Date] > DATE ( 2018, 8, 31 ), "Future",
Data[BL Date] <= DATE ( 2018, 8, 31 )
&& Data[Actual Date] <> 0, "Late",
Data[BL Date] <> 0
&& Data[Actual Date] <> 0
&& Data[Variance] <= 0, "On-Time",
"Late"
)
Regards,
MFelix
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsThe reason your formula is not working is that AND accepts only 2 arguments!
I personally prefer @MFelix's SWITCH approach using && easier to ready (for me at least)
But you could try this...
Column =
IF (
Data[BL Date] > DATE ( 2018, 8, 31 )
= "Future",
IF (
AND ( Data[BL Date] <= DATE ( 2018, 8, 31 ), Data[Actual Date] <> 0 ),
"Late",
IF (
AND ( AND ( Data[BL Date] <> 0, Data[Actual Date] <> 0 ), Data[Variance] <= 0 ),
"On-Time",
"Late"
)
)
)
@StuznetLet me know if this actually works! ![]()
EDIT: @MFelix I believe you need to add this condition...
nested if =
IF (
Data[BL Date] > DATE ( 2018, 8, 31 ),
"Future",
IF (
Data[BL Date] <= DATE ( 2018, 8, 31 )
&& Data[Actual Date] <> 0,
"Late",
IF (
Data[BL Date] <> 0
&& Data[Actual Date] <> 0
&& Data[Variance] <= 0,
"On-Time",
"Late"
)
)
)And...
SWITCH FORMULA =
SWITCH (
TRUE (),
Data[BL Date] > DATE ( 2018, 8, 31 ), "Future",
Data[BL Date] <= DATE ( 2018, 8, 31 )
&& Data[Actual Date] <> 0, "Late",
Data[BL Date] <> 0
&& Data[Actual Date] <> 0
&& Data[Variance] <= 0, "On-Time",
"Late"
)
Thank you so much for your help but the correct formula I'm looking is this. Now the result are matching.
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsI prefer SWITCH as well as it is easier to read and less opening and closing parentheses to keep track of.
SWITCH is internally converted into nested IFs anyway ![]()
BTW I see you added the <>0 above ![]()
Regards
Miguel Félix
Proud to be a Super User!
Check out my blog: Power BI em PortuguêsDon't miss out on Data Days, June 15 through August 7. Learn Fabric, Power BI, SQL, AI and more.
Check out the May 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 23 | |
| 23 | |
| 21 | |
| 17 | |
| 13 |
| User | Count |
|---|---|
| 58 | |
| 50 | |
| 37 | |
| 29 | |
| 24 |