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 - Excel karta pracy powiązana z grafikiem

carolin30 27 Maj 2013 07:35 5805 14
  • #1 27 Maj 2013 07:35
    carolin30
    Poziom 7  

    Witam

    mam ogromną prośbę, muszę utworzyć grafik pracy pracownika ochrony (co już udało mi się zrobić) oraz powiązaną z nim kartę pracy i tu pojawiają się dwa problemy ponieważ kiedy w karcie pracy stosuję formułę=JEŻELI((Arkusz1!C7-Arkusz1!C8)<0;Arkusz1!C8-Arkusz1!C7;24-(Arkusz1!C7-Arkusz1!C8)) zliczającą mi ilość przepracowanych godzin w danym dniu w przypadku gdy dany pracownik akurat tego dnia nie pracował zamiast 0 pojawia mi się 24 godziny. Jak mogę zmodyfikować tą formułę by wynik był prawidłowy?
    Drugie pytanie dotyczy następującej sytuacji: na karcie pracy mam kolumnę "godziny nocne" w której wpisuję zawsze 8 godzin w przypadku gdy np. pracownik pracuje od 7 do 7 lub od 16 do 7 itp. czyli w godzinach nocnych. Czy istnieje taka możliwość by excel rozróżniał fakt występowania godzin nocnych i umieszczał te 8 w odpowiednim wierszu karty pracy? Pracownicy przebywają też na urlopach i tzw. chorobowym czy możliwe jest by excel rozróżniał i te opcje i umieszczał skrót z grafika w odpowiednim miejscu na karcie pracy?

    1 14
  • #2 27 Maj 2013 07:53
    adamas_nt
    Moderator Programowanie

    Wszystko jest możliwe. Zależy w jakim formacie wpisujesz dane i jakie formaty komórek wynikowych stosujesz. Już "na oko" można zauważyć błąd w formule, ale bez przykładowego pliku nic nie zdziałamy. Prosimy o załącznik.

    0
  • #4 27 Maj 2013 08:32
    adamas_nt
    Moderator Programowanie

    1. Dodajesz 24 w przypadku, gdy różnica równa zero (będzie również przy pustych komórkach). Rozwiązanie:
    =JEŻELI((Arkusz1!B7-Arkusz1!B8)<=0;Arkusz1!B8-Arkusz1!B7;24-(Arkusz1!B7-Arkusz1!B8))

    2a. Jak oznaczasz te z urlopem, L4 itp?
    2b. Zawsze wyjdzie 8:00 nocnych? Ściślej: nie będzie przypadku, że ktoś pracuje do 5:00 lub od 23:00 (rozumiem, że noc to 22:00 do 6:00)? Może wystarczy =JEŻELI(Arkusz1!B7-Arkusz1!B8<=0;"";8)

    0
  • #5 27 Maj 2013 08:53
    carolin30
    Poziom 7  

    Bardzo dziękuję, działa jest wreszcie O.
    Urlop oznaczam uw, chorobowe ch- symbol ma się pojawić w karcie pracy w kolumnie "skrót" i każdy dzień urlopu to 8 godzin i ta wartość ma się pojawić w kolumnie ilość godzin obok skrótu natomiast w przypadku chorobowego chodzi tylko o pojawienie się skrótu ponieważ jego ilość wyliczają kadry.

    Tak zawsze godzin nocnych będzie 8, jednak będą przypadki służby np. od 21 do 8 i w kolumnie ogółem ilość godzin będzie 11, w godzinach nocnych będzie 8, lub od 18 do 6, nie zawsze nocka jest w godzinach od 22 do 6 w sensie służby/zmiany wykonywanej przez pracownika jednak ta nocka(22 - 6) się w nich zawiera.

    0
  • #6 27 Maj 2013 09:10
    adamas_nt
    Moderator Programowanie

    Wystarczy więc, jeśli w G9 wpiszesz:
    =JEŻELI(ADR.POŚR("Arkusz1!"&ADRES(7;WIERSZ()-7))-ADR.POŚR("Arkusz1!"&ADRES(8;WIERSZ()-7))<=0;"";8)
    i skopiujesz/przeciągniesz w dół (nie trzeba będzie przepisywać).
    A w L9: =JEŻELI(K9="uw";8;"")

    Nie wiem czy nie trzeba dodać sum w B40: =SUMA(B9:B39)+SUMA(L9:L39)

    Dodano po chwili

    Zaraz, gdzie wpisujesz to "uw"?

    0
  • #7 27 Maj 2013 09:55
    carolin30
    Poziom 7  

    Czy w tą formułę którą mam wpisać do G9 mam wpisać jeszcze jakieś adresy komórek, ponieważ wpisując ją w G9 pojawia mi się tekst a nie wyliczenia.

    I druga sprawa kiedy wpiszę formułę którą mi Pan podał wylicza super godziny oraz pomija dni w których człowiek nie pracuje jednak kiedy w komórkę wpisane jest uw lub ch na karcie pracy pojawia się błąd, czy można to jakoś ominąć/ulepszyć?

    Dodano po 20 [minuty]:

    uw wpisywane jest w grafiku
    natomiast w karcie pracy wpisywane jest w kolumnie "oznaczenie rodzaju nieobecności" "skrót" i teraz gdy ręcznie wpiszę tam uw to w kolumnie obok dzięki Pana formule pojawia się 8, tak jak powinno być.

    0
  • #8 27 Maj 2013 10:07
    adamas_nt
    Moderator Programowanie

    Wynika to z tego, że masz ustawiony format tekstowy komórek. W załączniku "przeformatowałem". Zmodyfikowałem również formuły tak, żeby były "kopiowalne". Zasada jest strasznie prosta, mimo że wygląda skomplikowanie:
    ADR.POŚR("Arkusz1!"&ADRES(7;WIERSZ()-7))
    to nic innego niż formuła =Arkusz1!B7 zapisana w 9 wierszu (Np B9, gdzie wiersz()-7 to 2 /druga kolumna/ w argumencie funkcji ADRES)
    Skopiowana do 10 wiersza przyjmie postać Arkusz1!C7 itd...

    -1
  • #9 27 Maj 2013 10:30
    carolin30
    Poziom 7  

    Jest Pan genialny, ja radzę sobie w prostych sprawach w excelu jednak to już dla mnie czarna magia a chciałam sobie ułatwić pracę bo liczenie tego na piechotę przy 200 pracownikach to koszmar i dzięki Panu się udało.
    Mam jeszcze jedno ostatnie pytanie ponieważ na obiektach potrafi być i 11 pracowników co mam zatem zmienić w formule by liczyła mi to samo dla kolejnych pracowników, próbowałam sama załóżmy że godziny pracy kolejnego pracownika podane są w komórkach o nr 9 i 10 =JEŻELI(CZY.LICZBA(ADR.POŚR("Arkusz1!"&ADRES(9;WIERSZ()-9))*1);JEŻELI(ADR.POŚR("Arkusz1!"&ADRES(9;WIERSZ()-9))-ADR.POŚR("Arkusz1!"&ADRES(10;WIERSZ()-9))<=0;ADR.POŚR("Arkusz1!"&ADRES(10;WIERSZ()-9))-ADR.POŚR("Arkusz1!"&ADRES(9;WIERSZ()-9));24-(ADR.POŚR("Arkusz1!"&ADRES(9;WIERSZ()-9))-ADR.POŚR("Arkusz1!"&ADRES(10;WIERSZ()-9))));0) ale coś tu nie gra, pewnie namieszałam.

    0
  • #10 27 Maj 2013 10:43
    adamas_nt
    Moderator Programowanie

    Funkcja ADRES ma tylko 2 argumenty: wiersz, kolumna
    Kolumna się nie zmienia, tylko wiersz. Dodajesz więc dwa do argumentu wiersz dla karty następnego pracownika /musisz zrobić porządek ze scaleniami ;)

    Trochę uwagi trzeba poświecić przy modyfikowaniu, ale i tak szybciej tak, niż przepisywanie każdej z osobna.

    P.S. Hmm. Napisanie postu zajęło mi więcej czasu niż wspomniana przeróbka :)

    0
  • #11 27 Maj 2013 10:50
    carolin30
    Poziom 7  

    Dziękuję bardzo!

    Tak to jest, kiedy jest się w czymś ekspertem, robi się to błyskawicznie a ja kombinowałam jak przysłowiowy koń pod górę i tak bym sobie jak Syzyf szła :D bez Pana pomocy.

    0
  • #13 27 Maj 2013 12:17
    carolin30
    Poziom 7  

    Bardzo dziękuję za to kolejne rozwiązanie, może faktycznie jest prostsze i jak zmienię 0 na 1 to robi się jakieś czary mary jednak bardziej podoba mi się rozwiązanie pierwsze. Mam nadzieję że uda mi się to pokopiować do kolejnych grafików i kart pracy.
    A zero z tego co wiem to liczba parzysta ale mogę się mylić, humanistka ze mnie :D

    Dodano po 39 [minuty]:

    Mam jednak jeszcze jedno pytanie a właściwie dwa mianowicie albo coś namieszałam albo nie uprzedziłam Pana że pracownicy czasem pracują 24 godziny i gdy zdarzy się taki przypadek formuła pokazuje wynik 0, czy można coś z tym zrobić?
    I jeszcze jedno gdy będę zaczynała kolejny grafik to czy w formułę w miejsce "Arkusz1!" mam wpisać nazwę kolejnego arkusza, którą stanowi nazwa obiektu?

    0
  • #14 27 Maj 2013 15:31
    adamas_nt
    Moderator Programowanie

    Jeśli nie ma dat - kłopot. Można wpisać 6:59:59 zamiast 7:00 lub dołożyć jeszcze jedno JEŻELI.
    Nazwa arkusza w formule dotyczy źródłowego. Znaczy tego, w którym jest grafik. Jeśli nazwa się nie zmienia, wszystko zostaje "po staremu".

    0
  • #15 29 Maj 2013 08:09
    carolin30
    Poziom 7  

    Dziękuję, mogę zastosować manewr z 6:59 i jest ok.
    I ostatni problem mam z sumowaniem godzin z całego miesiąca na grafiku. Czy ma Pan na to jakiś pomysł. Może mogę zsumować formuły wyliczające ilość godzin na karcie pracy?

    0