Excel vzorec: Maximální hodnota s proměnným sloupcem -

Obecný vzorec

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

souhrn

Chcete-li načíst maximální hodnotu v sadě dat, kde je sloupec proměnný, můžete použít INDEX a MATCH společně s funkcí MAX. V zobrazeném příkladu je vzorec v J5:

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

kde data (B5: F15) a záhlaví (B4: F4) jsou pojmenované rozsahy.

Vysvětlení

Poznámka: Pokud s INDEX a MATCH začínáte, přečtěte si: Jak používat INDEX a MATCH

Ve standardní konfiguraci funkce INDEX načte hodnotu v daném řádku a sloupci. Například pro získání hodnoty na řádku 2 a sloupci 3 v daném rozsahu:

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

INDEX však má speciální trik - schopnost načítat celé sloupce a řádky. Syntaxe zahrnuje zadání nuly pro argument „other“. Pokud chcete celý sloupec, zadejte řádek jako nulu. Pokud chcete celý řádek, zadejte sloupec jako nulu:

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

V zobrazeném příkladu chceme najít maximální hodnotu v daném sloupci. Zvrat je v tom, že sloupec musí být variabilní, aby jej bylo možné snadno změnit. V F5 je vzorec:

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

Při práci zevnitř ven nejprve použijeme funkci MATCH k získání „indexu“ sloupce požadovaného v buňce J4:

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

S "zelenou" v J4 vrátí funkce MATCH hodnotu 3, protože zelená je třetí hodnota v pojmenované hlavičce rozsahu . Poté, co MATCH vrátí výsledek, lze vzorec zjednodušit na toto:

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

S nulou uvedenou jako číslo řádku vrátí INDEX všechny hodnoty ve sloupci 3 pojmenovaných dat rozsahu . Výsledek se vrací do funkce MAX v takovém poli:

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

A MAX vrátí konečný výsledek, 93.

Minimální hodnota

Chcete-li získat minimální hodnotu s proměnným sloupcem, můžete jednoduše nahradit funkci MAX funkcí MIN. Vzorec v J6 je:

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

S FILTREM

K vyřešení tohoto problému lze také použít novou funkci FILTER, protože FILTER může filtrovat data podle řádku nebo sloupce. Trik spočívá v konstrukci logického filtru, který vylučuje další sloupce. COUNTIF v tomto případě funguje dobře, ale musí být nakonfigurován „zpět“, s rozsahem J4 a hlavičkou pro kritéria:

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

Po spuštění COUNTIF máme:

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

A FILTER dodává 3. sloupec MAX, stejně jako výše uvedená funkce INDEX.

Jako alternativu k COUNTIF můžete místo toho použít ISNUMBER + MATCH:

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

Funkce MATCH je opět nastavena „zpět“, takže dostaneme pole s 5 hodnotami, které bude sloužit jako logický filtr. Po spuštění ISNUMBER a MATCH máme:

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

A FILTER opět dodává 3. sloupec MAX.

Zajímavé články...