Excel formula: Maksimalna vrijednost s promjenjivim stupcem -

Generička formula

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

Sažetak

Da biste dohvatili maksimalnu vrijednost u skupu podataka, gdje je stupac promjenjiv, možete upotrijebiti INDEX i MATCH zajedno s MAX funkcijom. U prikazanom primjeru formula u J5 je:

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

gdje su podaci (B5: F15) i zaglavlje (B4: F4) imenovani rasponi.

Obrazloženje

Napomena: Ako ste novi u INDEX-u i MATCH-u, pogledajte: Kako koristiti INDEX i MATCH

U standardnoj konfiguraciji funkcija INDEX dohvaća vrijednost u danom retku i stupcu. Na primjer, da biste dobili vrijednost u retku 2 i stupcu 3 u danom rasponu:

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

Međutim, INDEX ima poseban trik - mogućnost dohvaćanja cijelih stupaca i redaka. Sintaksa uključuje nulu za argument "drugi". Ako želite cijeli stupac, red navodite kao nulu. Ako želite cijeli redak, stupac navodite kao nulu:

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

U prikazanom primjeru želimo pronaći maksimalnu vrijednost u danom stupcu. Zaokret je taj da stupac mora biti promjenjiv kako bi se mogao lako mijenjati. U F5, formula je:

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

Radeći iznutra prema van, prvo koristimo funkciju MATCH da bismo dobili "indeks" stupca traženog u ćeliji J4:

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

Sa "Green" u J4, funkcija MATCH vraća 3, jer je Green treća vrijednost u imenovanom zaglavlju raspona . Nakon što MATCH vrati rezultat, formula se može pojednostaviti na ovo:

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

S nulom navedenom kao broj retka, INDEX vraća sve vrijednosti u stupcu 3 imenovanih podataka raspona . Rezultat se vraća u funkciju MAX u nizu poput ovog:

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

I MAX vraća konačni rezultat, 93.

Minimalna vrijednost

Da biste dobili minimalnu vrijednost s promjenjivim stupcem, možete jednostavno zamijeniti funkciju MAX funkcijom MIN. Formula u J6 je:

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

S FILTROM

Nova funkcija FILTER također se može koristiti za rješavanje ovog problema, jer FILTER može filtrirati podatke po retku ili stupcu. Trik je u izradi logičkog filtra koji će izuzeti ostale stupce. COUNTIF u ovom slučaju dobro funkcionira, ali mora biti konfiguriran "unatrag", s J4 kao rasponom i zaglavljem za kriterije:

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

Nakon pokretanja COUNTIF-a imamo:

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

A FILTER isporučuje treći stupac na MAX, isto kao i gornja funkcija INDEX.

Kao zamjenu za COUNTIF, umjesto toga možete upotrijebiti ISUMBER + MATCH:

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

Funkcija MATCH se ponovno postavlja "unatrag", tako da dobivamo niz s 5 vrijednosti koji će služiti kao logički filtar. Nakon ISNUMBER i MATCH trčanja imamo:

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

I FILTER ponovno isporučuje 3. stupac na MAX.

Zanimljivi članci...