fbpx

Liczba godzin pracy na podstawie symboli (formuła tablicowa)

04.04.2019 | Czas pracy, ECP2, Formuły tablicowe, HR

Czyli coś trudnego prostymi funkcjami…

Ogólnie sytuacja wydaje się prosta – mamy dany czas pracy pracownika w poszczególnych dniach i chcemy poznać jego łączny czas pracy w danym okresie. Problem jest jednak w tym, że ten czas pracy podany jest za pomocą symboli, a nie liczb. Np. UW to Urlop wychowawczy, który dla obliczeń bierze 8 godzin. Tych oznaczeń jest więcej i są one widoczne w tabelce po prawej stronie formatki:

Formatka

Formatka

Oczywiście w żółtych polach chcemy uzyskać sumę łączny czas pracy danego pracownika. Gdybyśmy chcieli/mogli mieć tabele pomocniczą – zadanie byłoby wręcz banalne! Natomiast nie mamy takiej tabeli, więc trzeba kombinować formułą tablicową. I o niej dalej.

Gdybyśmy mieli tylko jeden symbol do znalezienia, np. CD – formuła byłaby bardzo prosta. Można byłoby się posłużyć tutaj np. SUMĄ.JEŻELI, WYSZUKAJ.PIONOWO czy jeszcze kilkoma innymi funkcjami. Wtedy kazalibyśmy funkcji, np. SUMIE.JEŻELI, szukać symbolu CD w zakresie z symbolami (N4:N9) i na tej podstawie sumować liczbę godzin (O4:O9).

Formuła wyglądałaby tak:

=SUMA.JEŻELI($N$4:$N$9;C4;$O$4:$O$9)

I byłoby po sprawie.

Natomiast do poszukania mamy zdecydowanie więcej symboli. Jest więc to pole do popisu dla formuły tablicowej. Nadal będziemy używać w niej SUMY.JEŻELI (oczywiście jak chcesz – możesz użyć SUMY.WARUNKÓW), natomiast każemy jej znaleźć wszystkie symbole dla danego pracownika, czyli tak:

=SUMA.JEŻELI($N$4:$N$9;C4:K4;$O$4:$O$9)

Problem jest jednak taki, że jak taką formułę zatwierdzimy – otrzymamy w wyniku zero. SUMA.JEŻELI bowiem zwróci w wyniku tablicę wartości, która nie mieści się w jednej komórce (nie możemy przechowywać wielu komórek w jednej komórce – to potrafi Power Query ;)). Tak wygląda wynik powyższej funkcji (będąc w edycji formuły – wciśnij F9, aby się o tym przekonać):

={24\12\12\0\8\8\12\8\12}

Nawiasy klamrowe naokoło wyników oznaczają, że jest to tablica wartości. I co ciekawe – te wartości są prawidłowymi wynikami! SUMA.JEŻELI wywiązała się z zadania.

Tylko trzeba byłoby to teraz jeszcze podsumować… Potrzebna nam jest więc funkcja sumująca. No wow, wielkie odkrycie: SUMA oczywiście! I tak, SUMA oczywiście zda tutaj egzamin (umie w końcu sumować ;)). Natomiast jeśli jej użyjemy, koniecznie musimy zatwierdzić całą formułę kombinacją klawiszy Ctrl + Shift + Enter (w skrócie: CSE). Efekt będzie taki, że naokoło formuły pojawią się nawiasy klamrowe, wstawiane automatycznie przez Excela (nie kopiuj ich z formuły poniżej!):

{=SUMA(SUMA.JEŻELI($N$4:$N$9;C4:K4;$O$4:$O$9))}

CSE oczywiście zadziała, wynik wyjdzie prawidłowy. Problem jednak jest taki, że o CSE często się zapomina (patrz: ja ;)), no i nie da się wtedy skorzystać z mojego ukochanego Ctrl + Enter, tylko trzeba kopiować przeciąganiem, albo Ctrl + c i Ctrl + v.

Żeby jednak tego uniknąć, wystarczy zastosować inną funkcję sumującą. A jest nią SUMA.ILOCZYNÓW, o której już wielokrotnie wspominałam na blogu (np. tutaj) :). Ta funkcja sumuje (w tym wypadku identycznie jak SUMA) i umie radzić sobie z tablicami i to bez CSE! Dlatego, jak masz coś do dodania w formule tablicowej – zdecydowanie polecam Ci SUMĘ.ILOCZYNÓW:

=SUMA.ILOCZYNÓW(SUMA.JEŻELI($N$4:$N$9;C4:K4;$O$4:$O$9))

Wynik oczywiście dostaniemy ten sam, tylko bez CSE, no i możesz skopiować formułę Ctrl + Enter 😉

Wynik

Wynik

Proste? Mam nadzieję :).

 

Tutaj możesz pobrać plik z gotowym rozwiązaniem:

MalinowyExcel Suma czasu pracy formułą tablicową dw.xlsx

 

A tutaj wersja wideo:

A jeśli temat formuł tablicowych Cię interesuje, to bardzo serdecznie Ci polecam serię filmów Mike’a Girvina na ten temat. Mike napisał też książkę o formułach tablicowych, dostępna jest po angielsku.

 

Jeżeli chcesz lepiej poznać Excela na poziomie średniozaawansowanym zapisz się na listę zainteresowanych kursem Excel w codziennej pracy cz. 2! Podczas oczekiwania na kurs będę Ci wysyłała informacje, ciekawostki i excelowe triki. Bezpłatnie! 

Pomogłam Ci? Postaw mi wirtualną kawę! →

Przeczytaj podobne wpisy

Kategorie

4 komentarze

  1. Można też po prostu:

    =SUMA(JEŻELI($N$3:$N$8=C4:K4;$O$3:$O$8))

    (i oczywiście CSE na zatwierdzenie formuły)

    Odpowiedz
    • Super, czyli nawet jeszcze prostszymi funkcjami się da :). Dziękuję za podzielenie się!

      Odpowiedz
    • Hej! Weszłam na link i wygląda na to, że tam rozwiązali problem?

      Odpowiedz

Wyślij komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *