
Obecný vzorec
(=SUM(--(MMULT(--(criteria),TRANSPOSE(COLUMN(data)^0))>=N)))
souhrn
Chcete-li spočítat řádky, které obsahují konkrétní hodnoty, můžete použít maticový vzorec založený na funkcích MMULT, TRANSPOSE, COLUMN a SUM. V zobrazeném příkladu je vzorec v K6:
(=SUM(--(MMULT(--((data)=2)))
kde data jsou pojmenovaný rozsah C5: I14.
Toto je maticový vzorec a musí být zadán pomocí Enter Control Shift.
Vysvětlení
Při práci zevnitř ven je logickým kritériem použitým v tomto vzorci:
(data)<70
kde data jsou pojmenovaný rozsah C5: I14. To generuje výsledek TRUE / FALSE pro každou hodnotu v datech a dvojitý zápor vynutí hodnoty TRUE FALSE na 1 a 0 a získá tak pole:
(0,0,0,1,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,1,0,0,1,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0;0,1,0,0,0,0,0;0,0,0,0,0,0,0;0,0,0,0,0,0,0)
Stejně jako původní data má toto pole 10 řádků o 7 sloupcích (10 x 7) a jde do funkce MMULT jako array1 . Další argument, array2 je vytvořen pomocí:
TRANSPOSE(COLUMN(data)^0))
Zde se funkce COLUMN používá jako způsob generování numerického pole správné velikosti, protože násobení matice vyžaduje počet sloupců v array1 (7), aby se rovnal počtu řádků v array2 .
Funkce COLUMN vrací pole se 7 sloupci (3,4,5,6,7,8,9). Zvýšením tohoto pole na sílu nula skončíme s polem 7 x 1 jako (1,1,1,1,1,1,1), které TRANSPOSE se změní na pole 1 x 7 jako (1; 1 ; 1; 1; 1; 1; 1).
MMULT poté spustí a vrátí výsledek pole 10 x 1 (2; 0; 0; 3; 0; 0; 0; 1; 0; 0), který je zpracován s logickým výrazem> = 2, což má za následek pole TRUE FALSE hodnoty:
(PRAVDA; NEPRAVDA; NEPRAVDA; PRAVDA; NEPRAVDA; NEPRAVDA; NEPRAVDA; NEPRAVDA; NEPRAVDA; NEPRAVDA).
Znovu vynucujeme TRUE FALSE na 1 a 0 s dvojitým záporem, abychom získali konečné pole uvnitř SUM:
=SUM((1;0;0;1;0;0;0;0;0;0))
Což správně vrátí 2, počet jmen s minimálně 2 skóre pod 70.