Excel vzorec: maximálna hodnota s premenným stĺpcom -

Všeobecný vzorec

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

Zhrnutie

Ak chcete načítať maximálnu hodnotu v množine údajov, kde je stĺpec premenlivý, môžete použiť INDEX a MATCH spolu s funkciou MAX. V zobrazenom príklade je vzorec v J5:

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

kde údaje (B5: F15) a hlavička (B4: F4) sú pomenované rozsahmi.

Vysvetlenie

Poznámka: Ak ste v indexoch INDEX a MATCH nováčikom, pozrite si: Ako používať INDEX a MATCH

V štandardnej konfigurácii funkcia INDEX načíta hodnotu v danom riadku a stĺpci. Napríklad pre získanie hodnoty v riadku 2 a stĺpci 3 v danom rozsahu:

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

INDEX má však špeciálny trik - schopnosť načítať celé stĺpce a riadky. Syntax zahŕňa zadanie nuly pre argument „iné“. Ak chcete celý stĺpec, zadajte riadok ako nulu. Ak chcete celý riadok, zadajte stĺpec ako nulu:

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

V zobrazenom príklade chceme nájsť maximálnu hodnotu v danom stĺpci. Zápletka spočíva v tom, že stĺpec musí byť variabilný, aby sa dal ľahko meniť. Vo F5 je vzorec:

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

Keď pracujeme zvnútra von, najskôr použijeme funkciu MATCH na získanie „indexu“ stĺpca požadovaného v bunke J4:

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

Keď je „zelená“ v J4, funkcia MATCH vráti 3, pretože zelená je tretia hodnota v pomenovanej hlavičke rozsahu . Keď MATCH vráti výsledok, vzorec sa dá zjednodušiť takto:

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

S nulou ako číslom riadku vráti INDEX všetky hodnoty v stĺpci 3 pomenovaných údajov rozsahu . Výsledok sa vráti do funkcie MAX v takom poli:

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

A MAX vráti konečný výsledok, 93.

Minimálna hodnota

Ak chcete získať minimálnu hodnotu s premenlivým stĺpcom, môžete jednoducho nahradiť funkciu MAX funkciou MIN. Vzorec v J6 je:

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

S FILTEROM

Na vyriešenie tohto problému možno použiť aj novú funkciu FILTER, pretože FILTER dokáže filtrovať údaje podľa riadkov alebo stĺpcov. Trik spočíva v zostrojení logického filtra, ktorý vylúči ďalšie stĺpce. COUNTIF v tomto prípade funguje dobre, ale musí byť nakonfigurovaný „dozadu“, s rozsahom J4 a hlavičkou kritérií:

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

Po spustení COUNTIF máme:

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

A FILTER dodáva tretí stĺpec na MAX, rovnako ako vyššie uvedená funkcia INDEX.

Ako alternatívu k COUNTIF môžete namiesto toho použiť ISNUMBER + MATCH:

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

Funkcia MATCH je opäť nastavená „dozadu“, takže dostaneme pole s 5 hodnotami, ktoré bude slúžiť ako logický filter. Po spustení ISNUMBER a MATCH máme:

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

A FILTER opäť dodáva 3. stĺpec na MAX.

Zaujímavé články...