GRY-Online.pl --> Archiwum Forum

Excel, soboty, networkdays i licz.warunki PROBLEM

18.01.2008
17:12
smile
[1]

Luremaster [ Pierwszy Sekretarz ]

Excel, soboty, networkdays i licz.warunki PROBLEM


Wkleje tutaj moje pytanie z innego forum:

Chcialbym otrzymac okres dni miedzy dwoma datami z wylaczeniem swiat. Jak wiadomo do tego sluzy funkcja NETWORKDAYS. Niestety stosujac ta funkcje pomija sie soboty a ja chcialbym je uwzglednic w obliczeniach...
Probowalem roznych sposobow, z ktorych najbardziej obiecujacy wydawalo sie zastosowanie dodatkowo funkcji LICZ.WARUNKI. dzieki ktorym moglbym policzyc ilosc sobot w danym przedziale dat i dodac je po prostu do ostatecznego wyniku...
Tu jednak pojawia sie problem:
Myslalem ze jezeli zrobie cos takiego otrzymam liczbe sobot miedzy dwoma datami:
LICZ.WARUNKI(F30:F60;ORAZ(F30:F60>=H32;F30:F60<=H33))

F30:F60 - wszystkie soboty w 2008
H32 - data poczatkowa
H33 - data koncowa

Niestety cokolwiek bym robil wynik zawsze jest rowny 0.. ://
Prosze o pomoc gdzie popelniam blad...

18.01.2008
17:31
[2]

albz74 [ Legend ]

Warunek jest źle skonstruowany. Nie widzę bez zastanowienia się dłużej niż minutę :P możliwości zrobienia tego jednym ruchem ręki, ale można się uciec do pewnego tricku:

- W jednej kolumnie zbudować listę wszystkich dni między dwoma datami - wypełniając serią.
- obok dać funkcję weekday, która zwróci numer dnia w tygodniu - od 1 do 7 bodajże
- zbudować formułę w oparciu o funkcję licz.warunki , która policzy ile jest sobót

Można sobie zrobić jedną bardzo długą listę dat (we wszystkich wierszach) i zastosować odpowiednią funkcję, tak żeby licz.warunki miało obszar, w którym liczy (pomiędzy dwoma datami wpisywanymi do osobnych 2 komórek) soboty

18.01.2008
17:43
[3]

Luremaster [ Pierwszy Sekretarz ]

ale dlaczego ten warunek jest zly? Matematycznie zbior z nalezy do zbioru <x,y> znaczy tyle ze z>=x i z<=y. W teorii to wyglada logicznie szkoda tylko ze nie dziala :D Z tego co rozumiem LICZ.WARUNKI powinien zliczac kazdy element z kolumny 'soboty 2008' spelniajacy warunek z>=x i z<=y ale tego nie robi :(( WHY?!

18.01.2008
17:52
[4]

albz74 [ Legend ]

Nie działa dlatego że:

W jaki sposób zaznaczony obszar ma być mniejszy lub większy od daty ? Pojedyncza data może być sprawdzana, a obszar w żaden sposób. W Excelu masz obiekty różnego typu. Obszar dat między F30 i F60 to tylko zwykły zbiór liczb. Musisz z tego zbioru wskazać jedną i porównać.

Możesz skorzystać z bardzo fajnej właściwości kalendarza polegającej na tym, że sobota jest raz na 7 dni :) i o ile się nie mylę, jak różnicę między dwoma datami podzielisz na 7 to część całkowita to będzie liczba sobót :)

18.01.2008
17:57
[5]

Meganelle [ Konsul ]

Luremaster ---> Pamiętaj o tym, że w porównaniu Excel traktuje daty jak liczby, dlatego komórki z datą początkową i końcową muszą być sformatowane jako liczby, np. 2007-09-10 jako 39335. Możesz stworzyć dodatkową komórkę do porównań, sformatują ją jako liczbę a formuła będzie odpowiednio =H32 i =H33

18.01.2008
19:03
[6]

Luremaster [ Pierwszy Sekretarz ]

albz74: Myslalem ze zaznaczenie danego obszaru powoduje ze kazdej komorce/dacie robiony jest po kolei test na prawdziwosc twierdzenia i te komorki ktore test przechodza pomyslnie sa zliczane. Tak wyglada to przeciez w przykladzie w Pomocy Excela.
Sposob z dzieleniem przez 7 niestety nie jest zbyt dokladny :)

Meganelle: daty sa odpowiednio sformatowane i jesli formatowanie zmieniam na liczbowe powstaja liczby w rodzaju np 39335. Po zmianie formatowania sytuacja niestety sie nie zmienia :(

18.01.2008
20:06
[7]

albz74 [ Legend ]

Excel niestety tak nie działa. Obszar to obszar. Możesz na nim zrobić jakąś operację- zsumować na przykład, policzyć ilość komórek. Mógłbyś napisać funkcję VBA, która zadziała tak jak chcesz ale trochę to zabawy.

Formatowanie nic nie da, bo Excel przechowuje daty jako liczby.

Metoda przez 7 chyba jest najłatwiejsza do zastosowania - po drobnej modyfikacji.

18.01.2008
20:24
[8]

iNfiNity! [ NSX ]

Pamiętaj o tym, że w porównaniu Excel traktuje daty jak liczby, dlatego komórki z datą początkową i końcową muszą być sformatowane jako liczby, np. 2007-09-10 jako 39335.

Nie muszą.

W linku gotowiec, może-pomoże. Kolumnę B można ukryć.

18.01.2008
21:14
[9]

albz74 [ Legend ]

OK, oto rozwiązanie tzw eleganckie :P - podajesz tylko datę początkową (H32) i końcową (H33)

=NETWORKDAYS(H32;H33)+SUMA(LICZBA.CAŁK((DZIEŃ.TYG(H32-7)+H33-H32)/7))

19.01.2008
10:32
smile
[10]

Luremaster [ Pierwszy Sekretarz ]

dzieki za wszystkie odpowiedzi. Wydaje mi sie ze znalazlem najbardziej optymalnie dzialajace rozwiazanie. znajdziecie je tutaj:

© 2000-2026 GRY-OnLine S.A.