Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Excel - grafik, który liczy godziny

snake56 11 Lis 2012 21:07 7206 10
  • #1 11 Lis 2012 21:07
    snake56
    Poziom 9  

    Witam, w załączniku przedstawiam grafik jakim operuję w pracy.
    Chciałbym aby arkusz liczył godziny pracy, dni wolne oraz dni funkcyjne pracowników.
    Grafik ma pozostać w takiej postaci jak załączniku.
    Godziny mają być zapisane w jednej komórce, np 8:30-16 i kolumnie liczba godzin pojawia się 7,5 itd. Następnie po wpisaniu w komórę słowa OFF arkusz liczy go jako dzień wolny i w kolumnie dni wolne pojawia się 1

    Następnie jak wpiszę w komórkę F (dzień funkcyjny) to arkusz doliczy 8 godzin do sumy godzin w miesiącu.

    Jest to wszystko możliwe?

    Będę wdzięczny za pomoc.

    0 10
  • #2 11 Lis 2012 22:04
    mrx
    Poziom 18  

    W programowaniu wszystko jest możliwe ..ale nie wszystko ma sens.
    W prostej formie wykonanie takiego grafiku przy Twoich założeniach nie jest możliwe.
    Założenie - "grafik w takiej postaci jak w załączniku" wyklucza wykonanie tego zadania z prostej, elementarnej w excelu zasady: w jednej komórce - jedna wartość (może ona się zmieniać- ale zawsze jest jedna). Zatem podanie dowolnego przedziału godzin (od do) w jednej komórce uniemożliwia wyliczenie ilości godzin przepracowanych przez pracownika w danym dniu. Należałoby zakres godzin podzielić na dwie komórki, w których podasz najpierw godz. rozpoczęcia pracy a w drugiej zakończenia. Wygląd całego grafiku po formatowaniu, generalnie nie uległby wielkim zmianom.
    Można to zrobić na dwa sposoby - z wykorzystaniem wbudowanych w excela funkcji logicznych i przy wykorzystaniu komórek "roboczych" lub z wykorzystaniem VBA.

    0
  • #3 11 Lis 2012 22:12
    snake56
    Poziom 9  

    ok,
    rozumiem.
    Myślę że warto tu zastosować komórki robocze.
    np. komórka D6 (9-16) wynik czyli 7 przepracowanych godzin pojawi się w komórce roboczej, którą później można ukryć. później następny dzień itd. Na końcu sumujemy tą wszystkie godziny z komórek roboczych i wynik pojawia się w kolumnie liczba godzin.

    Dobrze to rozumiem?

    Tylko nie wiem jakiej użyć funkcji do liczenia zakresu godzin w jeden komórce, która potrafi liczyć godziny z połówkami, np 8:30-16 = 7,5

    0
  • #4 11 Lis 2012 22:50
    mrx
    Poziom 18  

    Nie do końca zrozumiałeś mój poprzedni post. Trzeba arkusz zrobić na nowo albo mocno zmodyfikować ten istniejący.
    Dla każdego dnia - np 1 listopada musisz przeznaczyć dwie komórki - np D6 i E6. Formatujesz te komórki (prawy przycisk myszki - formatuj komórki - klikasz czas i wybierasz format np 13:30) W komórkę D6 wpisujesz godz. rozpoczęcia pracy np 8:20, w komórkę E6 wpisujesz godz. zakończenia pracy np 15:21. To pozwoli Ci dokonać prostych obliczeń czasu pracy - możesz to dla nabrania wprawy sprawdzić w jakiejś wolnej komórce, której ustalisz format taki jak opisanym wcześniej - (prawy przycisk myszki - formatuj komórki - klikasz czas i wybierasz format np 13:30) i wpisując formułę =E6-D6. Wynikiem będzie ilość godzin i minut w formacie XX:XX np 7:01. Niestety to początek drogi :) bowiem będzie jeszcze trzeba wprowadzić funkcje logiczne np "jeżeli" (by rozpoznać czy wpisany jest tekst - i jaki tekst (F lub OFF) czy czas. Ale nie zniechęcaj się ..excel naprawdę potrafi być przydatnym narzędziem jak się go lepiej pozna.
    Acha.. dni wolne można łatwo policzyć wpisując w danym wierszu (w tym przypadku wiersz 6, w kolumnie "dni wolne" formułę =LICZ.WARUNKI(C6:AF6;"OFF")

    0
  • Pomocny post
    #5 12 Lis 2012 09:47
    marek003
    Poziom 40  

    mrx nie bądź takim czarnowidzem :) da się zrobić obliczenia i na tym co autor przedstawił. Ale formuła jest trochę zawiła.

    Kłopot polega jednak na systematyczności danych i kolejnych warunkach o których autor nie wspomniał.

    Oprócz "off" i "f" jest jeszcze "offf", "inv", "dos" itd. a dla excela musi być jasne jak to policzyć (czy to 0 czy 8 czy dzień wolny).
    I druga rzecz w grafiku jest format godziny jako 7,5 (i na tej podstawie zbudowałem formuły) a autor opisując problem stosuje format 8:30.
    Trzeba się zdecydować, bo inaczej wyglądają wyniki jeżeli oblicza się je w formacie dziesiętnym a inaczej w formacie godzinowym.
    Przy czym mieszanie formatów jest niedopuszczalne.

    3
  • #6 12 Lis 2012 10:17
    andrefff
    Poziom 36  

    Zdradzisz jak to zrobiłeś ?

    5
  • #7 12 Lis 2012 11:15
    marek003
    Poziom 40  

    andrefff napisał:
    Zdradzisz jak to zrobiłeś ?


    Rozwiń plusik i zobacz całą formułę.

    Główna formuła licząca godziny w danym dniu to:
    =WARTOŚĆ(PRAWY(D6;DŁ(D6)-ZNAJDŹ("-";D6;1)))-WARTOŚĆ(LEWY(D6;ZNAJDŹ("-";D6;1)-1))

    Reszta to proste warunki jeżeli()

    Czy też wytłumaczyć powyższą formułę (jak liczy) ?

    3
  • #8 12 Lis 2012 11:34
    andrefff
    Poziom 36  

    Nie, resztę już kumam. Dzięki.

    0
  • #9 12 Lis 2012 12:19
    mrx
    Poziom 18  

    Marek ..sam doskonale wiesz, że zastosowanie formatu dziesiętnego przy obliczeniach czasu jest podstawowym błędem w założeniu. Ale skoro Autorowi wątku pasuje takie rozwiązanie, to nie ma nad czym dalej dyskutować, tym bardziej, że na zmienionym formacie godzin, Twoje rozwiązanie też działa.

    0
  • Pomocny post
    #10 12 Lis 2012 14:10
    marek003
    Poziom 40  

    :arrow: mrx
    Wiem i co do formatu godzin popieram cię w 100%
    Nie każdy rozumie że 17,1 to nie 17:10 tylko 17:06


    Ale teź wiem jak uciążliwe jest wpisywanie "z ręki" dla 150 pracowników (przypadek z mojej firmy) godzin w prawidłowej formie xx:xx, więc nie dyskutuje z autorem a jedynie nakazuje zastosowanie jednej ustalonej z góry metody i trzymania się tego do końca.

    0
  • #11 12 Lis 2012 21:18
    snake56
    Poziom 9  

    marek003 świetna robota. Dokładnie o to mi chodziło. skorzystać w komórek roboczych a później je ukryć.
    Co do wpisywania formatu godziny to rzeczywiście trochę namieszałem, ale faktycznie będzie mi lepiej jak zostanie tak, jak w oryginale czyli 8,5 = 08:30.
    Tak czy siak jestem w pełni usatysfakcjonowany i pełen podziwu Waszej wiedzy o excelu.

    Problem rozwiązany

    Dziękuję bardzo

    pozdrawiam

    0