Odejmowanie godzin w Excelu
19 maj 2008
Daty i czas traktowane są w Excelu jak zwykłe liczby, dzięki czemu możemy przeprowadzać na nich obliczenia. Ostatnio podczas tworzenia prostego arkusza natknąłem się jednak na problem dotyczący odejmowania godzin. Oto opis tego problemu oraz jak można go szybko rozwiązać.
Komputery to fascynujące urządzenia, które pozwalają nam na rozwiązywanie problemów, których byśmy nie mieli, gdyby nie było komputerów. To zdanie przepięknie charakteryzuje moją motywację użycia Excela do wykonania obliczeń, które dużo szybciej można by wykonać w głowie… Chodziło mi mianowicie o obliczenie godziny, o której powinienem rozpocząć wykonywanie pewnego zadania składającego się z trzech faz, z których każda trwa określoną ilość czasu. Chciałem też wiedzieć, o której godzinie rozpoczną się pozostałe fazy. Jako punkt wyjścia do moich obliczeń przyjąłem konkretną godzinę, o której chciałem zakończyć wykonywanie ostatniej fazy zadania:

Do obliczeń wystarcza tu użycie prostej formuły odejmującej długość trwania danej fazy w godzinach od godziny zakończenia. Formułę z komórki B4 po wprowadzeniu skopiowałem do góry do pozostałych dwóch komórek. W przypadku fazy nr 3 obliczenie wykonywane jest jeszcze bez problemu i w wyniku otrzymujemy jako godzinę rozpoczęcia godzinę 7:00. Jeśli jednak spróbujemy w komórce wyżej odjąć od godziny 7:00 kolejne osiem godzin (czyli wykonać operację B4-C3), to w wyniku otrzymamy znaki #######. Znaki takie pojawiają się zwykle, jeśli np. wynik jakiejś operacji nie mieści się w komórce. Tu jednak przyczyna jest inna. Odejmując osiem godzin od godziny 7:00 rano, Excel powinien podać nam w wyniku godzinę 23:00. Program nie potrafi jednak wykonać tej operacji, ponieważ jej wynik jest dla Excela wynikiem ujemnym! Jeśli ustawimy kursor myszy nad komórką zawierającą znaki hash, to w podpowiedzi otrzymamy od Excela właśnie taką informację.
Jak można temu zaradzić? Mi w znalezieniu rozwiązania pomogła informacja, że możemy tu mieć do czynienia z wynikiem ujemnym. Dopóki liczymy tylko na godzinach, Excel rzeczywiście wylicza ujemny rezultat. Postanowiłem więc podać mu konkretną datę jako punkt wyjścia, tak aby odejmując kolejne godziny i przekraczając północ przechodził do poprzedniego dnia. W komórce B5 wpisujemy zatem dowolną datę z godziną, np. 2008-05-01 10:00 i formuły zaczynają działać poprawnie.
Dla moich celów daty nie grają żadnej roli, lecz ważne jest tylko, o której godzinie dowolnego dnia rozpoczyna się dana faza. Dobrze byłoby więc ukryć datę, która jest teraz widoczna w komórce B5. W tym celu naciskam CTRL+1 (Formatowanie komórek), przechodzę na zakładkę Liczby, tam na formaty niestandardowe i wybieram format gg:mm. Teraz, mimo że w komórce jest wpisana pełna data (nadal widoczna w pasku formuły, komórka pokazuje tylko godzinę 10:00.

