How to calculate positive & negative time
Good day everyone,
I've designed a smartsheet for an airline operation and dealing with standard departure / arrival times versus estimated departure / arrival times.
I have this formula that works great: =IF([ETA/ATA (LT)]@row <> "", ((VALUE(LEFT([ETA/ATA (LT)]@row, 2)) + IF([ETA/ATA (LT)]@row < [STA (LT)]@row, 24)) + (VALUE(RIGHT([ETA/ATA (LT)]@row, 2)) / 60)) - (VALUE(LEFT([STA (LT)]@row, 2)) + (VALUE(RIGHT([STA (LT)]@row, 2)) / 60))) * 60
However I'm trying to find a solution to when we've delayed a flight and are arriving earlier than expected without going into the 24 hour clock. Currently it does the +24 which is excellent when we arrive at 03:00, the above formula calculates properly however if we have a scheduled arrival at 16:30 and an estimated arrival at 16:28, it gives us 1438 minutes instead of -2.
I know this formula would work to get the -2 =IF([ETA/ATA (LT)]@row > "", ((VALUE(LEFT([ETA/ATA (LT)]@row, 2)) + IF([ETA/ATA (LT)]@row > [STA (LT)]@row, 24)) + (VALUE(RIGHT([ETA/ATA (LT)]@row, 2)) / 60)) - (VALUE(LEFT([STA (LT)]@row, 2)) + (VALUE(RIGHT([STA (LT)]@row, 2)) / 60))) * 60 however am unsure how to combine it to include both scenarios and have it function properly to calculate an early arrive with negative numbers and arrivals after midnight for positive numbers.
I would appreciate any help and expertise on this to figure it out as I'm a bit lost.
Best Answer
-
Found a solution, in case it'll help anyone else out.
=IF([ETA/ATA (LT)]@row > [STA (LT)]@row, IF(VALUE(LEFT([ETA/ATA (LT)]@row,2)) < VALUE(LEFT([STA (LT)]@row,2)), ((24+VALUE(LEFT([ETA/ATA (LT)]@row,2)))*60 + VALUE(RIGHT([ETA/ATA (LT)]@row,2))) - ((VALUE(LEFT([STA (LT)]@row,2))*60) + VALUE(RIGHT([STA (LT)]@row,2))),((VALUE(LEFT([ETA/ATA (LT)]@row,2)))*60 + VALUE(RIGHT([ETA/ATA (LT)]@row,2))) - ((VALUE(LEFT([STA (LT)]@row,2))*60) + VALUE(RIGHT([STA (LT)]@row,2)))), IF(VALUE(LEFT([ETA/ATA (LT)]@row,2)) >= VALUE(LEFT([STA (LT)]@row,2)),((VALUE(LEFT([ETA/ATA (LT)]@row,2)))*60 + VALUE(RIGHT([ETA/ATA (LT)]@row,2))) - ((VALUE(LEFT([STA (LT)]@row,2))*60) + VALUE(RIGHT([STA (LT)]@row,2))), ((24+VALUE(LEFT([ETA/ATA (LT)]@row,2)))*60 + VALUE(RIGHT([ETA/ATA (LT)]@row,2))) - ((VALUE(LEFT([STA (LT)]@row,2))*60) + VALUE(RIGHT([STA (LT)]@row,2)))))
Answers
-
Found a solution, in case it'll help anyone else out.
=IF([ETA/ATA (LT)]@row > [STA (LT)]@row, IF(VALUE(LEFT([ETA/ATA (LT)]@row,2)) < VALUE(LEFT([STA (LT)]@row,2)), ((24+VALUE(LEFT([ETA/ATA (LT)]@row,2)))*60 + VALUE(RIGHT([ETA/ATA (LT)]@row,2))) - ((VALUE(LEFT([STA (LT)]@row,2))*60) + VALUE(RIGHT([STA (LT)]@row,2))),((VALUE(LEFT([ETA/ATA (LT)]@row,2)))*60 + VALUE(RIGHT([ETA/ATA (LT)]@row,2))) - ((VALUE(LEFT([STA (LT)]@row,2))*60) + VALUE(RIGHT([STA (LT)]@row,2)))), IF(VALUE(LEFT([ETA/ATA (LT)]@row,2)) >= VALUE(LEFT([STA (LT)]@row,2)),((VALUE(LEFT([ETA/ATA (LT)]@row,2)))*60 + VALUE(RIGHT([ETA/ATA (LT)]@row,2))) - ((VALUE(LEFT([STA (LT)]@row,2))*60) + VALUE(RIGHT([STA (LT)]@row,2))), ((24+VALUE(LEFT([ETA/ATA (LT)]@row,2)))*60 + VALUE(RIGHT([ETA/ATA (LT)]@row,2))) - ((VALUE(LEFT([STA (LT)]@row,2))*60) + VALUE(RIGHT([STA (LT)]@row,2)))))
-
Thanks for posting your solution! 🙂
Need more help? 👀 | Help and Learning Center
こんにちは (Konnichiwa), Hallo, Hola, Bonjour, Olá, Ciao! 👋 | Global Discussions
-
This fomula almost works however it seems that when our STA is before midnight and our ETA is after midnight, it produces a negative result instead a positive result, does anyone know how to fix that?
=IF([ETA/ATA (LT)]@row > [STA (LT)]@row, IF(VALUE(LEFT([ETA/ATA (LT)]@row, 2)) < VALUE(LEFT([STA (LT)]@row, 2)), ((24 + VALUE(LEFT([ETA/ATA (LT)]@row, 2))) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2))) - ((VALUE(LEFT([STA (LT)]@row, 2)) * 60) + VALUE(RIGHT([STA (LT)]@row, 2))), ((VALUE(LEFT([ETA/ATA (LT)]@row, 2))) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2))) - ((VALUE(LEFT([STA (LT)]@row, 2)) * 60) + VALUE(RIGHT([STA (LT)]@row, 2)))), IF(VALUE(LEFT([ETA/ATA (LT)]@row, 2)) = VALUE(LEFT([STA (LT)]@row, 2)), IF(VALUE(RIGHT([ETA/ATA (LT)]@row, 2)) < VALUE(RIGHT([STA (LT)]@row, 2)), -((VALUE(LEFT([STA (LT)]@row, 2)) * 60 + VALUE(RIGHT([STA (LT)]@row, 2))) - ((VALUE(LEFT([ETA/ATA (LT)]@row, 2))) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2)))), ((VALUE(LEFT([ETA/ATA (LT)]@row, 2))) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2))) - ((VALUE(LEFT([STA (LT)]@row, 2)) * 60) + VALUE(RIGHT([STA (LT)]@row, 2)))), IF(VALUE(LEFT([ETA/ATA (LT)]@row, 2)) >= VALUE(LEFT([STA (LT)]@row, 2)), ((VALUE(LEFT([ETA/ATA (LT)]@row, 2))) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2))) - ((VALUE(LEFT([STA (LT)]@row, 2)) * 60) + VALUE(RIGHT([STA (LT)]@row, 2))), IF(OR(VALUE(LEFT([STA (LT)]@row, 2)) >= 23, VALUE(LEFT([STA (LT)]@row, 2)) <= VALUE(LEFT([ETA/ATA (LT)]@row, 2))), ((24 + VALUE(LEFT([ETA/ATA (LT)]@row, 2))) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2))) - ((24 + VALUE(LEFT([STA (LT)]@row, 2))) * 60 + VALUE(RIGHT([STA (LT)]@row, 2))), ((VALUE(LEFT([ETA/ATA (LT)]@row, 2))) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2))) - ((VALUE(LEFT([STA (LT)]@row, 2)) * 60) + VALUE(RIGHT([STA (LT)]@row, 2)))))))
-
The formula won't be able to tell if you're looking at midnight on the current day or midnight on the next day as there are no dates associated with the times.
For example, if your STA (LT) is at 23:59, but your ETA/ATA (LT) is 00:29, the formula is currently assuming that the flight was 23.5 hours early, looking at the same day, instead of being 30min late on to the next day.
Do you have other data in the sheet that records the day along with the time? It would be helpful to see how your sheet is set up, but please block out sensitive data.
Cheers,
Genevieve
Need more help? 👀 | Help and Learning Center
こんにちは (Konnichiwa), Hallo, Hola, Bonjour, Olá, Ciao! 👋 | Global Discussions
-
Hi Genevieve,
There's a Date column that'd be for the departure date but not an arrival date column.
Once I'm back in the office I'll be able to get a screenshot of the design of the smartsheet.
I appreciate your help and expertise.
Carmen
-
Here is a screenshot of the columns we have in this Smartsheet. Certainly appreciate any help to get it to work for all scenarios.
-
I'm not sure that there is a way to do this accurately for each row without having an Date associated with each of your time columns; taking a look at Paul's "Formulas for Calculating Time" thread, I notice he uses Date columns to check if the time has crossed over to the next day or not.
You could perhaps add a checkbox column into the sheet to indicate if the Date ended up being next day instead of same day? Then use that in your formula to adjust how the values are being calculated.
If you have a minute, please add your vote and voice to this Product Ideas post asking for Smartsheet to work with time!
Cheers,
Genevieve
Need more help? 👀 | Help and Learning Center
こんにちは (Konnichiwa), Hallo, Hola, Bonjour, Olá, Ciao! 👋 | Global Discussions
-
Thank you Genevieve.
I found a solution by adding in other columns as I couldn't find a solution within that thread:
=IF(AND([Arrival Date]@row = [Actual Arrival Date]@row, [ETA/ATA (LT)]@row < [STA (LT)]@row), (VALUE(LEFT([ETA/ATA (LT)]@row, 2)) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2))) - (VALUE(LEFT([STA (LT)]@row, 2)) * 60 + VALUE(RIGHT([STA (LT)]@row, 2))), IF(AND([Arrival Date]@row = [Actual Arrival Date]@row, [ETA/ATA (LT)]@row >= [STA (LT)]@row), (VALUE(LEFT([ETA/ATA (LT)]@row, 2)) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2))) - (VALUE(LEFT([STA (LT)]@row, 2)) * 60 + VALUE(RIGHT([STA (LT)]@row, 2))), IF(AND([Arrival Date]@row < [Actual Arrival Date]@row, OR([ETA/ATA (LT)]@row >= [STA (LT)]@row, [ETA/ATA (LT)]@row < [STA (LT)]@row)), ((24 * 60) - (VALUE(LEFT([STA (LT)]@row, 2)) * 60 + VALUE(RIGHT([STA (LT)]@row, 2)))) + ((VALUE(LEFT([ETA/ATA (LT)]@row, 2)) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2)))), IF(AND([Arrival Date]@row < [Actual Arrival Date]@row, [ETA/ATA (LT)]@row < [STA (LT)]@row), ((24 * 60) - (VALUE(LEFT([STA (LT)]@row, 2)) * 60 + VALUE(RIGHT([STA (LT)]@row, 2)))) - ((VALUE(LEFT([ETA/ATA (LT)]@row, 2)) * 60 + VALUE(RIGHT([ETA/ATA (LT)]@row, 2)))), ""))))
Help Article Resources
Categories
- All Categories
- 14 Welcome to the Community
- Customer Resources
- 64.9K Get Help
- 441 Global Discussions
- 140 Industry Talk
- 472 Announcements
- 4.9K Ideas & Feature Requests
- 129 Brandfolder
- 148 Just for fun
- 68 Community Job Board
- 497 Show & Tell
- 33 Member Spotlight
- 2 SmartStories
- 300 Events
- 36 Webinars
- 7.3K Forum Archives
Check out the Formula Handbook template!