[Google Sheets] Calculer un cumul avec ARRAYFORMULA

Bonjour,

Problème :

Il arrive qu'il faille dans une colonne obtenir une valeur cumulée (heures, crédits, débits, nombres, quantités), ce que nous faisons avec des formules de type

=B1+A2

formule tirée vers le bas

Une telle formule est incompatible avec ARRAYFORMULA car elle induit une dépendance circulaire.

Principe :

Nous allons utiliser le principe du produit de 2 matrices, l'une carrée de taille (n,n) et l'autre de taille (n,1)

capture d ecran 556

avec une matrice carrée composée de 1 et 0 comme suit

capture d ecran 555

le résultat est bien celui attendu

Solution :

La matrice carrée sera constituée en comparant les n° de lignes, une fois en colonne, et une fois en ligne avec transpose; les valeurs VRAI et FAUX sont transformées en 0 et 1

=arrayformula(1*(transpose(row(B2:B))<=row(B2:B)))

Elle sera ensuite multipliée avec les valeurs de la colonne par MMULT

=ArrayFormula(mmult(1*(transpose(row(B2:B))<=row(B2:B));1*B2:B))

puis en enlevant les lignes sans valeur :

=ArrayFormula(if(isblank(A2:A);;mmult(1*(transpose(row(B2:B))<=row(B2:B));1*B2:B)))
Rechercher des sujets similaires à "google sheets calculer cumul arrayformula"