Formule Excel: somme chaque nième colonne -

Table des matières

Formule générique

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

Sommaire

Pour additionner chaque nième colonne, vous pouvez utiliser une formule basée sur les fonctions SUMPRODUCT, MOD et COLUMN.

Dans l'exemple illustré, la formule en L5 est:

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

Explication

À la base, utilise SUMPRODUCT pour additionner les valeurs dans une ligne qui ont été «filtrées» en utilisant une logique basée sur MOD. La clé est la suivante:

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

Cet extrait de 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)

Cela entre dans MOD comme ceci:

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

où K5 est la valeur de N dans chaque ligne. La fonction MOD renvoie le reste pour chaque numéro de colonne divisé par N. Ainsi, par exemple, lorsque N = 3, MOD retournera quelque chose comme ceci:

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

Notez que les zéros apparaissent pour les colonnes 3, 6, 9, etc. FALSE à des uns et des zéros. Cela laisse un tableau comme celui-ci:

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

Où les 1 indiquent maintenant "nième valeurs". Cela va dans SUMPRODUCT en tant que tableau1, avec B5: J5 en tant que tableau2. SUMPRODUCT fait alors son travail, en multipliant d'abord, puis en additionnant les produits des tableaux.

Les seules valeurs qui "survivent" à la multiplication sont celles où array1 contient 1. De cette façon, vous pouvez penser à la logique du "filtrage" de array1 les valeurs de array2.

Somme toutes les autres colonnes

Si vous souhaitez additionner toutes les autres colonnes, adaptez simplement cette formule si nécessaire, en gardant à l'esprit que la formule attribue automatiquement 1 à la première colonne de la plage. Pour additionner EVEN colonnes, utilisez:

=SUMPRODUCT(--(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=0),A1:Z1)

Pour additionner les colonnes ODD, utilisez:

=SUMPRODUCT(--(MOD(COLUMN(A1:Z1)-COLUMN(A1)+1,2)=1),A1:Z1)

Articles intéressants...