Formula di Excel: massimo ogni ennesima colonna -

Sommario

Formula generica

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

Sommario

Per ottenere il massimo di ogni ennesima colonna, puoi utilizzare una formula di matrice basata sulle funzioni MAX, MOD e COLUMN. Nell'esempio mostrato, la formula in M5 è:

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

Nota: questa è una formula di matrice e deve essere inserita con CTRL + MAIUSC + INVIO.

Spiegazione

Questa formula utilizza le funzioni MOD e COLUMN per filtrare i valori non nelle ennesime colonne, quindi esegue MAX sul risultato.

La chiave è questo snippet:

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

Qui, la formula utilizza la funzione COLUMN per ottenere un insieme di numeri di colonna "relativi" per l'intervallo (spiegato in dettaglio qui) che assomiglia a questo:

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

Questo array va nella funzione MOD come argomento numerico:

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

dove L5 è il valore da utilizzare per "nth". La funzione MOD restituisce il resto per ogni numero di colonna diviso per N. Quindi, ad esempio, quando N = 3, MOD restituirà un array come questo:

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

Nota che gli zeri appaiono per le colonne 3, 6, 9, ecc., Corrispondenti a ogni terza colonna. Questo array viene confrontato con zero con l'espressione logica = 0 per forzare un TRUE quando il resto è zero e un FALSE quando no. Questi valori entrano nella funzione IF come test logico. La funzione IF filtra di conseguenza, quindi solo i valori nell'intervallo originale nell'ennesima colonna vengono inseriti nell'array finale. Gli altri valori diventano FALSE.

Quando n = 3, l'array finale all'interno di MAX ha questo aspetto:

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

Infine, la funzione MAX ignora i valori FALSE e restituisce il massimo dei valori rimanenti, 19.

Massimo di ogni altra colonna

Se si desidera ottenere il massimo di ogni altra colonna, è sufficiente adattare questa formula secondo necessità, poiché la formula assegna automaticamente 1 alla prima colonna dell'intervallo. Per ottenere il massimo di EVEN colonne, utilizza:

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

Per ottenere il numero massimo di colonne DISPARI, utilizza:

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

Articoli interessanti...