Strona 1 z 1
[Solved]funkcja CZY.PUSTA jako warunek sumowania
: czw mar 10, 2016 11:44 am
autor: kosmal
Chcę sumować wartości jednej kolumny tylko wtedy gdy w innej odpowiednia komórka jest pusta.
Wpisałem =SUMA.JEŻELI(N4:N40;"CZY.PUSTA()=1";D4:D40)
Wyświetlana jest wartość zerowa a w kolumnie N4:N40 występują puste komórki a d4:d40 wypełnione jest liczbami.
Libreoffice nie uruchamia funkcji czy pusta bo dla CZY.PUSTA=1 lub CZY.PUSTA(n4:n40)=1 wynik jest zerowy.
Jak zapisać ten warunek aby sumowanie działało prawidłowo.
Pozdrawiam
Andrzej
Re: funkcja CZY.PUSTA jako warunek sumowania
: czw mar 10, 2016 1:13 pm
autor: Jan_J
Nieee,
Kod: Zaznacz cały
=SUMA.JEŻELI(N4:N40;"CZY.PUSTA()=1";D4:D40)
tak się nie da, bo
- "czy.pusta()=1" jest tekstem, a nie wywołaniem funkcji. Tym sposobem zsumujesz te wartości z D, przy których w N stoi literalnie rozumiany tekst "CZY.PUSTA()=1";
- funkcja czy.pusta() musi mieć podany argument w nawiasie;
- drugi argument sumif-a winien dawać wartość do porównania, a nie być funkcją nakładaną na pierwszy argument, co jest Twoim zamiarem.
Poza tym
- wyrażenie czy.pusta(cóś)=1 jest równoważne wyrażeniu czy.pusta(cóś), a prościej znaczy lepiej.
Najlepiej zapomnieć o wysokopoziomowych wodotryskach i wrócić do podstaw. Iloczyn skalarny się skłania:
albo na jedno wychodzi
Pierwsza formuła mnoży każdy wyraz z D przez wartość logiczną stwierdzenia, że odpowiednia komórka w N jest pusta, po czym sumuje wyniki. Druga przygotowuje dwa ciągi: zerojedynkowy z testów pustości N oraz liczbowy z D i sumuje ich iloczyny. Oba wykorzystują fakt, że 1*wartość nie zmienia wartości, zaś 0*wartość daje zero; zatem suma warunkowa ciągu wartości da ten sam wynik, co suma iloczynów indykatora warunku przez odpowiadającą mu wartość.
Obie formuły korzystają z wektorowego rozszerzenia składni formuł. Zatem powinny być zatwierdzane przez <Ctrl+Shift+Enter>, ale z niejasnych dla mnie powodów w drugiej wystarczy samo <Enter>. Ot, uświęcona praktyką niekonsekwencja twórców arkuszy kalkulacyjnych.
SUMIF-em też się da, choć wcale nie okazuje się prościej:
z obowiązkowym <Ctrl+Shift+Enter>.