Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!The Power BI Data Visualization World Championships is back! It's time to submit your entry. Live now!
Solved! Go to Solution.
Hey @dineshj23 ,
the following screenshot shows my sample data and also the result:
Here is the DAX statement to create the Calculated Column:
timeline =
var StartDate = 'Table'[start date]
var CompletedDateIsMissing = IF( ISBLANK( 'Table'[completed date] ) , 1 , 0)
return
SWITCH(
CompletedDateIsMissing
, 0
, var __DateDiff = DATEDIFF( StartDate , 'Table'[completed date] , DAY )
return
IF( __DateDiff < 30 , "On time" , "Late" )
, 1
, var DateToday = TODAY()
var __DateDiff = DATEDIFF( StartDate , DateToday , DAY )
return
IF( __DateDiff < 30 , "On time" , "Pending Late" )
)
I branch the decision-making by using SWITCH (completed date is missing or not). In both cases I calculate the number of days and return a value.
Hopefully, this what you are looking for.
Regards,
Tom
Hey @dineshj23 ,
the following screenshot shows my sample data and also the result:
Here is the DAX statement to create the Calculated Column:
timeline =
var StartDate = 'Table'[start date]
var CompletedDateIsMissing = IF( ISBLANK( 'Table'[completed date] ) , 1 , 0)
return
SWITCH(
CompletedDateIsMissing
, 0
, var __DateDiff = DATEDIFF( StartDate , 'Table'[completed date] , DAY )
return
IF( __DateDiff < 30 , "On time" , "Late" )
, 1
, var DateToday = TODAY()
var __DateDiff = DATEDIFF( StartDate , DateToday , DAY )
return
IF( __DateDiff < 30 , "On time" , "Pending Late" )
)
I branch the decision-making by using SWITCH (completed date is missing or not). In both cases I calculate the number of days and return a value.
Hopefully, this what you are looking for.
Regards,
Tom
Hi @TomMartens, How can I see if there's completed date missing but it's less than 30 days from Today and to label it as "Pending On time?
Thank you.
Hey @dineshj23 ,
just change this part
, 1
, var DateToday = TODAY()
var __DateDiff = DATEDIFF( StartDate , DateToday , DAY )
return
IF( __DateDiff < 30 , "On time" , "Pending Late" )
)
to this
, 1
, var DateToday = TODAY()
var __DateDiff = DATEDIFF( StartDate , DateToday , DAY )
return
IF( __DateDiff < 30 , "Pending On time" , "Pending Late" )
)
Regards,
Tom
Hi @dineshj23 ,
Try below formula:
Q Timeline =
var completed = if(isblank([completed date]),today(),[completed date])
var date_diff = datediff([start date],[completed date],day)
return
IF(date_diff>30,"late","on time")
Best Regards,
Jay
Hi @Anonymous Thank you for your reply.
What about the ones that don't have a completed date entered but are already running late? I would call this variable "Pending Late".
@Anonymous Hi. I think you might ahve not finished writing the complete code.
Hi @dineshj23 ,
--How do I calculate the ones that are running late that don't have the completed date but only the start date. We can use today's date to calculate how late it is.
if(isblank([completed date]),today(),[completed date])
Below part of formula means:
If the [completed date] is blank, then use today's date in date difference calculation.
If you only want to show "Pending Late" when [completed date] is blank, modify the formula as below:
Q Timeline =
var a = if(isblank([completed date]),-1,datediff([start date],[completed date],day))
return
IF(a = -1,"pending late",if(date_diff>30,"late","on time"))
Best Regards,
Jay
The Power BI Data Visualization World Championships is back! It's time to submit your entry.
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 60 | |
| 49 | |
| 30 | |
| 25 | |
| 23 |
| User | Count |
|---|---|
| 131 | |
| 103 | |
| 58 | |
| 39 | |
| 31 |