
Obecný vzorec
=FILTER(data,range>=LARGE(range,n))
souhrn
Chcete-li filtrovat sadu dat a zobrazit nejvyšší hodnoty n, můžete použít funkci FILTER společně s funkcí VELKÉ. V zobrazeném příkladu je vzorec v F5:
=FILTER(data,score>=LARGE(score,3))
kde data (B5: D16) a skóre (D5: D16) jsou pojmenované rozsahy.
Vysvětlení
Tento vzorec používá funkci FILTER k načtení dat na základě logického testu vytvořeného pomocí funkce LARGE.
Funkce LARGE je jednoduchý způsob, jak získat n-tou největší hodnotu v rozsahu. Jednoduše zadejte rozsah pro první argument (pole) a hodnotu pro n jako druhý argument (k):
=LARGE(range,1) // 1st largest =LARGE(range,2) // 2nd largest =LARGE(range,3) // 3rd largest
V tomto příkladu je logika FILTRU vytvořena pomocí tohoto fragmentu:
score>=LARGE(score,3)
který vrací TRUE, když je skóre větší nebo rovno 3. nejvyššímu skóre. Protože v rozsahu D5: D16 je 12 buněk, tento výraz vrací pole 12 TRUE a FALSE hodnot v takovém poli:
(FALSE;FALSE;TRUE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE)
Toto pole se vrací přímo do funkce FILTER jako argument include, kde se používá k filtrování dat. Pouze řádky, kde je výsledek PRAVDA, se dostanou do konečného výstupu. Výsledek vzorce v F5 zahrnuje 3 nejlepší skóre v datech, která se šíří 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(score,3)),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í.