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

Excel - obliczanie godzin pracy + nadgodziny + przerwa

majas76 23 Sty 2016 16:01 2637 25
  • #1 23 Sty 2016 16:01
    majas76
    Poziom 9  

    Odswiezam troche temat.

    Przykladowy plik z obliczeniem godzin pracy i nadgodzin w zalaczniku.
    Rate0 - godziny pracy lacznie z dojazdem do pracy
    Rate1 - nadgodziny - wszystko powyzej 8h

    dodatkowo
    Lunch - przerwa na lunch trwa 1h i nie jest wliczana do czasu pracy, ale jezeli mam 1/2 przerwy to druga polowa to juz normalny czas pracy.

    jakies sugestie?

    Pozdrawiam
    Maciej

    0 25
  • #3 24 Sty 2016 00:45
    majas76
    Poziom 9  

    Chcialbym aby program sprawdzil czy suma godzin w pierwszym rzedzie jest wieksza lub rowna 8. Jesli jest mniejsza to w kolejnym rzedzie wpiszac roznice w polu RATE 0, jezeli jest wieksza to wpisac wartosc w polu RATE 1.

    0
  • #5 24 Sty 2016 12:59
    majas76
    Poziom 9  

    no wlasnie, gdyby to bylo take proste to nie zadawalbym pytania na forum.

    0
  • #7 24 Sty 2016 14:47
    majas76
    Poziom 9  

    dedito, Dziekuje, bardzo mi pomogles.

    Ktos ma jakies inne pomysly.

    1
  • #8 24 Sty 2016 23:02
    marek003
    Poziom 40  

    Majas76 - na tak zadane pytanie odpowiedź dedito jest jak najbardziej trafna.
    Przy czym już to zastosowałeś w przedstawionym przykładzie wiec też powtórzę: z czym masz problem?.
    Przecież widać że umiesz stosować funkcję jeżeli().

    Albo opisz dokładnie co chcesz (Jaką różnicę [między czym a czym] wpisać w Rate0 a jaką wartość [sumę?] w rate1.
    Powyższe tyczy się dwóch wartości w niższym rzędzie? czy rate0 to niższy a rate 1 wyższy.
    Jak na to mają wpływać wartości które już są (wynikają z danych tego rzędu) w niższym rzędzie?

    Do powyższego zapisu załącz przykład z danymi (nawet z ręki) jakie powinny być wartości (z opisem dlaczego)
    Wydaje mi się że nie będzie kłopoty by ci pomóc ale... jak wspomniano wyżej trzeba wiedzieć w czym masz problem (co nie potrafisz policzyć)?

    1
  • #9 25 Sty 2016 00:04
    majas76
    Poziom 9  

    marek003, dzieki za odpowiedz. Moze troszke zle sie wyrazilem.

    od poczatku.
    Rate0 to wszystkie godziny pracy do 8 godzin
    Rate1 to wszystkie godziny powyzej 8 godzin

    Przyklad z reki:
    07:30 - 13:00 praca w biurze = 5.5 godz Rate0, 0 godz Rate1 - proste JEZELI
    13:00 - 18:00 praca u klienta = 2.5 godz Rate0, 2.5 godz Rate1 - takze stosuje funkcje JEZELI lecz nie wiem jakie dzialanie zastosowac aby system wyliczyl 2.5 godz Rate0 a jakie aby wyliczyl Rate1
    18:00 - 19:30 praca w biurze = 0 godz Rate0, 1.5 godz Rate1


    Pozdrawiam

    0
  • #10 25 Sty 2016 21:35
    marek003
    Poziom 40  

    To jeszcze parę pytanek uściślających regułę (jeżeli myślałeś że tak prosto dać "jakiś" przykład to się myliłeś :) ):
    Czy jest ciągłość czasu między wierszami tzn czy zawsze "pierwszy" wiersz kończy się godziną zaczynającą drugi wiersz - bo tak nie jest w pierwszym przykładzie (pierwszy wiersz kończy się 18:00 następny zaczyna 8:30 - kolejne już są "ciągiem")

    A jeżeli jest ciągłość to czy po LUNCHu "półgodzinnym" też zacznie się czas od końca lunchu. Czyli np.:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Inny przypadek z lunch'em

    Kod: text
    Zaloguj się, aby zobaczyć kod


    A co w takim przypadku - po pierwsze czy może się trafić w zapisie i ile ma być rate1 (a może wtedy kolejna praca zacznie się od 13:00 czyli zerwanie ciągłości czasu - ale logiczne)

    Kod: text
    Zaloguj się, aby zobaczyć kod



    Czy "wykazywany" czas pracy może może przekraczać 24 godziny.
    A może inaczej zadam pytanie: czy praca zaczęta w jednym dniu może się kończyć w drugim dniu (nawet nie wspomnę o paru dniach - bo to masakra) i jeżeli tak to czy w dodatku czas pracy może przekroczyć 24 godziny.
    (8 godzin pracy 1 godzina przerwy a reszta nadgodziny).


    I jeszcze jedno (pierwszy przykład) "Travel" też ma się wliczać w Rate0 i Rate1 czy to wyrzucić poza obliczenia.

    0
  • #11 25 Sty 2016 23:08
    majas76
    Poziom 9  

    Witam,
    czas pracy jest ciagly, tzn. "pierwszy" wiersz kończy się godziną zaczynającą drugi wiersz, tak jak napisales. Ciaglosc pracy bedzie takze po polgodzinnej przerwie.
    Praca nidgy nie bedzie przekraczala 24h. "Travel" do pracy wlicza sie rowniez do czasu pracy.

    Zapis z reki powinien byc nastepujacy:

    Kod: text
    Zaloguj się, aby zobaczyć kod

    lub
    Kod: text
    Zaloguj się, aby zobaczyć kod

    lub
    Kod: text
    Zaloguj się, aby zobaczyć kod

    0
  • #12 26 Sty 2016 00:04
    marek003
    Poziom 40  

    Czekaj bo nie łapię (drugi i trzeci przypadek)

    W trzecim przypadku lunch'u nie powinno być wtedy Rate0= 00:30 (przecierz pół godziny lunchu minęło?

    Jak odpoczywam 1/2 godziny lub całą godzinę to mam 0:00 godzin pracy, a jak 0:45 to już mi się zalicza 25 minut lunchu do czasu pracy? (nie uważasz że to dziwaczne)?
    To co w przypadku czasu trwania lunch'u wyniesie 00:40, a co w przypadku czasu lunch 00:50. Czy może taka opcja nie występuje (00:45 jest granicą)?

    -------
    Dziś już kończę - żona woła :)

    0
  • #13 26 Sty 2016 00:26
    majas76
    Poziom 9  

    przypadek trzeci:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Rate0: 0:00 poniewaz przerwa trwala cala godzine

    przypadek drugi:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Rate0: 0:25 poniewaz przerwa trwala 45minut, co wydluzylo czas pracy o dodatkowe 15 minut.

    w przypadku pierwszym:
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Rate0: 0:50 poniewaz przerwa 30 min, to dodatkowy czas pracy wydluza sie o kolejne 30 min.

    masz jaks plan, jakie dzialanie zastosowac w funkcji JEZELI ?[/syntax]

    0
  • #14 26 Sty 2016 22:13
    marek003
    Poziom 40  

    Mam "plan" (myślałem że mam) ale co chwila mi go "rozwalasz" :) Tu nie chodzi tylko o jeżeli() ale o samą formułę "sumująco - wyłączającą"

    Na marginesie dla samej nomenklatury (bym rozumiał okres czasu):
    Jak między numerami jest : (dwukropek) to jest to zapis czasowy czyli 00:50 to nie pół godziny (00:30) tylko 50 minut - pół godziny to 0,5 (z przecinkiem).

    Ostatni twój przykład - (pomijając zapis) coś się nie zgadza- dublujesz czas (wg mnie ale to "twoje" rozliczenie czasu)
    Zobacz,
    za lunch półgodzinny przyznałeś "premie" czasową równą pół godziny (znikąd) , bo te pół godziny dodałeś kolejny raz w następnym wierszu.

    Czas całego dnia, od początku do końca (8:00 - 18:30) to 10 godzin i pół godziny. Jak zsumujesz Rate0 + Rate1 też wychodzi 10 i pół godziny - a pół godzinna przerwa która miała się nie liczyć do żadnego "rate"?.

    Nie wiem czy rozumiesz moją niejasność:

    Lunch 12:00 - 12:30 Rate0: 00:30 (pół godziny)
    Lunch 12:00 - 12:45 Rate0: 00:15 (15 minut)
    Lunch 12:00 - 13:00 Rate0: 00:00 (0 minut)
    (na marginesie a co będzie jak Lunch będzie trwał 15 minut czyli 12:00 - 12:15)

    Wszystko było by w porządku gdyby kolejny wiersz w każdymz powyższych przypadków zaczynał się zawsze od 13:00 - było by to jak dla mnie w miarę logiczne ale tak nie jest.

    Jeżeli z kolei "kolejny wiersz" zaczyna się od czasu wcześniejszego zakończenia lunch'u to następuje "dubel czasu" - tak ma być, czy jest to błąd?

    Porównaj wyniki z przykładów - kto ma błąd

    mój:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    łączny czas rate to 10 godzin i pół godziny przerwa.


    twój przykład:

    Kod: text
    Zaloguj się, aby zobaczyć kod


    Łączne rate to 10:30 --- w sumie czas przerwy (lunch) przynajmniej w Polsce jest wliczony w czas pracy więc może to jest poprawne.


    Jeżeli twoja jest prawda to jeszcze raz bardzo powoli wytłumacz, bo nie rozumiem.
    Nie chodzi mi o czepianie się tylko o zrozumienie zasad by stworzyć prawidłową formułę.,

    I jeszcze jedna rzecz dotycząca lunch'u (choć nie tylko): rozliczeniami jest 15 minut czy każda minuta? Chodzi mi o czas dla opcji:
    lunch 12:00 - 12:35
    lunch 12:00 - 12:55
    ...
    lunch 12:00- 12:25

    0
  • #15 26 Sty 2016 22:48
    majas76
    Poziom 9  

    Witaj,

    Po pierwsze, przepraszam za pomylke z zapisem czasowym

    zacznijmy jeszcze raz ;)

    8:00 - 18:30 to 9.5 godzin roboczych (1 godz. lunchu nie wliczam do czasu pracy - bezplatna przerwa)
    przedstawiam ponizej wszystkie mozliwe przypadki

    cala przerwa na lunch

    Kod: text
    Zaloguj się, aby zobaczyć kod

    3/4 przerwy na lunch
    Kod: text
    Zaloguj się, aby zobaczyć kod

    1/2 przerwy na lunch
    Kod: text
    Zaloguj się, aby zobaczyć kod

    1/4 przerwy na lunch
    Kod: text
    Zaloguj się, aby zobaczyć kod

    bez przerwy na lunch
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Mam nadzieje ze kwestie czasu mamy wyjasnione ;)

    Pozdrawiam.
    Maciek

    0
  • #16 27 Sty 2016 23:03
    marek003
    Poziom 40  

    Powiem że wszystko super do policzenia gdyby nie ten Lunch :) Tu się zaczęła zabawa. :) "Se wymyśliłeś" :)

    W załączeniu przykład. Dla pewności sprawdź każdy przypadek. Funkcja zmienia działanie wyłącznie na słowo "Lunch" (i nie przewiduje dwóch lunch'ów)

    Chciałem by to było w miarę uniwersalne w związku z tym potrzebny jest w tabeli wiersz nagłówka - tylko po to aby było łatwiej kopiować komórki w dół.
    (w innym przypadku inna funkcja była by w komórkach dla pierwszego wiersza danych a inna dla pozostałych wierszy)

    Funkcje z żółtych komórek można kopiować w dół - ale tylko w danej tabeli (W innej będzie inaczej - patrz druga tabela).

    Jeżeli będziesz to wprowadzać we własnym arkuszu zwróć uwagę na znak dolara $ przy adresie komórki. W tym przypadku bardzo ważne jeżeli chodzi o kopiowanie funkcji.

    Jeżeli coś nie rozumiesz pisz - spróbuje wytłumaczyć.


    dodane po czasie
    --------------------------------------
    Zauważyłem błąd (jak wiersze przed lunchem ni przekroczą czas 8 godzin) ale to może jutro poprawię bo dziś ju mam dość.

    0
  • #17 28 Sty 2016 12:18
    majas76
    Poziom 9  

    dzieki,
    przekopiuje formuly do mojego arkusza i dam Ci zac co z tego wyszlo. ;)

    0
  • #18 29 Sty 2016 17:15
    majas76
    Poziom 9  

    niestety Twoj plik nie dziala poprawnie. Probowalem kilka roznych scenariuszy ale niestety obliczenia sa zle.

    plik w zalaczeniu

    Przepraszam ze zawracam glowe, ale czy moglbys zerknac jeszcze raz na te obliczenia.

    Pozdrawiam
    Maciek

    0
  • Pomocny post
    #19 30 Sty 2016 22:55
    marek003
    Poziom 40  

    Wiem. pisałem o tym jednak nie mam na razie za dużo czasu by przysiąść a wbrew pozorom nie jest to takie proste.
    Choć może trudność wynika z opcji podwójnego liczenia czasu.

    Jeszcze jedno pytanie jakie będzie rate poniżej bo właściwie przez to rozwala mi co chwilę koncepcję (podwójnie liczony czas w przerwie i kolejnym wierszu):


    Kod: text
    Zaloguj się, aby zobaczyć kod


    ---
    A może w związku z powyższym przykładem zaproponuje ci coś takiego jak w załączniku. Jest to logiczniejsze
    Za lunch nie ma żadnego czasu pracy (rate0 = "-" i rate1 = "-") - ale ponieważ ktoś zaczął pracować wcześniej niż po lunchu w kolejnej godzinie jest to wliczone bo przecież zaczał wcześniej - a przy okazji bardzo to upraszcza formułę.

    Zauważ że czas należący "niby" do przerwy zostaje wliczony do kolejnej pracy.

    0
  • #20 03 Lut 2016 12:44
    majas76
    Poziom 9  

    Witaj, Dziekuje Ci bardzo za Twoja prace.
    Niestety nie moge zastosowc Twojego rozwiazania. Przerwa na lunch jest koniecznym warunkiem tych obliczen.

    Jeszcze raz WIELKIE DZIEKI

    Pozdrawiam
    Maciek

    PS
    Odpowiedz na Twoje pytanie

    Spoiler:
    Praca w biurze 08:00 - 12:00 Rate0: 4:00 Rate1: 0:00
    lunch 12:00 - 12:15 Rate0: 0:45 Rate1: 0:00
    kolejna praca 12:15 - 12:30 Rate0: 0:15 Rate1: 0:00

    0
  • #21 03 Lut 2016 13:38
    marek003
    Poziom 40  

    Nie rezygnuj tak szybko :)
    Wszystko da się obliczyć tylko trzeba znać wszystkie przypadki. W załączeniu przykład który powinien już prawidłowo działać oprócz tego przypadku który pokazałem wyżej.
    Nie odpowiedziałeś jak ma reagować formuła więc ... ale w innych "naturalnych" przypadkach powinno być ok.

    Dodane po chwili
    ------------------------------------
    Nie wiem czego nie zauważyłem twojego PS.

    Ale taką odpowiedzią "rozwalasz" wcześniejsze przykłady. To jest nielogiczne.
    Wcześniej obcinałeś ten czas lunchu z godziny następnej a teraz stworzyłeś "nadgodziny".
    Tak ma być? Bo to zaburza wcześniejsze zasady lub wprowadza dodatkową.
    W załączeniu jeszcze nie jest uwzględniona taka opcja bo nie znam zasady.

    0
  • #22 03 Lut 2016 15:41
    majas76
    Poziom 9  

    Dlaczego nie logiczne?
    Postaram sie to logicznie wyjasnic.

    Zaczynam prace o godz 8:00 i jestem w biurze do 12:00
    od 8:00 do 12:00 - 4 godziny Rate0

    Kod: text
    Zaloguj się, aby zobaczyć kod


    nastepnie przerwa na lunch - przerwa na lunch jest bezplatna i powinna trwac 1h, poniewaz jednak jestem bardzo "zajety" i moja przerwa trwa tylko 15 min, to 45min z mojej przerwy wlicza sie do moich godzin pracy jako 0:45 Rate0
    Kod: text
    Zaloguj się, aby zobaczyć kod


    w tym momencie mam przepracowane 4:45 Rate0

    po lunchu wracam do biura i pracuje kolejnych 15 minut do 12:30 - 0:15 Rate0
    Kod: text
    Zaloguj się, aby zobaczyć kod


    moje godziny pracy wynosza teraz 5:00 Rate0

    powiedzmy, ze teraz zaczynam nastepny projekt i pracuje nad nim az do 18:30.
    wiec czas od 12:30 do 18:30 to 6 godzin roboczych ale, poniewaz mam juz przepracowane 5 godzin, to do Rate0 wliczam roznice pomiedzy 8h - 5h, ktora wynosi 3:00 Rate0 a pozostale 3h to juz moje nadgodziny czyli 3:00 Rate1
    Kod: text
    Zaloguj się, aby zobaczyć kod


    powiedzmy rowniez, ze o godzinie 18:30 zadzwonil klient i moze mu udzielic jakiejs pomocy techncznej. Bede to wykonywal przez kolejne 30 minut wiec poniewaz jest to kolejna praca to i moje 8h roboczych zostalo juz dawno przekroczone to rate0 wyniesie 0:00 a Rate1 0:30
    Kod: text
    Zaloguj się, aby zobaczyć kod


    Reasumujac wszystko:
    Kod: text
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #23 03 Lut 2016 21:05
    marek003
    Poziom 40  

    Ty się dziwisz że nielogiczne ???

    No to popatrz teraz jak to wytłumaczyłeś wcześniej z "kropką" w postaci:
    Mam nadzieje ze kwestie czasu mamy wyjasnione ;)

    majas76 napisał:
    1/4 przerwy na lunch

    Praca w biurze 08:00 - 12:00 Rate0: 4:00 Rate1: 0:00
    lunch _______12:00 - 12:15 Rate0: 0:45 Rate1: 0:00
    kolejna praca 12:15 - 18:30 Rate0: 3:15 Rate1: 2:15



    A jak to tłumaczysz teraz:

    majas76 napisał:
    Reasumujac wszystko:

    Praca w biurze 08:00 - 12:00 Rate0: 4:00 Rate1: 0:00
    lunch _______12:00 - 12:15 Rate0: 0:45 Rate1: 0:00
    kolejna praca 12:15 - 12:30 Rate0: 0:15 Rate1: 0:00
    kolejna praca 12:30 - 18:30 Rate0: 3:00 Rate1: 3:00
    ...



    Widzisz rozbieżność tłumaczeń (popatrz na ostatnie Rate1)?
    Nie da się zbudować formuły jeżeli co chwila zmienia się założenie główne.
    Już dawno byśmy skończyli :)

    Jeżeli to co przedstawiłeś ostatnio ma być docelowe to takie określenie jak poniżej powinno być ok.
    Czas zaoszczędzony na przerwie jest zawsze "inplus" do czasu pracy a w szczególnych przypadkach do czasu jako takiego - taka "nadczasowość" :).

    Sprawdź te wyliczenia, mam nadzieje że będzie już ok.:

    0
  • #24 03 Lut 2016 23:13
    majas76
    Poziom 9  

    SUPER,
    Wlasnie o to chodzilo. Jestes WIELKI. Dzieki :)

    Przepraszam za moje bledy w tlumaczeniu.

    PS
    czy mozemy dodac jeszcze jeden warunek JEZEL do obliczen?
    pracodawca zaplaci za powrot do domu z pracy gdy czas podrozy przekroczy 1h.
    Przyklad:
    powrot z pracy do domu trwal 1.5h - 19:00 do 20:30, pracodawca zaplaci za czas powyzej 1h czyli 30min w tym przypadku

    Kod: text
    Zaloguj się, aby zobaczyć kod

    0
  • Pomocny post
    #25 04 Lut 2016 23:18
    marek003
    Poziom 40  

    Wcześniejsze słowo klucz to "Lunch" po tym funkcja poznaje że to przerwa.
    Powrót do domu ma poznawać po całym zapisie "Droga do domu"? bo dla excela czym innym będzie powyższy zapis od zapisu: "Powrót do domu". Czy może zawsze ostatnia "linia" (wiersz) będzie powrotem?
    Poniżej rozwiązanie dla słowa "Powrót".
    Powinno grać ale sprawdź wszelkie warianty.

    0
  • #26 05 Lut 2016 11:16
    majas76
    Poziom 9  

    Dziekuje, szystko super sie obicza.

    Excel - obliczanie godzin pracy + nadgodziny + przerwa

    0