Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

[Excel] - Połączone funkcje Dni.robocze i Licz.jeżeli

Glief 25 Apr 2014 22:06 4470 8
  • #1
    Glief
    Level 10  
    Witam serdecznie.

    Mam problem z Excelem (2007/2010). Mianowicie chodzi mi o stworzenie funkcji, która liczy dni robocze pomiędzy dwoma datami, ale jeśli w kolumnie X jest np. "Faktura zaksięgowana po czasie", to żeby funkcja brała już daty z dwóch innych komórek.

    Czy to ma mniej więcej wyglądać tak? Jaki znać zastosować pomiędzy tymi funkcjami?

    =NETWORKDAYS(B1,C1,1), LICZ.JEŻELI(F1:G1,"Faktura zaksięgowana po czasie")

    Z góry dziękuję za odpowiedź.
  • Helpful post
    #2
    Maciej Gonet
    VBA, Excel specialist
    Nie jest to całkiem jasne, ale powiedzmy tak:
    Code: text
    Log in, to see the code

    Jeżeli w komórce X1 jest podany tekst, funkcja NETWORKDAYS bierze daty od F1 do G1, w przeciwnym razie daty od B1 do C1.
    Trzecim argumentem funkcji NETWORKDAYS może być lista świąt jako zakres, liczba seryjna daty lub stała tablicowa. Wpisanie w tym miejscu liczby 1 nie ma wielkiego sensu.
  • #3
    Glief
    Level 10  
    Dziękuję za odpowiedź.

    Właśnie wczoraj wypróbowałem bardzo podobnego rozwiązania i chyba dobrze zczytuje.

    Code: text
    Log in, to see the code


    Z tym, że myślałem, że ta jedynka oznacza liczbę sobót i niedziel i mam właśnie z tym problem. Jak dodać jeszcze taki argument, który wyeliminuje soboty, niedziele + dni wolne od pracy jak np. poniedziałek wielkanocny?
  • Helpful post
    #4
    Maciej Gonet
    VBA, Excel specialist
    Dzień dobry,
    Używając funkcji NETWORKDAYS należy pamiętać, że funkcja po pierwsze uwzględnia w obliczeniach zarówno pierwszy, jak i ostatni zadeklarowany dzień - to jest ważne gdy daty mamy w tabeli i okres jest podzielony na podokresy. Po drugie - funkcja standardowo pomija soboty i niedziele. Po trzecie - jeśli trzeba pominąć dodatkowo dni świąteczne należy sporządzić ich wykaz i podać go jako trzeci argument funkcji. Tym trzecim argumentem może być: data zapisana wprost (jako tekst) lub numer seryjny dnia albo odwołanie do komórki lub zakresu komórek zawierających takie daty lub numery seryjne - zakres może być w wierszu lub kolumnie, lub w formie prostokąta; może obejmować puste komórki i powtórzenia dat, ale musi być ciągły. Zamiast zakresu można użyć stałej tablicowej. Można też nadać nazwę temu zakresowi lub stałej tablicowej i w formule używać tej nazwy. Zakres świąt może być zrobiony "na zapas" to znaczy obejmować większy przedział czasowy niż potrzeba w danym momencie, nie trzeba się też przejmować, gdy święto wypada w sobotę lub niedzielę - zostanie odliczone tylko raz. Mam nadzieję, że dostatecznie szczegółowo wyjaśniłem.
  • #5
    Glief
    Level 10  
    Witam.

    Myślę, że rozumiem, ale niemniej jednak nie bardzo orientuję się w jakim formacie umieścić datę świąteczną (21/04/2014) żeby jej nie wliczyło. Choi mi tylko o to, żeby funkcja nie brała tej daty z innej komórki tylko widziała ją jako wyjątek.

    [Excel] - Połączone funkcje Dni.robocze i Licz.jeżeli

    Co musiałbym wpisać konkretnie zamiast tej jedynki "1" żeby nie wzięło pod uwagę tego dnia? A co w przypadku dwóch dni świątecznych w danych zakresach dat?

    Dziękuję.
  • Helpful post
    #6
    Maciej Gonet
    VBA, Excel specialist
    Dzień dobry,
    Lepiej gdyby Pan załączył plik, a nie obrazek.
    Ma Pan dość nietypową konfigurację: polskiego Excela z amerykańskimi ustawieniami regionalnymi.
    Daty muszą być w formacie akceptowanym w Pana konfiguracji, a więc w tym przypadku miesiąc/dzień/rok, czyli jeśli chce Pan odliczyć drugi dzień Świąt, więc musi być albo "4/21/2014", albo odwołanie do komórki zawierającej tę datę w postaci adresu lub nazwy. Jeśli byłyby dwie lub więcej dat, to trzeba z nich zrobić stałą tablicową z separatorami akceptowanymi w Pana konfiguracji - zapewne są to przecinek i średnik. Czyli np. {"4/21/2014","5/1/2014"}. Można też te daty wpisać (bez cudzysłowów) do dwóch sąsiadujących komórek np. I1:J1 i wtedy w wywołaniu funkcji wpisać $I$1:$J$1. Adresy absolutne, żeby można było kopiować. Można też nadać nazwę np. holidays zakresowi komórek lub stałej tablicowej i używać tej nazwy. Godne polecenia szczególnie gdy spis świąt jest w innym arkuszu.
    Pozdrowienia.
  • #8
    Maciej Gonet
    VBA, Excel specialist
    Ten komunikat o niespójnej formule nie oznacza błędu formuły, a tylko informację, że w sąsiadujących komórkach formuły różnią się (bo tam są jedynki). Najważniejsze czy wynik jest poprawny. Ja mam w swoim komputerze inny format dat, więc u mnie to nie działa, bo o ile daty dopasowują się automatycznie, to teksty oznaczające daty już nie.
  • #9
    Glief
    Level 10  
    Dziękuję bardzo, wychodzi więc na to, że problem rozwiązany :)