Berechnen Sie den gleitenden Durchschnitt mit den letzten 3 ZeiträumenIch habe einen Datensatz mit drei Spalten; Kunde, Zeitraum und Menge. TimePeriod hat das Format JJJJMM. Ich versuche, eine Formel zu bestimmen, um einen "gleitenden Durchschnitt" über die letzten 3 Zeiträume für alle Kunden zu berechnen.
Beispiel: In meiner Zeile mit der Bezeichnung 201704 möchte ich, dass eine Formel die durchschnittliche Menge für alle Datensätze aus 201703, 201702 und 201701 zurückgibt. Die TimePeriod kann mehrfach in den Daten (nach Kunde) vorkommen, was es etwas komplizierter macht.
Irgendwelche Vorschläge?
Betreff: Berechnen Sie den gleitenden Durchschnitt unter Verwendung der letzten 3 ZeiträumeNochmals vielen Dank für all Ihre Hilfe!
Genau danach habe ich gesucht.
-Matt
Betreff: Berechnen Sie den gleitenden Durchschnitt unter Verwendung der letzten 3 ZeiträumeHier ist die Erweiterung der Formel mit dem hinzugefügten Kunden
dt = Current Data Table();
tp = :timeperiod;
cus = :Customer;
tmp = Date Increment(
Date MDY( Num( Substr( :timeperiod, 5, 2 ) ), 1, Num( Substr( :timeperiod, 1, 4 ) ) ),
"Month",
-1
);
lagtp1 = Char( Year( tmp ) ) || Try( Substr( "0", Length( Char( Month( tmp ) ) ), 1 ), "" ) ||
Char( Month( tmp ) );
tmp = Date Increment(
Date MDY( Num( Substr( :timeperiod, 5, 2 ) ), 1, Num( Substr( :timeperiod, 1, 4 ) ) ),
"Month",
-2
);
lagtp2 = Char( Year( tmp ) ) || Try( Substr( "0", Length( Char( Month( tmp ) ) ), 1 ), "" ) ||
Char( Month( tmp ) );
Mean(
:Quantity[dt << get rows where( ( :timeperiod == tp | :timeperiod == lagtp1 | :timeperiod == lagtp2 ) &
:Customer == cus)
]
);
Betreff: Berechnen Sie den gleitenden Durchschnitt unter Verwendung der letzten 3 ZeiträumeDu hattest recht! Es muss ein Benutzerfehler auf meiner Seite gewesen sein 
Wenn ich möchte, dass die Mittel nach Kunden getrennt sind, sagen wir, "Kunde" befindet sich in einer eigenen Spalte, auf die verwiesen werden kann. Ist das möglich?
Dann berechnet die Ausgabespalte nur den Mittelwert für die letzten 3 Zeiträume für den Kunden in dieser Zeile.
Betreff: Berechnen Sie den gleitenden Durchschnitt unter Verwendung der letzten 3 ZeiträumeDie Formel, die ich Ihnen gegeben habe, betrachtet den Wert für Jahr/Monat für eine bestimmte Zeile. Es findet dann den Wert vor 1 Monat und den Wert vor 2 Monaten. Es findet dann den Mittelwert für alle Zeilen in der Datentabelle, die den Jahres-/Monatswert für einen der 3 berechneten Jahres-/Monatswerte aufweisen.
Daher ist jede Zeile mit einem Jahr/Monat-Wert von beispielsweise 201705 würde die durchschnittliche Menge aller Zeilen in der Datentabelle finden, die den Wert 201705, 201704 oder 201703 aufweisen. Mein eingeschränkter Testfall hat dafür funktioniert. Bitte beachten Sie, dass die physische Reihenfolge der Zeilen in der Datentabelle nicht von Bedeutung ist. Die Formel findet alle Zeilen in der gesamten Datentabelle, die den 3 Zeiträumen für eine bestimmte Zeile entsprechen.
Wenn Sie mir eine Beispieldatentabelle zur Verfügung stellen könnten, kann ich mir das genauer ansehen. Oder vielleicht ist meine Interpretation dessen, was Sie fragen, nicht richtig.
Betreff: Berechnen Sie den gleitenden Durchschnitt unter Verwendung der letzten 3 ZeiträumeJim - Vielen Dank für Ihre Geduld.
Ich habe diese Formel in eine neue Spalte eingefügt, wie Sie es angeleitet haben, aber ich erhalte denselben sich wiederholenden Wert in der gesamten Spalte.
Ich möchte, dass die Formel mir nur den Mittelwert für die letzten 3 Zeiträume gibt dieser Reihe .
Beispielsweise sollte der mittlere Datensatz von 201704 nur den Durchschnitt der letzten 3 Zeiträume von April 2017 bilden (201704, 201703, 201702). Die nächste Zeile von 201705 sollte einen anderen Durchschnitt haben, der aus den letzten 3 Zeiträumen von Mai 2017 besteht (201705, 201704, 201703).
Gedanken?
Betreff: Berechnen Sie den gleitenden Durchschnitt unter Verwendung der letzten 3 ZeiträumeWas ich Ihnen gegeben habe, ist eine neue Formel, die in einer neuen Spalte verwendet werden soll, die einen neuen Wert für jede Zeile erstellt.
Gehen Sie in der Datentabelle zum Pulldown-Menü
Spalten==>Neue Spalte
Benennen Sie die Spalte nach Belieben
Klicken Sie in der linken unteren Ecke auf
Spalteneigenschaften
Wählen Sie Formel aus
Doppelklicken Sie auf das blaue Kästchen mit der Aufschrift „No Formula“
Fügen Sie im sich öffnenden Fenster die Formel ein
Betreff: Berechnen Sie den gleitenden Durchschnitt unter Verwendung der letzten 3 ZeiträumeVielen Dank für Ihre Antwort.
Ich bin sehr neu in der Skripterstellung. Gibt es eine Möglichkeit, den Mittelwert zeilenweise in einer neuen Spalte auszugeben? Wenn das Skript also den Mittelwert über die letzten 3 Zeiträume bestimmt, wird es das für jede Zeile in einer neuen Spalte anzeigen?
Gibt es außerdem ein Problem mit diesem Skript am Anfang des Datensatzes? Wenn es beim allerersten Date kein lagtp1 oder lagtp2 gibt?
Betreff: Berechnen Sie den gleitenden Durchschnitt unter Verwendung der letzten 3 ZeiträumeHier ist deine Formel
dt = Current Data Table();
tp = :timeperiod;
tmp = Date Increment(
Date MDY( Num( Substr( :timeperiod, 5, 2 ) ), 1, Num( Substr( :timeperiod, 1, 4 ) ) ),
"Month",
-1
);
lagtp1 = Char( Year( tmp ) ) || Try( Substr( "0", Length( Char( Month( tmp ) ) ), 1 ), "" ) ||
Char( Month( tmp ) );
tmp = Date Increment(
Date MDY( Num( Substr( :timeperiod, 5, 2 ) ), 1, Num( Substr( :timeperiod, 1, 4 ) ) ),
"Month",
-2
);
lagtp2 = Char( Year( tmp ) ) || Try( Substr( "0", Length( Char( Month( tmp ) ) ), 1 ), "" ) ||
Char( Month( tmp ) );
Mean(
:Quantity[dt << get rows where( :timeperiod == tp | :timeperiod == lagtp1 | :timeperiod == lagtp2 )
]
);