Excel vzorec: Počítání řádků s alespoň n shodnými hodnotami -

Obsah

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.

Dobré odkazy

Počítání řádků, kde je splněna podmínka alespoň v jednom sloupci (Excel)

Zajímavé články...