Excel képlet: Maximális érték változó oszloppal -

Általános képlet

=MAX(INDEX(data,0,MATCH(column,header,0)))

Összegzés

Ha meg szeretné kapni a maximális értéket egy adatsorban, ahol az oszlop változó, használhatja az INDEX és a MATCH funkciókat a MAX funkcióval együtt. A bemutatott példában a J5 képlete a következő:

=MAX(INDEX(data,0,MATCH(J4,header,0)))

ahol az adatok (B5: F15) és a fejléc (B4: F4) tartományok.

Magyarázat

Megjegyzés: Ha még nem ismeri az INDEX és a MATCH alkalmazást, olvassa el: Az INDEX és a MATCH használata

Normál konfigurációban az INDEX függvény lekér egy értéket egy adott sorban és oszlopban. Például, hogy megkapja az értéket a 2. sorban és a 3. oszlopban egy adott tartományban:

=INDEX(range,2,3) // get value at row 2, column 3

Az INDEX-nek azonban van egy speciális trükkje - a teljes oszlopok és sorok lekérésének képessége. A szintaxis magában foglalja a nulla megadását az "egyéb" argumentumhoz. Ha egy teljes oszlopot szeretne, akkor a sort nullaként adja meg. Ha egy teljes sort szeretne, akkor az oszlopot nullának adja meg:

=INDEX(data,0,n) // retrieve column n =INDEX(data,n,0) // retrieve row n

A bemutatott példában meg akarjuk találni a maximális értéket egy adott oszlopban. A fordulat az, hogy az oszlopnak változónak kell lennie, így könnyen megváltoztatható. Az F5-ben a képlet:

=MAX(INDEX(data,0,MATCH(J4,header,0)))

Belülről kifelé haladva először a MATCH függvényt használjuk, hogy megkapjuk a J4 cellában kért oszlop "indexét":

MATCH(J4,header,0) // get column index

A „zöld” a J4, a match függvény 3, mivel Zöld a harmadik érték a névvel ellátott tartomány fejléc . Miután a MATCH visszaad egy eredményt, a képlet erre egyszerűsíthető:

=MAX(INDEX(data,0,3))

Ha nulla szerepel sorszámként, az INDEX visszaadja az összes értéket a megnevezett tartományadatok 3. oszlopában . Az eredmény egy ilyen tömbben kerül vissza a MAX függvénybe:

=MAX((83;54;35;17;85;16;70;72;65;93;91))

MAX pedig visszaadja a végeredményt, 93-at.

Minimális érték

A változó oszlop minimális értékének megszerzéséhez egyszerűen cserélje le a MAX funkciót a MIN funkcióra. A J6 képlete a következő:

=MIN(INDEX(data,0,MATCH(J4,header,0)))

SZŰRŐ-vel

Az új FILTER funkció szintén használható a probléma megoldására, mivel a FILTER sorok vagy oszlopok szerint szűrheti az adatokat. A trükk egy olyan logikai szűrő létrehozása, amely kizár más oszlopokat. A COUNTIF ebben az esetben jól működik, de "hátrafelé" kell konfigurálni, a J4 a tartomány, és a kritériumok fejléce :

=MAX(FILTER(data,COUNTIF(J4,header)))

A COUNTIF futása után:

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

A FILTER pedig elküldi a 3. oszlopot MAX-nak, ugyanúgy, mint a fenti INDEX funkció.

A COUNTIF helyett alternatívaként használhatja az ISNUMBER + MATCH elemet:

=MAX(FILTER(data,ISNUMBER(MATCH(header,J4,0))))

A MATCH függvény ismét "visszafelé" van beállítva, így kapunk egy 5 értékű tömböt, amely logikai szűrőként szolgál. Az ISNUMBER és a MATCH futtatása után:

=MAX(FILTER(data,(FALSE,FALSE,TRUE,FALSE,FALSE)))

És a FILTER ismét elküldi a 3. oszlopot a MAX-nak.

érdekes cikkek...