Temat: suma.jeżeli w oparciu o dwa parametry
Marek Zadęcki:
Czy funkcja LICZ.WARUNKI ma swój odpowiednik w Excelu 2003?
Funkcję LICZ.WARUNKI, która nie jest tablicową można w excelu 2003 zastąpić funkcją SUMA.ILOCZYNÓW, np. dla danych:
1 A A
2 B
3 A
4 B
5 A
gdybysmy chcieli policzyć ile rekordów ma w kolumnie A liczbę mniejszą niż 3, a w kolumnie B wartość z komórki C1 zapisalibyśmy:
=LICZ.WARUNKI($A$1:$A$5;"<3";$B$1:$B$5;C1)
a w Excelu 2003 zastąpilibyśmy formułą:
=SUMA.ILOCZYNÓW(($A$1:$A$5<3)*($B$1:$B$5=C1))
Jednak jeśli funkcja LICZ.WARUNKI pojawia się tablicowo, tak jak w tym przypadku, to trzeba by było sprawić, żeby i SUMA.ILOCZYNÓW dała wynik tablicowy (a chyba nie jest to możliwe).
> Prawdopodobnie to ona jest przyczyną błędnego mojego wyniku.
Tak, przyczyną błędnego wyniku jest użycie w Excelu funkcji LICZ.WARUNKI, która pojawiła się w Excelu 2007, gdyż ona zwróci błąd nazwy, a dalej używa Pan funkcji CZY.BŁĄD i w rezultacie funkcja JEŻELI zwróci tablicę "", gdzie zsumowana tablicowo da wynik zero. To tak jakby tablicowo zastosować formułę:
=SUMA(JEŻELI(A1:A2=A1:A2;"";"cokolwiek"))
też wyjdzie zero.
Jak powinna wyglądać prawidłowa formuła dla Excela 2003, aby uzyskać właściwy wynik? Mam dane (identyczne jak w pierwotnym przykładzie) w zakresie A2:C7
Moja formuła tablicowa (używam Excela 2003) wyszła mi tak:
=SUMA(JEŻELI(CZY.BŁĄD(--($B$2:$B$7=C2)*1/LICZ.WARUNKI($A$2:$A$7;$A$2:$A$7;$B$2:$B$7;C2));"";(--($B$2:$B$7=C2)*1/LICZ.WARUNKI($A$2:$A$7;$A$2:$A$7;$B$2:$B$7;C2))))
Jeśli kolumna A jest kolumną liczb, to wcześniejsza formuła z CZĘSTOŚCIĄ zatwierdzona tablicowo zadziała:
=SUMA(JEŻELI(CZĘSTOŚĆ(JEŻELI($B$2:$B$7=C2;$A$2:$A$7;"");JEŻELI($B$2:$B$7=C2;$A$2:$A$7;""))>0;1))
jeśli byłaby to kolumna tekstowa, to chyba pozostaje dodać jedną kolumnę pomocniczą.