Forum Discussion
DATEDIFF calculation error
- 9 years ago
OK, good news! DateDiff doesn't freak out over Nulls, it just returns another Null. (See screen shot 3). It also has no issues with days equal to each other... (Sorry for those wrong paths). (also screen shot 3).
This is my formula if you want NULLS to pass thru for no End Date. (Best practics)
DateDiff2 = IF(Table1[Start_Date]<=Table1[End_Date],DATEDIFF(Table1[Start_Date],Table1[End_Date],DAY),(DATEDIFF(Table1[End_Date],Table1[Start_Date],DAY)*-1))
This is another option if you want 0 instead of NULL for a null end date.
DateDiff2 = IF(ISBLANK(Table1[End_Date]),0,IF(Table1[Start_Date]<=Table1[End_Date],DATEDIFF(Table1[Start_Date],Table1[End_Date],DAY),(DATEDIFF(Table1[End_Date],Table1[Start_Date],DAY)*-1)))
See if this works and sort the result ascending... i'm curious what PowerBI is seeing that's still making it think the dates are reveresed... (Please let me know, I'm sucked into the mystery now...)
FOrrest
Double check you don't have any Start Date = End Date situations. If you do, you can easily add an IF(StartDate = EndDate , 0 , <Your current DateDiff Logic>)
- annerogers9 years agoHelper I
I do have some that are the same. There are also some where there is not yet an end date. Would I do something different for them?
I will try making the change above. Thank you for your help.
Anne
- annerogers9 years agoHelper I
I just tried it, I am still getting the same error. :(
- fhill9 years agoResident Rockstar
I'm thinking the 'null' or blank End Dates might be your problem.... See if this posting helps to build an IF statement around those blank values..?
https://community.powerbi.com/t5/Desktop/function-isnull/td-p/12121
Forrest
- annerogers9 years agoHelper I
Thank you fhill.
I went there but I am not sure how to combine the calculation suggested in that post with the one I have built. Any suggestions?
This is what that post had:
IF( ISBLANK(TABLE[MEASURE]), BLANK(),TABLE[MEASURE])
OR
IF( ISBLANK(TABLE[MEASURE]), 0,TABLE[MEASURE])
This is what my calc for the new column:
IF(TABLE_PROGRAM[COLUMN_startdate]=TABLE_PROGRAM[COLUMN_enddate],0, DATEDIFF(TABLE_PROGRAM[COLUMN_startdate],TABLE_PROGRAM[COLUMN_enddate],DAY))
Thank you for your help on this.