
Formuła ogólna
=SUMPRODUCT(--(logical_expression))
Podsumowanie
Aby policzyć wiersze w tabeli, które spełniają wewnętrzne, obliczone kryteria, bez użycia kolumny pomocniczej, można użyć funkcji SUMPRODUCT.
Kontekst
Wyobraź sobie, że masz tabelę zawierającą dane dotyczące sprzedaży kilku produktów. Masz kolumnę sprzedaży z ostatniego miesiąca i kolumnę sprzedaży z bieżącego miesiąca. Chcesz liczyć produkty (wiersze), w przypadku których bieżąca sprzedaż jest mniejsza niż sprzedaż w zeszłym miesiącu. Nie możesz użyć do tego LICZ.JEŻELI, ponieważ LICZ.JEŻELI to funkcja oparta na zakresie. Jedną z opcji jest dodanie kolumny pomocniczej, która odejmuje sprzedaż z ostatniego miesiąca od sprzedaży w tym miesiącu, a następnie użycie funkcji LICZ.JEŻELI do zliczania wyników mniejszych niż zero. Ale co, jeśli nie chcesz (lub nie możesz) dodać kolumny pomocniczej? W takim przypadku możesz użyć SUMPRODUCT.
W przedstawionym przykładzie formuła w komórce G6 to:
=SUMPRODUCT(--(C5:C10>D5:D10))
Wyjaśnienie
SUMPRODUCT jest przeznaczony do pracy z tablicami. Mnoży odpowiednie elementy w dwóch lub więcej tablicach i sumuje otrzymane iloczyny. W rezultacie można użyć SUMPRODUCT do przetwarzania tablic wynikających z zastosowania kryteriów do zakresu komórek. Wynikiem takich operacji będą tablice, które SUMPRODUCT może obsługiwać natywnie, bez konieczności stosowania składni Control Shift Enter.
W tym przypadku po prostu porównujemy wartości w kolumnie C z wartościami w kolumnie D za pomocą wyrażenia logicznego:
C5:C10>D5:D10
Ponieważ mamy do czynienia z zakresami (tablicami), wynikiem jest tablica wartości TRUE FALSE w następujący sposób:
(FALSE; TRUE; FALSE; TRUE; FALSE; FALSE)
Aby przekształcić je w jedynki i zera, używamy podwójnego operatora ujemnego (nazywanego również podwójnym jednoargumentowym):
--(C5:C10>D5:D10)
Który tworzy i tworzy tablicę w ten sposób:
(0; 1; 0; 1; 0; 0)
który jest następnie przetwarzany przez SUMPRODUCT. Ponieważ jest tylko jedna tablica, SUMPRODUCT po prostu dodaje elementy tablicy i zwraca sumę.