web-dev-qa-db-fra.com

Formule de tableau avec le total en cours d'exécution qui redémarre en fonction des valeurs d'une autre colonne

J'ai essayé de créer un total cumulé avec une sorte de filtre et je suis incapable de comprendre comment le faire. J'ai vu des gens faire un total cumulé avec MMULT mais je ne savais pas comment l'adapter.

Example

Comme vous pouvez le constater dans la colonne A, il est spécifié chaque fois s'il s'agit d'un nouveau total courant ou s'il continue, puis C doit définir un total cumulé pour la colonne B jusqu'à ce que A contienne à nouveau le mot "Nouveau".

exemple de Google Sheets .

2

Il est plus facile d'écrire une fonction personnalisée pour cela que de rechercher une solution MMULT qui peut même ne pas exister. La fonction serait utilisée comme

=runningtotal(B2:B12, A2:A12, "New")

où B2: B12 est la plage avec les données, A2: A12 est la plage avec les conditions pour le redémarrage et "Nouveau" est la valeur indiquant que le total doit redémarrer.

Le script exécute une boucle sur les données, agrège le total dans total et redémarre si nécessaire.

function runningTotal(data, conditions, str) {
  var output = [];
  var total = 0;
  for (var i in data) {
    total = (conditions[i][0] == str ? data[i][0] : total + data[i][0]);
    output.Push([total]);
  }
  return output;
}
1
user135384