Calcola la media mobile utilizzando gli ultimi 3 periodiHo un set di dati con tre colonne; Cliente, Tempo trascorso e Quantità. TimePeriod è nel formato di yyyymm. Sto cercando di determinare una formula per calcolare una "media mobile" negli ultimi 3 periodi di tempo, tra tutti i clienti.
Ad esempio, Nella mia riga con etichetta 201704, voglio una formula per restituire la Quantità media per tutti i record da 201703, 201702 e 201701. TimePeriod può verificarsi più volte nei dati (dal Cliente), il che lo rende un po 'più complicato.
Eventuali suggerimenti?
Ri: Calcola la media mobile usando gli ultimi 3 periodiGrazie ancora per tutto il tuo aiuto!
Questo è esattamente quello che stavo cercando.
-Opaco
Ri: Calcola la media mobile usando gli ultimi 3 periodiEcco l'estensione della formula con il cliente aggiunto
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)
]
);
Ri: Calcola la media mobile usando gli ultimi 3 periodiEri corretto! Deve essere stato un errore utente dalla mia parte 
Se desidero che i mezzi siano separati dal cliente, diciamo che "Cliente" è nella sua colonna di riferimento, è possibile?
Quindi la colonna di output calcolerà solo la media degli ultimi 3 periodi di tempo per il cliente in quella riga.
Ri: Calcola la media mobile usando gli ultimi 3 periodiLa formula che ti ho dato dà un'occhiata al valore dell'anno / mese per una data riga. Quindi trova il valore di 1 mese prima e il valore 2 mesi prima sarebbe. Quindi trova la media per tutte le righe nella tabella di dati che hanno il valore anno / mese per uno dei 3 valori anno / mese calcolati.
Pertanto, qualsiasi riga che ha un valore anno / mese, diciamo, 201705, troverà la quantità media di tutte le righe nella tabella di dati che hanno il valore di 201705, 201704 o 201703. Il mio caso di prova limitato ha funzionato per questo. Si noti che l'ordine fisico delle righe nella tabella dati non è importante. La formula trova tutte le righe nell'intera tabella di dati che corrispondono ai 3 periodi di tempo per una determinata riga.
Se potessi fornirmi una tabella di dati di esempio, posso approfondire questo aspetto. O forse la mia interpretazione di ciò che stai chiedendo non è corretta.
Ri: Calcola la media mobile usando gli ultimi 3 periodiJim - Grazie per la tua pazienza.
Ho aggiunto quella formula in una nuova colonna, come hai guidato, ma ottengo lo stesso valore ripetuto lungo tutta la colonna.
Vorrei che la formula mi dia solo la media per gli ultimi 3 periodi di quella fila .
Ad esempio, il record medio dal 201704 dovrebbe essere la media solo degli ultimi 3 periodi da aprile 2017 (201704, 201703, 201702). La riga successiva a partire dal 201705 dovrebbe avere una media diversa composta dagli ultimi 3 periodi da maggio 2017 (201705, 201704, 201703).
Pensieri?
Ri: Calcola la media mobile usando gli ultimi 3 periodiQuello che ti ho dato è una nuova formula che deve essere usata in una nuova colonna, che creerà un nuovo valore per ogni riga.
Nella tabella dati, vai al menu a discesa
Cols ==> Nuova colonna
Dai un nome alla colonna come vuoi
Nell'angolo in basso a sinistra, clicca su
Proprietà colonna
Seleziona la formula
Fai doppio clic sulla casella blu che dice "Nessuna formula"
Nella finestra che si apre, incolla la formula
Ri: Calcola la media mobile usando gli ultimi 3 periodiLa ringrazio molto per la risposta.
Sono molto nuovo nello scripting. C'è un modo per la media di essere prodotto in una nuova colonna, per riga? Così come lo script determina la media negli ultimi 3 periodi di tempo, verrà visualizzato per ogni riga in una nuova colonna?
Inoltre, c'è un problema con quello script all'inizio del set di dati? Quando non ci sono lagtp1 o lagtp2 per la primissima data?
Ri: Calcola la media mobile usando gli ultimi 3 periodiEcco la tua formula
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 )
]
);