Excel képlet: SZŰRNI a legfelső n értéken, feltételekkel -

Általános képlet

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

Összegzés

Az adatok szűréséhez a legfelső n érték megjelenítéséhez, amelyek megfelelnek bizonyos feltételeknek, használhatja a SZŰRŐ funkciót a LARGE és IF függvényekkel együtt. A bemutatott példában az F5 képlete a következő:

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

ahol az adatokat (B5: D16), a csoportot (C5: C16) és a pontszámot (D5: D16) nevezzük tartományoknak.

Magyarázat

Ez a képlet a SZŰRŐ funkcióval használja az adatok lekeresését a LARGE és IF függvényekkel felépített logikai teszt alapján. Az eredmény a B csoport legjobb 3 pontja.

A SZŰRŐ függvény feltételeket alkalmaz az include argumentummal. Ebben a példában a feltételeket a következő logikai logikával építjük fel:

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

A célcsoport kifejezés bal oldala a B csoport 3. legmagasabb pontszámával egyenlő vagy azzal egyenlő:

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

Az IF funkcióval megbizonyosodhatunk arról, hogy a LARGE csak a B csoport pontszámával dolgozik. Mivel összesen 12 pontszámunk van, az IF egy tömböt ad vissza 12 ilyen eredménnyel:

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

Figyelje meg, hogy a művelet során csak a B csoportba tartozó pontszámok tartoznak. Az összes többi pontszám HAMIS. Ezt a tömböt közvetlenül a LARGE-nek adjuk vissza tömb argumentumként:

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

A LARGE figyelmen kívül hagyja a FALSE értékeket, és a 3. legmagasabb pontszámot, 83-at adja vissza.

Most egyszerűsíthetjük a képletet:

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

amely elhatározza, hogy:

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

Végül a FILTER visszaadja Mason, Annie és Cassidy rekordjait, amelyek az F5: H7 tartományba kerülnek.

Az eredmények rendezése pontszám szerint

Alapértelmezés szerint a FILTER az egyező rekordokat ugyanabban a sorrendben adja vissza, mint amelyek a forrásadatokban megjelennek. Az eredmények pontszám szerinti csökkenő sorrendbe rendezéséhez az eredeti SZŰRŐ képletet beillesztheti a SORT funkcióba, így:

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

Itt a FILTER az eredményeket közvetlenül a SORT függvénybe adja vissza tömb argumentumként. A rendezési index értéke 3 (pontszám), a rendezési sorrend pedig -1, csökkenő sorrendben.

érdekes cikkek...