![](https://cdn.wiki-base.com/6998851/excel_formula_max_of_every_nth_column__2.png.webp)
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)))