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

Excel 2013 - Ewidencja czasu pracy na rok 2014

16 Wrz 2014 00:18 2199 14
  • Poziom 9  
    Witam Otóż mam pewien problem. Mam dosyć skomplikowaną tabelkę która ma pokazywać ile godzin dana osoba ma przepracowanych a ile np na chorobowym, wszystko ładnie pięknie ale mam posiadam różne godziny pracy
    Pon: 8.00-17.00
    Wt,śr,czw: 7.30:15.30
    Pt: 7.30-14.30

    Gdybym napisał że np że od poniedziałku do czwartku osoba była obecna zaś w piątek była na delegacji to piszę w tym dniu literkę D i tu mój problem jak zrobić by wpisanie literki D poniedziałek zwracał wartość 9h, w wt,śr,czw: 8h, zaś w Pt 7h? Proszę o pomoc - Dodam załącznik.
  • Poziom 22  
    Pierwsza sprawa musisz gdzieś zapisywać jaka data to który dzień tygodnia -> funkcja DZIEŃ.TYG(komórka z zapisaną datą; typ), gdzie typ = 1 - Liczby od 1 (niedziela) do 7 (sobota), 2- Liczby od 1 (poniedziałek) do 7 (niedziela), 3 - Liczby od 0 (poniedziałek) do 6 (niedziela).
    Później robisz formułę, wykorzystując funkcję JEŻELI. Przykład dodałem w twoim pliku pod tabelą.
  • Poziom 9  
    Próbowałem to zrobić ale nadal mi nie wychodzi.. Nie wiem jak mam to zrobić z całym rokiem... Mógłbyś pokazałbyś przykład na mojej tabelce? bardzo bym prosił gdyż ułatwi to mi zadanie w pracy..
  • Moderator Programowanie
    Zwykle w takich przypadkach stosuje się tabelkę pomocniczą (załącznik), podobnie jak zrobił to kolega janeczekkk.
    Z tym, że zamiast JEŻELI, użyłem WYBIERZ. Plusem jest to, że nie gra roli czy wpiszesz liczbę przepracowanych godzin, czy cokolwiek (Np 'D') poza argumentami funkcji LUB.
    No, ale co, jeśli ktoś w piątek pracuje 8, zamiast 7 godzin (11 kwietnia)? Wpisywać zera dla normy i Np 1 dla nadgodzin i sumować obie strony (miałbyś po lewej nadgodziny)? Możliwości są...

    W ostateczności możesz podobną tabelkę wykorzystać do "badania" wystąpienia "D" i po prostu dodać.

    PS. Formuła w BA11 "kopiowalna" we wszystkie strony. Rok dla daty w A3
  • Poziom 9  
    No już jestem bliżej celu bo głównie chodzi mi by sprawdzało poszczególne znaki takie jak W, czy np D i te znaki zamieniało na cyfry a następnie sumowało. Jak widać mam tam odpowiednią rubrykę URLOP WYPOCZYNKOWY wiersz niżej (W) i suma W w godzinach. Głównie o to mi chodzi by właśnie z całego miesiąca liczyło mi ile jest W w godzinach uwzględniając przy tym dni tygodnia.

    Dodano po 29 [minuty]:

    aktualizacja:
    dodam jeszcze że tylko ten symbol potrzebuje zamienić na liczbę w danym dniu-bo z liczbami to różnie jest przykład - ktoś w poniedziałek będzie chciał się zwolnić tam 3h wcześniej to korzystając z Twojej Tabelki i tak mi wpisze liczbę 9 mimo że był 6h bo jest to stała danej danej komórki i ona się nie zmieni niezależnie co by było wpisane, natomiast wpisując np W czyli urlop to nie ma go cały dzień i ta stała może być w Twoim przykładzie. Da radę to wyodrębnić? btw. nadgodzin nie ma - to praca w urzędzie miasta i gminy. Kurcze tak bym chciał ułatwić sobie liczenie lecz nie potrafię posługiwać się tymi warunkami... Czarna magia.
  • Pomocny post
    Moderator Programowanie
    Nie jestem pewien, czy dobrze zrozumiałem. Chodzi o to, o czym pisałem wcześniej? Na lewo godziny, na prawo W, D, () a po środku suma+suma?
  • Moderator Programowanie
    Test logiczny funkcji JEŻELI, to funkcja LUB. Po prostu dopisuj co tam potrzebujesz jako kolejne argumenty. Np:

    Code:
    LUB(B10="D";B10="W")
    
    LUB(B10="D";B10="W";B10="OP")
  • Poziom 9  
    Rozumiem, ale muszę tworzyć chyba osobną tabelkę taką jak ty stworzyłeś by osobno zliczyć wynik z W. OP itd prawda?
  • Moderator Programowanie
    Jak uważasz, ale wg mnie nie gra roli ile godzin wynosi dniówka, jeśli jestem na urlopie/opiece/delegacji. Najważniejsze, żeby było prawidłowo wyliczone i... zapłacone ;)

    Ilość dni zliczasz przecież "po środku". Dieta w delegacji należy się do "sztuki" dnia, Urlop liczony jest również w dniach, etc. W jakim celu liczyć godziny dla każdego rodzaju absencji osobno?

    Przykład:
    1. poniedziałek, wtorek, piątek jestem w pracy; środa urlop; czwartek delegacja.
    2. poniedziałek-środa w pracy, czwartek urlop, piątek delegacja.

    W obu przypadkach mam tę samą ilość godzin do wypłaty, 1x urlop, 1x delegacja. Jeśli trzeba odliczyć jakąś kwotę za Np kawę wypitą w pracy wg normy 1 litr/4 godz, zużycie papieru toaletowego 1m/ 6 godz. to wyliczysz to z godzin "po lewej" :)
  • Poziom 9  
    Właśnie chodzi o to że wolałbym by było to osobno liczone w tej tabelce, możesz zerknąć dlaczego źle mi zlicza gdy zrobię osobną tabelkę dla OP czy Nd?
  • Poziom 9  
    =JEŻELI(LUB(B11="D";B11="W");WYBIERZ(DZIEŃ.TYG(DATA($A$3;WIERSZ()-9;NR.KOLUMNY()-52);2);9;8;8;8;7;0;0);0)

    Już mam tego dosyć.. Wpisuje zamiast W np PR i już mi się nie zgadza..
  • Moderator Programowanie
    Formuła tylko na oko wygląda skomplikowanie. Da się zauważyć, że jej nie rozumiesz.

    Wybieramy ilość godzin, podstawiając datę do funkcji DZIEŃ.TYG.

    Żeby uzyskać 1-01-2014 składamy datę: Rok z A3, miesiąc - podstawiając Nr wiersza, dzień - Nr kolumny.

    Sprawdźmy:
    =DATA(2014;1;1) w formatowaniu "ddd" zwraca "Śr"
    =DZIEŃ.TYG(DATA(2014;1;1);2) zwraca "3" -czyli zgadza się.
    Formułę wpisujemy w DM10 =NR.WIERSZA() w tej komórce to 10, =NR.KLOLUMNY() to 117 -podstawiamy tak, aby uzyskać datę 1-01-2014:
    =DZIEŃ.TYG(DATA($A$3;NR.WIERSZA()-9;NR.KOLUMNY()-116);2) zwraca 3 (środa, 1-go stycznia 2014), więc jesteśmy w domu. Teraz tylko podstawić jako pierwszy argument funkcji WYBIERZ i ustalić warunki dla JEŻELI /dla pojedynczego symbolu zbędne(nadmiarowe) jest LUB.
    Po skopiowaniu w prawo, zwiększy się Nr kolumny (dzień), po skopiowaniu w dół Nr wiersza (miesiąc). Funkcja WYBIERZ (zerknij do pomocy) będzie działać prawidłowo. Poniał?

    Oczywiście mógłbyś liczby podstawiać ręcznie, ale to karkołomne zadanie. Poza tym w przyszłym roku wystarczy zmienić rok w A3 i masz gotowy formularz...
  • Poziom 9  
    Jak wrócę do domu to sprawdzę to co napisałeś, dzisiaj pojawił się nowy problem.. Okazuje się że jednak Są sytuacje gdzie np. ktoś wychodzi w trakcie pracy na godzinkę lub dwie dajmy na to od 13:00 do 15:00 więc druga sprawa to taka z nadgodzinami, jak zrobić by osobno zliczało mi osobno czas pracy zgodnie z normą a osobno nadgodziny? Masz jakiś pomysł?
    btw. Na wypłatę Ci chyba muszę flache postawić. ;p

    przesyłam pliczek już po generalnej edycji... dopiero w trakcie przepisywania listy obecności wyszły komplikacje.
  • Moderator Programowanie
    Skoro zrobiłeś już tyle tabelek pomocniczych, jedna więcej nie zrobi różnicy. Musisz tylko zdecydować czy liczysz w formacie godzinnym, czy liczbowym -WYBIERZ zwraca liczbę (liczbę dzielisz przez 24, czas mnożysz). Być może należałoby jeszcze bardziej skomplikować formułę i porównywać, czy liczba w komórce (czas*24) jest większa od zwróconej przez WYBIERZ, ale to zależy jaki stosujesz system. Jeśli odliczasz wyjścia osobiste z tabelki poniżej, warunek jest zbędny.

    W żaden sposób nie mogę pojąć zapisu z 17-Lutego (tabelki poniżej). Nigdy nie pracowałem w biurze ;)
    Jeśli posiedzę dłużej, a w międzyczasie wybędę (wyjście osobiste) - to zostaną naliczone nadgodziny? Skoro tak, to poproszę wyjście osobiste od 7:00-11:00, przyjdę na 11:00, posiedzę do 19:00 i mam 4 nadgodziny! Ustawowo 2 50% oraz 2 100%.