Formule Excel: Max de chaque nième colonne -

Table des matières

Formule générique

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

Sommaire

Pour obtenir le maximum de chaque nième colonne, vous pouvez utiliser une formule matricielle basée sur les fonctions MAX, MOD et COLUMN. Dans l'exemple illustré, la formule en M5 est:

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

Remarque: il s'agit d'une formule matricielle et doit être saisie avec Ctrl + Maj + Entrée.

Explication

Cette formule utilise les fonctions MOD et COLUMN pour filtrer les valeurs qui ne se trouvent pas dans la nième colonne, puis exécute MAX sur le résultat.

La clé est cet extrait:

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

Ici, la formule utilise la fonction COLONNE pour obtenir un ensemble de numéros de colonne "relatifs" pour la plage (expliquée en détail ici) qui ressemble à ceci:

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

Ce tableau entre dans la fonction MOD comme argument numérique:

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

où L5 est la valeur à utiliser pour "nième". La fonction MOD renvoie le reste pour chaque numéro de colonne divisé par N. Ainsi, par exemple, lorsque N = 3, MOD renvoie un tableau comme celui-ci:

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

Notez que des zéros apparaissent pour les colonnes 3, 6, 9, etc., correspondant à toutes les 3 colonnes. Ce tableau est comparé à zéro avec l'expression logique = 0 pour forcer un TRUE lorsque le reste est égal à zéro et un FALSE dans le cas contraire. Ces valeurs entrent dans la fonction IF comme test logique. La fonction IF filtre en conséquence, de sorte que seules les valeurs de la plage d'origine dans les nièmes colonnes sont intégrées dans le tableau final. Les autres valeurs deviennent FAUX.

Lorsque n = 3, le tableau final à l'intérieur de MAX ressemble à ceci:

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

Enfin, la fonction MAX ignore les valeurs FALSE et renvoie le maximum de valeurs restantes, 19.

Max de chaque autre colonne

Si vous souhaitez obtenir le maximum de toutes les autres colonnes, adaptez simplement cette formule au besoin, sachant que la formule attribue automatiquement 1 à la première colonne de la plage. Pour obtenir le maximum de colonnes EVEN, utilisez:

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

Pour obtenir le maximum de colonnes ODD, utilisez:

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

Articles intéressants...