Riempire i tempi mancanti di un insieme di dati di serie temporali interrotti


0

Ho scaricato dati per minuto da Google Analytics. Tuttavia, fornisce solo un elemento pubblicitario per ogni minuto in cui è presente un valore maggiore di zero.

Vorrei tracciare questi dati, ma prima voglio vederlo in una serie temporale continua, iniettando zero espliciti per i minuti in cui la fonte non ha dati.

Ho convertito l'ora del giorno (colonna A ) e "Minuto" (colonna B ) in "Ora" (colonna G ) utilizzando

=TIME(RIGHT(A3,2),B3,0)

Ho provato a utilizzare un indice / partita

=INDEX($C$3:$C$954,MATCH(H3,$G$3:$G$954,0))

in colonna I facendo riferimento alle serie temporali continue nella colonna H, per restituire i dati nella colonna C ma ritorna #N/A.

Ecco uno screenshot che mostra il risultato desiderato, inserito manualmente, in colonna I:

Screen shot updated

Da H6 è 12:03:00 AM, I6 dovrebbe contenere 2, che è il valore di C3, da G3 è 12:03:00 AM.

Allo stesso modo, H11 = G4 = 12:08:00 AMI11 = C4 = 1.

Righe di cui H il valore non è presente nella colonna G dovrebbe avere un 0 in colonna I.

Risposte:


1

Il problema risulta essere dovuto a discrepanze in virgola mobile quando si utilizza il riempimento della serie Linear di Excel per riempire automaticamente le ore nella colonna H, rispetto ai tempi generati con il TIME() funzione.

Questo può essere confermato inserendo =H6-G3 in qualsiasi cella o selezionando H6, quindi premendo F2 seguito da accedere . Si noti che mentre il F2 il metodo può essere utilizzato per correggere i valori temporali uno alla volta, non è conveniente farlo per un numero significativo di celle.

La soluzione è generare il Continuous Time valori con una formula.

Worksheet Screenshot using OP's Formula

Immettere la seguente formula in H3 e ctrl-enter / copy-paste / fill-down / auto-fill fino alla fine della tabella H colonna come richiesto:

=IF(ISTEXT(H2),TIME(RIGHT(A3,2),0,0),TIME(HOUR(H2),MINUTE(H2)+1,0))

Si noti che i valori temporali possono essere lasciati come sono o convertiti in valori letterali copiando e incollando come valori.

Come puoi vedere, la tua formula indice / partita nella colonna I ora preleverà gli utenti dalla colonna C quando esiste un tempo di corrispondenza nella colonna G.


MODIFICARE:

Mentre la formula sopra è "robusta" e permette alle file di essere inserite / cancellate sopra l'intestazione senza romperle, come ha sottolineato Scott (specialmente se copia / incolla come valori), c'è una versione più semplice e meno robusta:

=TIME(RIGHT($A$3,2),ROW()-3,0)

Ulteriore semplificazione di ciò porta alla seguente formula più semplice possibile:

=TIME(0,ROW()-3,0)

L'unica cosa che rimane da fare è modificare la formula per generare zeri quando manca il tempo:

=IFERROR(INDEX($C$3:$C$954,MATCH(H3,$G$3:$G$954,0)),0)

Worksheet Screenshot using Modified Formula


Grazie mille per il vostro aiuto!!! Pensavo di essere sulla strada giusta. Voi ragazzi siete stati così utili :)
Britt

@Britt, sei il benvenuto Non dimenticare di "accettare" la risposta (facendo clic sul segno di spunta grigio in alto a sinistra della risposta) per contrassegnare la domanda come risolta. Questo è anche il modo corretto per dire "grazie" in quanto ricompensa il rispondente (e te) con la reputazione. PS Se hai davvero apprezzato il mio aiuto, una volta raggiunta la reputazione di 15+ non dimenticarti di tornare e anche di alzare la mia risposta ;-)
robinCTS

Tu puoi fare H3 molto più semplicemente come =TIME(RIGHT(A$3,2), ROW()-3, 0).
Scott

1
@Scott Sì. Ma poi la formula si rompe se le righe vengono inserite / cancellate sopra l'intestazione. Sono in due a pensare a cosa sia meglio: la versione più semplice ma meno robusta, o la versione più complessa ma più robusta. Per il mio uso personale preferisco sempre la robustezza rispetto alla semplicità. Per le risposte su Super User, se la formula è già abbastanza complessa, provo a fare la versione meno robusta (se ricordo). Suppongo che in questo caso, se le formule sono copiate come valori, la formula più semplice sarebbe meglio.
robinCTS

1
@robinCTS: Beh, sì, se si presuppone che l'OP vuole che il grafico inizi a mezzanotte anche se i dati non lo fanno. Se i dati iniziano alle 5:00, ciò comporterebbe 300 righe vuote.
Scott
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.