Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Solved] Excel - ewidencja czasu pracy nocna

jobdziak 27 Apr 2020 14:17 540 14
  • #1
    jobdziak
    Level 10  
    Witam,

    jakis czas temu wykonałem ewidencje czasu pracy, ale działającą w zakresie dziennym od godz. 7 do 23:00. Czas pracy każdego pracownika (start i zakończenie) kodowane jest w jednej komórce. Na podstawie tych danych grafik obrazuje rozkład stanowisk per godzina. I wszystko działało OK do momentu kiedy zaszła potrzeba rozliczać czas pracy pracy oraz rozkład stanowiskowy w godzinach nocnych. O ile zapis pracy w godz. 1 w nocy np 6 rano nie stanowi problemu, tak już zapis 20 wieczorem i 1 w nocy nie działa poprawnie (pomarańczowa wartość komórki) Nie potrafię przerobić formuł zawartych od kolumny BD i od CM by osiągnąć właściwy rodzaj kodowania stanowisk.. Czy ktoś może PROSZĘ zerknąć na plik i poprawić formułe dla "poniedziałku". Ja po 5h mam dosyć :( Zależy mi by nie przechodzić w kodowanie czasu pracy w dwóch osobnych kolumnach czyli start i zakończenie.
  • #2
    Zbych034
    Level 38  
    Nie prościej rozbić komórki na zaczęcie pracy i drugą jako zakończenie.
    Powinno to ułatwić liczenie. Oglądając ten skoroszyt nie mogę zrozumieć o co w nim chodzi.
  • #3
    jobdziak
    Level 10  
    ogólnie to zasada jest taka sama, tylko że zbita w jedną komórkę. Niestety napisać formułę na tryb 12h było łatwo, ale na 24h czegoś mi brakuje i formuły nie zliczają stanowisk w częsci arkusza od kolumny CM
  • #4
    Maciej Gonet
    VBA, Excel specialist
    Te formuły są nadmiernie skomplikowane i niejasne. Podstawowe pytanie: czy one mają "obsługiwać" tylko pełne godziny czy również godziny z minutami?
    Bo same formuły są napisane tak jakby miały uwzględniać również minuty, a w podanych przykładach minut nie było.
    Jeśli chodzi o komórkę BD4 i sąsiednie, to można formułę skrócić do:
    Code: text
    Log in, to see the code
    W tej postaci obsługuje minuty i przejście przez północ.
    Natomiast z formułą w CM4 jest ten kłopot, że jeśli ma ona obsługiwać minuty, to w obecnej formie jest błędna, więc nie wiem jak dokładnie miałaby ona działać. Jeśli nie ma obsługiwać minut, to pewne jej fragmenty są zbędne, bo zapewne miały w zamierzeniu zapewnić obsługę minut. A więc należy wyjaśnić jak dokładnie te formuły miały działać.
  • #5
    jobdziak
    Level 10  
    przesłane rozwiązanie do pierwszej częsci formuł IDEALNE za co dziękuje. Wczoraj jakoś obszedłem tą część ale moja formuła miała 4 wiersze, więc sugerowane rozwiązanie powaliło mnie z nóg "prostotą".
    Odnośnie drugiej części, chce wyłapać ile w danej godzinie jest aktywnych stanowisk pracy. Z tego miejsca dane przenoszę do tabeli pod grafikiem ale to akurat mało wazne. Wracając do pytania - chce zliczyć daną liczbę stanowisk w danej godzinie, bez konieczności zliczania minut. Pełne godziny będą zupełnie wystarczające. Za obecne działania WIELKIE dzięki i jeśli mogę jeszcze prosić o sugestie odnośnie zliczania stanowisk to będe mega szczęśliwy.
  • #6
    Maciej Gonet
    VBA, Excel specialist
    To, że minuty są ignorowane, to widać. Chodzi o to czy w danych mogą te minuty wystąpić (to znaczy czy w danych może wystąpić dwukropek), czy też na pewno ich nie będzie?
  • #7
    jobdziak
    Level 10  
    Jak większość społeczeństwa odpowiedziałbym im więcej tym lepiej pożytecznych założeń formuły, ale ponieważ szanuje czas osób które chce mi pomóc możemy na sztywno założyć że zapis będzie typu 10-20, 22-03, czyli bez kropek i kodowania minut. Takie zapisy będę stosował.

    Natomiast jeśli zmiana jest prosta i nie wymaga dużego wkładu czasu chętnie dla swojego własnego rozwoju chętnie zobaczę również formułę dla zapisu np 10:00-20:00 (ale nie jest to wymagana prośba a czysta ciekawość)

    Będę wdzięczny za dalsza pomoc.
  • #8
    jobdziak
    Level 10  
    Witam, czy mogę prosić o dalsze wsparcie i pomoc? Niestety mimo usilnych prób nie potrafię napisać tej formuły która obsłuży 24h godziny tryb pracy i zliczy stanowiska w każdej godzinie przy założeniu że beda tylko zapisy godzinowe np 20-03, 14-20 itd
  • Helpful post
    #9
    Maciej Gonet
    VBA, Excel specialist
    Gdyby to było takie proste :cry:
    Ten sposób zapisu jest dość niedogodny do rozwiązania klasycznymi formułami. Na razie doszedłem do takiego zapisu dla komórki CM4 i następnych w obrębie jednego dnia.
    Code: text
    Log in, to see the code
    Ten zapis obsługuje dzień bieżący (dopuszcza zapis z minutami, ale są ignorowane), natomiast trzeba jeszcze uwzględnić dzień następny. Bo jeśli mamy zapis typu:
    Code: text
    Log in, to see the code
    to on oznacza godziny 20-24 w dniu bieżącym oraz godziny 0-4 w dniu następnym.
    Pewien problem stwarza też bałagan w arkuszu przykładowym. Dni tygodnia są wpisywane ręcznie, co nie gwarantuje spójności z datami. Dane rozpoczynają się w komórce D4 i są opisane jako sobota. Formuły wykorzystujące te dane w komórkach BD4 i CM4 są już opisane jako pn. Dzień pierwszy kończy się w kolumnie DJ na godzinie 23, a następny dzień zaczyna się o godzinie 7 w kolumnie DK, jak mają być zatem uwidocznione te godziny nocne, przechodzące z poprzedniego dnia? Czy mają być uwzględnione hurtem, czy pominięte?
    Poza tym skąd wiadomo jakiego dnia (jakiej daty) dotyczą te kolumny od DK, tam jest wpisany tylko dzień tygodnia jako stała.
    Przesyłam stan obecny ku rozwadze. Poprawione formuły zaznaczone na zielono.
    Proszę uporządkować ten załącznik (można też skrócić, bo bardzo źle się pracuje na takim rozciągniętym arkuszu), podać reprezentatywne przykłady jak to ma być liczone z tymi godzinami nocnymi, szczególnie w sąsiednich dniach.
  • #10
    jobdziak
    Level 10  
    Cześć

    uwaga co do "porządku" w pliku jak najbardziej słuszna i w tle oczywiście już porządkowałem ten plik.
    Obecnie wygląda on jak w załączniku

    odpowiadając na pytanie na podstawie przykładu zapisanego w komórce F14 czyli 20-4. W sekcji AL14:BI14 zliczają się stanowiska ale tylko od godz. 20 do 24. Odpowiadając na pytanie, formuła powinna zawinąć się i w tym samym dniu wskazać jeszcze "1" w komórkach AL14:AO14 (czerowne pozycje).
    Proponowane formuły wprowadziłem w "zielonych komórkach" a także w sekcji X:AK.

    mam nadzieję że odpowiedziałem na wątpliwości.

    ps. w komórce f91 zapisałem jeszcze jedno pytanie - ogólnie "na około" poradziłem sobie z problemem ale otwarty jestem na sprawniejsze sugestie :)

    dziekuje
  • #11
    yogi009
    Level 43  
    Kolego Autorze, bez urazy, proponuję przy okazji poprawić nazwę programu, o który pytasz. To zadziwiające, jak często jest ona błędnie zapisywana (np. exel). A tutaj jeszcze ktoś uwierzy, że to od słowa excellent i będzie żył w błędzie :-)
  • Helpful post
    #12
    Maciej Gonet
    VBA, Excel specialist
    W tym nowym pliku zmieniło się oznaczenie godzin, było od 0 do 23, co rozumiałem tak, że 0 oznacza przedział od 0:00 do 0:59, 1 to przedział 1:00 do 1:59 itd. 23 to przedział od 23:00 do 23:59. I to wydawało mi się logiczne. Teraz jest numeracja od 1 do 24. Jak należy ją rozumieć? To ma wpływ na postać formuł.
    Jeśli będzie wskazany przedział czasu 20-4, to w których kolumnach mają być jedynki?
  • Helpful post
    #14
    Maciej Gonet
    VBA, Excel specialist
    Ta formuła wyszła dość ciężka, może ktoś wymyśli jakieś uproszczenie. Przez wprowadzenie nazw można by było skrócić zapis, ale czas przeliczania się nie zmieni.
    W bloku dotyczącym dnia 27.04.2020 formuły zawierają odwołania do danych z kolumny F. Te formuły można kopiować w ramach tego bloku. Gdyby chcieć utworzyć z tego nowy blok, należałoby jedną formułę edytować ręcznie, zmieniając wszystkie odwołania do kolumny F na odwołania do innej odpowiedniej kolumny z danymi. Potem formułę można dalej skopiować w ramach bloku. Ten sposób może nie jest najwygodniejszy w użyciu, ale jest odporny na zmianę struktury arkusza, to znaczy na przykład wstawianie lub usuwanie kolumn.
    W bloku dotyczącym dnia 28.04.2020 do formuł wstawiłem odwołanie wyliczone zdefiniowane pod nazwą dane. Ten wariant można kopiować między blokami, ale ma on dwie wady: formuły mogą działać nieco wolniej oraz nie można zmieniać struktury arkusza (dodawać, przesuwać ani usuwać kolumn). W razie zmiany struktury definicję nazwy dane należy odpowiednio zmodyfikować, bo inaczej odwołania będą do błędnych adresów.
    Proszę testować, całego arkusza nie analizowałem.
  • #15
    jobdziak
    Level 10  
    Panie Macieju

    serdecznie dziekuje za pomoc. Rozwiązanie spełnia moje oczekiwania i jestem BARDZO zadowolony i wdzięczny za poświęcony czas i propozycje rozwiązania!!!!

    Dodano po 59 [sekundy]:

    zadanie wykonane z pomocą P. Macieja Gonet