Excel vzorec: FILTR na nejvyšších hodnotách s kritérii -

Obecný vzorec

=FILTER(data,(range>=LARGE(IF(criteria),n))*(criteria))

souhrn

Chcete-li filtrovat data tak, aby zobrazovaly prvních n hodnot, které splňují konkrétní kritéria, můžete použít funkci FILTER společně s funkcemi VELKÉ a IF. V zobrazeném příkladu je vzorec v F5:

=FILTER(data,(score>=LARGE(IF(group="b",score),3))*(group="b"))

kde data (B5: D16), skupina (C5: C16) a skóre (D5: D16) jsou pojmenovány rozsahy.

Vysvětlení

Tento vzorec používá funkci FILTER k načtení dat na základě logického testu vytvořeného pomocí funkcí VELKÉ a IF. Výsledkem jsou 3 nejlepší skóre ve skupině B.

Funkce FILTER použije kritéria s argumentem zahrnout. V tomto příkladu jsou kritéria konstruována s logickou logikou, jako je tato:

(score>=LARGE(IF(group="b",score),3))*(group="b")

Levá strana výrazu cílí na skóre vyšší nebo rovné 3. nejvyššímu skóre ve skupině B:

score>=LARGE(IF(group="b",score),3)

Funkce IF se používá k zajištění, že LARGE pracuje pouze se skóre skupiny B. Protože máme celkem 12 skóre, IF vrátí pole s 12 výsledky, jako je tento:

(FALSE;65;FALSE;80;FALSE;88;FALSE;76;FALSE;86;FALSE;83)

Všimněte si, že jediné skóre, které operaci přežije, je ze skupiny B. Všechna ostatní skóre jsou NEPRAVDA. Toto pole je vráceno přímo do LARGE jako argument pole:

LARGE((FALSE;65;FALSE;80;FALSE;88;FALSE;76;FALSE;86;FALSE;83),3)

LARGE ignoruje FALSE hodnoty a vrátí 3. nejvyšší skóre, 83.

Nyní můžeme vzorec zjednodušit na:

=FILTER(data,(score>=83)*(group="b"))

který řeší na:

=FILTER(data,(0;0;0;0;0;1;0;0;0;1;0;1))

Nakonec FILTER vrátí záznamy pro Masona, Annie a Cassidy, které se rozlévají do rozsahu F5: H7.

Seřadit výsledky podle skóre

Ve výchozím nastavení FILTER vrátí odpovídající záznamy ve stejném pořadí, v jakém se objevují ve zdrojových datech. Chcete-li výsledky seřadit v sestupném pořadí podle skóre, můžete vnořit původní vzorec FILTER do funkce SORT takto:

=SORT(FILTER(data,(score>=LARGE(IF(group="b",score),3))*(group="b")),3,-1)

Zde FILTER vrací výsledky přímo do funkce SORT jako argument pole. Index řazení je nastaven na 3 (skóre) a pořadí řazení je nastaveno na -1 pro sestupné pořadí.

Zajímavé články...