Excel-formule: Max van elke n-de kolom -

Inhoudsopgave

Generieke formule

(=MAX(IF(MOD(COLUMN(rng)-COLUMN(rng.first)+1,n)=0,rng)))

Samenvatting

Om het maximum van elke n-de kolom te krijgen, kunt u een matrixformule gebruiken op basis van de functies MAX, MOD en COLUMN. In het getoonde voorbeeld is de formule in M5:

=MAX(IF(MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0,B5:K5))

Opmerking: dit is een matrixformule en moet worden ingevoerd met control + shift + enter.

Uitleg

Deze formule gebruikt de functies MOD en COLUMN om waarden uit de n-de kolommen uit te filteren en voert vervolgens MAX uit op het resultaat.

De sleutel is dit fragment:

MOD(COLUMN(B5:K5)-COLUMN(B5)+1,L5)=0

Hier gebruikt de formule de functie COLUMN om een ​​set "relatieve" kolomnummers voor het bereik te krijgen (hier in detail uitgelegd) dat er als volgt uitziet:

(1,2,3,4,5,6,7,8,9,10)

Deze array gaat naar de MOD-functie als het getalargument:

MOD((1,2,3,4,5,6,7,8,9,10),K5)=0

waarbij L5 de waarde is die moet worden gebruikt voor "n-de". De MOD-functie retourneert de rest voor elk kolomnummer gedeeld door N. Dus als N = 3, zal MOD een array als volgt retourneren:

(1,2,0,1,2,0,1,2,0,1)

Merk op dat er nullen verschijnen voor kolommen 3, 6, 9, enz., Die overeenkomen met elke 3e kolom. Deze array wordt vergeleken met nul met de logische uitdrukking = 0 om een ​​WAAR te forceren wanneer de rest nul is en een ONWAAR wanneer dat niet het geval is. Deze waarden gaan als logische test naar de ALS-functie. De ALS-functie filtert dienovereenkomstig, dus alleen waarden in het oorspronkelijke bereik in n-de kolommen komen in de laatste array. De andere waarden worden FALSE.

Als n = 3, ziet de laatste array binnen MAX er als volgt uit:

MAX((FALSE,FALSE,11,FALSE,FALSE,8,FALSE,FALSE,19,FALSE))

Ten slotte negeert de MAX-functie FALSE-waarden en retourneert het maximum van de resterende waarden, 19.

Max. Van elke andere kolom

Als u het maximum van elke andere kolom wilt krijgen, past u deze formule zo nodig aan, aangezien u begrijpt dat de formule automatisch 1 toewijst aan de eerste kolom in het bereik. Gebruik om het maximum van EVEN kolommen te krijgen:

(=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=0,rng)))

Gebruik om het maximale aantal ODD-kolommen te krijgen:

(=MAX(IF(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=1,rng)))

Interessante artikelen...