zliczanie w wierszu tylko komórek o liczb wiekszych od zera
zliczanie w wierszu tylko komórek o liczb wiekszych od zera
Witam,
Czy ktoś mógłby podać mi formułę do sumowania komórek w wierszu o zawartości liczb tylko większych od zera jako 1,2,3...itd.
Inaczej mówiąc jeśli w danej komórce znajdzie się liczba większa od zera to skrajna prawa komórka wiersza powinna wskazać "1"
jeśli w wierszu znajdą się się dwie komórki o liczbie większej od zera to wynik powinien być "2" itd. Komórki o zawartości liczb
równej zero nie powinny być uwzględniane w wyniku
Czy ktoś mógłby podać mi formułę do sumowania komórek w wierszu o zawartości liczb tylko większych od zera jako 1,2,3...itd.
Inaczej mówiąc jeśli w danej komórce znajdzie się liczba większa od zera to skrajna prawa komórka wiersza powinna wskazać "1"
jeśli w wierszu znajdą się się dwie komórki o liczbie większej od zera to wynik powinien być "2" itd. Komórki o zawartości liczb
równej zero nie powinny być uwzględniane w wyniku
Ostatnio zmieniony wt sie 27, 2013 4:47 pm przez Jan_J, łącznie zmieniany 1 raz.
Powód: zmiana tytułu postu
Powód: zmiana tytułu postu
Openoffice 2.4 , vista
Re: sumowanie w wierszu tylko komórek o liczb wiekszych od z
Poczytaj o funkcji LICZ.JEŻELI
Mój blog o używaniu LibreOffice
LibreOffice 4.2.6, Debian testing amd64
LibreOffice 4.2.6, Debian testing amd64
Re: sumowanie w wierszu tylko komórek o liczb wiekszych od z
Ad vocem w sprawie terminologii:Antek pisze:[...]formułę do sumowania komórek [...]
Inaczej mówiąc jeśli w danej komórce znajdzie się liczba większa od zera to skrajna prawa komórka wiersza powinna wskazać "1"
jeśli w wierszu znajdą się się dwie komórki o liczbie większej od zera to wynik powinien być "2" itd. [...]
Jeżeli mamy ciąg liczb, dla przykładu 1, 3, 2, 7, -4, 0, 12, -1, 6, to
* suma jego dodatnich elementów wynosi 31,
* liczba jego dodatnich elementów wynosi 5.
Proces sumowania wyznacza sumę elementów. Proces zliczania wyznacza liczbę elementów.
Zatem zwrot "inaczej mówiąc" jest nieuprawniony. Chodzi Ci o zliczanie. Zmieniam temat wątku.
Wskazówka Minia powinna rozwiązać Twój problem. Btw. istnieje również analogiczna funkcja SUMA.JEŻELI().
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
dziękuję za odpowiedź,ale poza poznaniem nomenklatury w niczym mi to nie pomogło.
Wpisałem =LICZ.JEŻELI(E2;H2;K2;N2;Q2;T2;W2;Z2">0") i pojawił się błąd "509".
Nie wiem co on oznacza. Jak pisałem wcześniej jestem laikiem.
Potrzebna mi raczej konkretna wskazówka do stworzenia potrzebnego mi narzędzia,
niż spis literatury. Mam 53 lata i życia mi nie starczy by zgłębić to co pisze Minio na swoim blogu
Wpisałem =LICZ.JEŻELI(E2;H2;K2;N2;Q2;T2;W2;Z2">0") i pojawił się błąd "509".
Nie wiem co on oznacza. Jak pisałem wcześniej jestem laikiem.
Potrzebna mi raczej konkretna wskazówka do stworzenia potrzebnego mi narzędzia,
niż spis literatury. Mam 53 lata i życia mi nie starczy by zgłębić to co pisze Minio na swoim blogu
Openoffice 2.4 , vista
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
Błąd 509 oznacza brak operatora w formule. W tym konkretnym przypadku chodzi o brak średnika pomiędzy Z2 a ">0".Antek pisze:Wpisałem =LICZ.JEŻELI(E2;H2;K2;N2;Q2;T2;W2;Z2">0") i pojawił się błąd "509".
Nie wiem co on oznacza. Jak pisałem wcześniej jestem laikiem.
Ale jego dodanie i tak nic nie zmieni, ponieważ LICZ.JEŻELI oczekuje dwóch argumentów, a tutaj jest ich aż 9.
Musiałbyś to zapisać jako:
Kod: Zaznacz cały
=LICZ.JEŻELI(E2:Z2;">0")
Więc tak naprawdę musisz policzyć wszystkie liczby z zakresu, które spełniają oba kryteria:
- liczba jest w „odpowiedniej” kolumnie (E, H, K itd.)
- liczba jest większa od zera
Drugi warunek mamy już opanowany. Z kolei pierwszy możemy sprawdzić przy pomocy funkcji KOLUMNA oraz MOD. Pierwsza z nich zwraca liczbową wartość kolumny, w której znajduje się komórka określona za pomocą argumentu (czyli A zamienia na 1, B na 2 itd.). Druga służy do obliczania reszty z dzielenia. Komórka E2 znajduje się w piątej kolumnie; 5/3 to 1 i 2 reszty. Komórka H2 znajduje się w ósmej kolumnie; 8/3 to 2 i 2 reszty. Komórka K2 znajduje się w 11 kolumnie; 11/3 to 3 i 2 reszty. Komórka… Chyba już widzisz zależność?
Teraz pozostaje nam już tylko ująć oba te warunki w formułę. Niestety, nie możemy do tego wykorzystać LICZ.JEŻELI. Potrzebna by nam była LICZ.WARUNKI, ale ona z kolei nie jest dostępna w tej wersji pakietu, której używasz.
Pozostaje więc nadużycie funkcji SUMA.ILOCZYNÓW lub skorzystanie z formuły macierzowej.
Gotowa formuła wygląda następująco:
Kod: Zaznacz cały
=SUMA.ILOCZYNÓW((MOD(KOLUMNA(E2:Z2);3)=2)*(E2:Z2>0))
Mój blog o używaniu LibreOffice
LibreOffice 4.2.6, Debian testing amd64
LibreOffice 4.2.6, Debian testing amd64
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
http://help.libreoffice.org/Calc/Error_Codes_in_Calc/plAntek pisze:[...] pojawił się błąd "509".
http://wiki.openoffice.org/wiki/Documen ... thin_cells
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
Dziękuje bardzo. Pojawił się wynik, jednak wskazuje liczbę wszystkich komórek tzn. 8
Myślę,że to dlatego iż nie wspomniałem o tym, że komórki brane pod uwagę zawierają ilość
przepracowanych godzin np. 8:00 lub 0:00, ale żadna nie jest pusta. Czy to możliwe? Jak to naprawić?
Myślę,że to dlatego iż nie wspomniałem o tym, że komórki brane pod uwagę zawierają ilość
przepracowanych godzin np. 8:00 lub 0:00, ale żadna nie jest pusta. Czy to możliwe? Jak to naprawić?
Openoffice 2.4 , vista
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
Wartość 0, podobnie jak pusta komórka, nie powinny być zliczane przy warunku ">0".
Albo coś masz namieszane w formule, albo w danych.
Np.: któreś "0" jest tekstem, albo wyświetlane 00:00 odpowiada nie zeru, tylko pełnej dobie.
Albo coś masz namieszane w formule, albo w danych.
Np.: któreś "0" jest tekstem, albo wyświetlane 00:00 odpowiada nie zeru, tylko pełnej dobie.
JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
Czy możesz wgrać tutaj na forum uproszczoną wersję arkusza, z którym pracujesz? Wystarczą nam 2-3 wiersze danych. Usuń wszelkie dane, które mogłyby posłużyć do zidentyfikowania konkretnych ludzi, których dotyczy arkusz.Antek pisze:Myślę,że to dlatego iż nie wspomniałem o tym, że komórki brane pod uwagę zawierają ilość
przepracowanych godzin np. 8:00 lub 0:00, ale żadna nie jest pusta. Czy to możliwe? Jak to naprawić?
W ten sposób będzie nam łatwiej sprawdzić, o co chodzi.
Mój blog o używaniu LibreOffice
LibreOffice 4.2.6, Debian testing amd64
LibreOffice 4.2.6, Debian testing amd64
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
Oczywiście. Bardzo proszę. Jest to grafik czasu pracy pracowników.
Chciałbym stworzyć go od września tego roku do grudnia przyszłego.
Niebawem otwieram sklep a jestem z tym "w lesie"
Może przy okazji podpowiedzielibyście jak skopiować gotowy arkusz do kolejnych
miesięcy z uwzględnieniem kalendarza i kolorów sobót i niedziel wraz z formułami
oraz tabelką dni urlopów, zwolnień itp./ rozpoczęte na dolnej stronie grafiku /
Te dane z tabel miesięcznych powinny sumować się w tabeli rocznej np. w 13 arkuszu
i pokazywać dane dla każdego pracownika oddzielnie tzn. ile było wykorzystanego urlopu
wypoczynkowego, zwolnień lekarskich itp. Będę wdzięczny za pomoc
Chciałbym stworzyć go od września tego roku do grudnia przyszłego.
Niebawem otwieram sklep a jestem z tym "w lesie"
Może przy okazji podpowiedzielibyście jak skopiować gotowy arkusz do kolejnych
miesięcy z uwzględnieniem kalendarza i kolorów sobót i niedziel wraz z formułami
oraz tabelką dni urlopów, zwolnień itp./ rozpoczęte na dolnej stronie grafiku /
Te dane z tabel miesięcznych powinny sumować się w tabeli rocznej np. w 13 arkuszu
i pokazywać dane dla każdego pracownika oddzielnie tzn. ile było wykorzystanego urlopu
wypoczynkowego, zwolnień lekarskich itp. Będę wdzięczny za pomoc
- Załączniki
-
- GRAFIK.ods
- (28.9 KiB) Pobrany 576 razy
Openoffice 2.4 , vista
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
Z jakiegoś powodu formuła nie jest dokładnie taka, jak ta, którą podałem w jednej ze wcześniejszych wiadomości — brakuje nawiasów obejmujących pierwszy człon wyrażenia (od MOD do =2).
W rezultacie zamiast dwóch równoprawnych wyrażeń warunkowych mieliśmy jedno podrzędne względem drugiego. Dokładniej: formuła sprawdzała, czy liczba w komórce jest większa od zera, wynik mnożyła przez dwa (wartość logiczna dla arkusza jest liczbą, gdzie zero oznacza FAŁSZ a wszystko inne PRAWDA) i wreszcie tę wartość porównywała z resztą z dzielenia numeru porządkowego kolumny przez trzy.
Ostatecznie funkcja zwróciła PRAWDA w dwóch sytuacjach:
- gdy numer porządkowy był podzielny przez 3 bez reszty oraz zawartość komórki nie była większa od zera (dwa razy 0 to 0; reszta z dzielenia liczby podzielnej przez 3 to 0; ponieważ 0 równa się 0, warunek został spełniony)
- gdy numer porządkowy był podzielny przez 3 z resztą dwa oraz zawartość komórki była większa od zera (dwa razy 1 to 2; reszta z dzielenia w tym wypadku wynosi 2; ponieważ 2 równa się 2, warunek został spełniony).
Ponieważ wszystkie zestawy komórek w Twoich danych albo spełniały oba te warunki jednocześnie, albo nie spełniały żadnego z nich, efektem działania całej formuły była liczba dwukrotnie większa od pożądanej.
Więc jeszcze raz, poprawna formuła. Skopiuj ją i wklej do komórki AA2:
Nawiasem mówiąc mam nieodparte wrażenie, że taką bazę danych można zaprojektować inaczej (w domyśle: lepiej z punktu widzenia zadań, które będziesz wobec niej stawiać). Ale ponieważ nie mam na razie czasu nad tym pomyśleć, niech zostanie tak jak jest.
W rezultacie zamiast dwóch równoprawnych wyrażeń warunkowych mieliśmy jedno podrzędne względem drugiego. Dokładniej: formuła sprawdzała, czy liczba w komórce jest większa od zera, wynik mnożyła przez dwa (wartość logiczna dla arkusza jest liczbą, gdzie zero oznacza FAŁSZ a wszystko inne PRAWDA) i wreszcie tę wartość porównywała z resztą z dzielenia numeru porządkowego kolumny przez trzy.
Ostatecznie funkcja zwróciła PRAWDA w dwóch sytuacjach:
- gdy numer porządkowy był podzielny przez 3 bez reszty oraz zawartość komórki nie była większa od zera (dwa razy 0 to 0; reszta z dzielenia liczby podzielnej przez 3 to 0; ponieważ 0 równa się 0, warunek został spełniony)
- gdy numer porządkowy był podzielny przez 3 z resztą dwa oraz zawartość komórki była większa od zera (dwa razy 1 to 2; reszta z dzielenia w tym wypadku wynosi 2; ponieważ 2 równa się 2, warunek został spełniony).
Ponieważ wszystkie zestawy komórek w Twoich danych albo spełniały oba te warunki jednocześnie, albo nie spełniały żadnego z nich, efektem działania całej formuły była liczba dwukrotnie większa od pożądanej.
Więc jeszcze raz, poprawna formuła. Skopiuj ją i wklej do komórki AA2:
Kod: Zaznacz cały
=SUMA.ILOCZYNÓW((MOD(KOLUMNA(E2:Z2);3)=2)*(E2:Z2>0))
Mój blog o używaniu LibreOffice
LibreOffice 4.2.6, Debian testing amd64
LibreOffice 4.2.6, Debian testing amd64
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
Minio jesteś genialny. Serdecznie dziękuję. Sam bym sobie z tym nie poradził.
Szkoda, że nie masz czasu. Obawiam się, że z wymienionymi wyżej problemami będzie mi równie ciężko.
W każdym razie jeszcze raz bardzo Ci dziękuję
SOLVED
Szkoda, że nie masz czasu. Obawiam się, że z wymienionymi wyżej problemami będzie mi równie ciężko.
W każdym razie jeszcze raz bardzo Ci dziękuję
SOLVED
Openoffice 2.4 , vista
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
moglibyście podać jakąś wskazówkę przy następującej formule?
próbuje na wszystkie sposoby i nic a przydałoby mi się to żeby zadziałało
JEŻELI(O2=L2;">0") wyskakuje błąd
LICZ.JEŻELI(O2=L2;">0") wyskakuje błąd
chodzi mi tylko o to żeby dajmy na to w komórce L2 program pokazywał to samo co jest dajmy na to w komórce O2 ale pod warunkiem że cyfry które tam są są cyframi dodatnimi, ujemnych nie chcę widzieć
dzięki
próbuje na wszystkie sposoby i nic a przydałoby mi się to żeby zadziałało
JEŻELI(O2=L2;">0") wyskakuje błąd
LICZ.JEŻELI(O2=L2;">0") wyskakuje błąd
chodzi mi tylko o to żeby dajmy na to w komórce L2 program pokazywał to samo co jest dajmy na to w komórce O2 ale pod warunkiem że cyfry które tam są są cyframi dodatnimi, ujemnych nie chcę widzieć
dzięki
OpenOffice 4.1.1 na Windows 8.1
Re: zliczanie w wierszu tylko komórek o liczb wiekszych od z
Nie powinna pokazywać błędu. Formułaalf_w pisze: JEŻELI(O2=L2;">0") wyskakuje błąd
Kod: Zaznacz cały
JEŻELI(O2=L2;">0")Weź O2 i L2 i porównaj je ze sobą. Jeśli wyjdzie to samo, do komórki z formułą wpisz tekst ">0". Jeśli wyjdzie co innego, do komórki z formułą wpisz wynik porównania (czyli FAŁSZ). Błąd możesz dostać tylko wtedy, kiedy jedna z komórek O2, L2 zawiera błąd. Albo, kiedy umieścisz formułę w jednej z analizowanych komórek -- tj. L2 albo O2.
Bez sensu, bo nie masz zakresu w którym należałoby zliczać. Sprawdź składnię i znaczenie argumentów funkcji licz.jeżeli().alf_w pisze: LICZ.JEŻELI(O2=L2;">0") wyskakuje błąd
Nie ma cyfr dodatnich, są liczby dodatnie.alf_w pisze: chodzi mi tylko o to żeby dajmy na to w komórce L2 program pokazywał to samo co jest dajmy na to w komórce O2 ale pod warunkiem że cyfry które tam są są cyframi dodatnimi, ujemnych nie chcę widzieć.
Musisz w L2 wpisać formułę, która przeanalizuje zawartość O2, porównując ją z wartością 0, a jeśli liczba okaże się większa, poda ją jako wynik. W przeciwnym razie wynikiem jest pusty tekst (pustej komórki nie da się opisać formułą). Czyli L2:
Kod: Zaznacz cały
=jeżeli(O2>0; O2; "")JJ
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)
LO (26.2) ∙ Python (3.13|3.10) ∙ Unicode 17 ∙ LᴬTEX 2ε ∙ XML ∙ Unix tools ∙ Linux (Rocky|CentOS)