[Google Sheets] Calculer une progression avec MMULT

Bonjour,

Ce tuto est l' "inverse" du calcul du cumul ... https://forum.excel-pratique.com/astuces/google-sheets-calculer-un-cumul-avec-arrayformula-154884

Certains dispositifs comme les compteurs affichent une valeur cumulée. Le but ici est de retrouver l'écart entre 2 relevés.

Problème :

L'écart se calcule normalement comme suit :

=A2-A1

que l'on tire 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, -1 et 0 comme suit

image

pour une ligne donnée (ligne bleue prise pour exemple), on aura la diagonale égale à 1 (qui représente la valeur courante du relevé) et la valeur juste à gauche à -1 (qui représente la valeur relevé précédemment).

Solution :

La matrice se construira comme suit :

=arrayformula( -1*(ROW(A2:A)=TRANSPOSE(ROW(A2:A)+1)) + 1*(ROW(A2:A)=TRANSPOSE(ROW(A2:A))) )

On aura in fine pour les valeurs cumulées situées en B

=ARRAYFORMULA(IF( B2:B="" ; ; MMULT( -1*(ROW(B2:B)=TRANSPOSE(ROW(B2:B)+1)) + 1*(ROW(B2:B)=TRANSPOSE(ROW(B2:B))) ; IF(B2:B="";0;B2:B) ) ))
Rechercher des sujets similaires à "google sheets calculer progression mmult"