ある種のフィルターを使用して積算合計を作成しようとしましたが、その方法を理解できませんでした。 MMULTを使用してランニングトータルを行う人々を見てきましたが、それをどのように適応させるかはわかりません。
列Aを見るとわかるように、新しい実行合計であるか、継続していて、Aが再び「新規」になるまでCが列Bで実行合計を実行する必要がある場合は、指定された時間があります。
存在しない可能性のあるMMULTソリューションを探すよりも、このために カスタム関数 を記述する方が簡単です。関数は次のように使用されます
=runningtotal(B2:B12, A2:A12, "New")
ここで、B2:B12はデータのある範囲、A2:A12は再起動の条件のある範囲、「新規」は合計を再起動する必要があることを示す値です。
スクリプトはデータに対してループを実行し、total
の合計を集計し、必要に応じて再起動します。
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;
}