Excel: calcola il numero medio di giorni tra un intervallo di date


0

Vorrei un po 'di aiuto per uno scenario su cui lavorerò con Excel. Qualsiasi aiuto sarà molto apprezzato.

Avrò un intervallo di date sempre crescente per articoli specifici e devo creare un foglio Excel per determinare il numero medio di giorni tra di essi per articolo. Fondamentalmente, questo è un esempio semplificato su come intendo tabulare i dati:

Item Code  | Date
A.ITEM     | January 15, 2017
B.ITEM     | January 16, 2017
A.ITEM     | January 22, 2017
C.ITEM     | January 25, 2017
A.ITEM     | January 31, 2017
C.ITEM     | February 2, 2017
B.ITEM     | February 12, 2017
B.ITEM     | February 24, 2017
C.ITEM     | March 7, 2017

Creerò quindi un'altra tabella che visualizzerà la durata media tra le date per articolo. Immagino che sarà simile a questo:

Item Code  | Average Life Span
A.ITEM     | 9 days
B.ITEM     | 20.5 days
C.ITEM     | 21.5 days

Di quale formula avrei bisogno per rendere possibile la seconda tabella? Mi diverto da un po 'di tempo ormai e, poiché non conosco molto bene le funzioni di Date in Excel, non so ancora come. È anche possibile?

Grazie!


Non capisco cosa intendi quando dici "tra le date per articolo". C'è solo una data per articolo. In che modo Item01 ottiene 9 giorni?
Sir Adelaide,

Per spiegare usando la tabella di esempio che ho fatto sopra, con ITEM01, abbiamo tre date: 15/01/17, 22/01/17 e 31/01/17. Le prime due date sono distanti 8 giorni. Mentre la seconda e l'ultima data sono distanti 10 giorni. Ho quindi bisogno della media tra quelle durate - in questo caso, 9 giorni.
DeVilFisCh

In altre parole, devo prima calcolare i giorni tra ciascuna data per articolo (data 1-2, 2-3, 3-4, ecc.), Quindi calcolare la media dei valori.
DeVilFisCh

ok, scusa, non ho visto i nomi degli oggetti ripetuti nella prima tabella
Sir Adelaide,

Va bene. Mi sono appena reso conto che il tavolo non era molto chiaro, avrei dovuto usare un nome diverso per ogni elemento per renderli più ovvi. Ho appena modificato la tabella per una migliore chiarezza.
DeVilFisCh

Risposte:


2

Si noti che la media delle differenze è solo (max-min) / conteggio: (d1-d2) + (d2-d3) + (d3-d4) + ... = d1-dn

Con ciò, puoi usare una formula simile
(MAX(d1:dn)-MIN(d1:dn))/COUNT(d1:dn)

Ciò metterebbe tutte le date in una pentola, tuttavia, quindi è necessario filtrare ulteriormente in base ai codici - anziché semplicemente MAX(d1:dn)utilizzare MAX(IF(a1:an=code,d1:dn,0)come formula di matrice. Aggiungi ifs simili per MIN e COUNT (o usa COUNTIF); nota che per MIN, il valore else non può essere 0, ma deve essere qualcosa di molto grande.


1
appena aggiunto esempio di come funzionerebbe la formula finale: = (MAX (IF ($ A $ 2: $ A $ 1001 = F2, $ B $ 2: $ B $ 1001,0)) - MIN (IF ($ A $ 2: $ A $ 1001 = F2, $ B $ 2: $ B $ 1001.100000))) / (COUNTIF ($ A $ 2: $ A $ 1001, F2) -1)
Sir Adelaide,

La risposta di Sir Adelaide è più vicina a ciò che avevo in mente, quindi l'ho contrassegnata come una risposta. Apprezzo il tuo aiuto però e lo terrò a mente nel caso in cui potessi averne bisogno in futuro. Grazie! :)
DeVilFisCh

1
Ora che ho dato un'occhiata migliore a questa risposta, ho deciso di passare ad essa in quanto non richiede un ordinamento a più livelli. Ieri non sono riuscito a farlo funzionare correttamente, ma oggi mi sono reso conto che avrei dovuto usare MAIUSC + CTRL + INVIO per le formule di matrice. Colpa mia. Haha!
DeVilFisCh

Nel mio caso l'ho modificato con la formula di matrice seguente per corrispondere alla seconda tabella di esempio che ho fornito nella mia domanda: {= (MAX (IF (Tabella1 [Codice articolo] = F2, Tabella1 [Data], 0)) - MIN (IF (Tabella1 [Codice articolo] = F2, Tabella1 [Data], 10000000))) / (COUNTIF (Tabella1 [Codice articolo], F2) -1) +1}
DeVilFisCh

0

In questo esempio, il codice articolo è nella colonna A, la data è la colonna B e quindi aggiungo nuovi dati. La riga 1 è intestazioni.

Innanzitutto, dovrai ordinare i tuoi dati ogni volta che aggiungi una nuova riga, con un ordinamento a due livelli:

  • prima per codice articolo
  • secondo per data

Quindi, nella colonna a destra di Data aggiungi un tempo tra il calcolo e trascina / riempi:

=IF(A2=A1,B2-B1,"")

Quindi per fare una media dei tempi. Elenca i codici degli articoli A, B, C altrove - li ho inseriti nella colonna F nel mio test. Accanto ad A, inserisci e trascina / riempi verso il basso:

=AVERAGEIF($A$2:$A$6491,F2,$C$2:$C$6491)

Ho ottenuto:

  • A: 8
  • B: 19.5
  • C: 20.5

(per A: 22 gen - 15 gen è 7 giorni, 31 gen - 22 gen è 9 giorni, la media è 8 giorni)


Non è esattamente quello che stavo immaginando, ma questo funziona per me! L'ho appena modificato un po 'aggiungendo 1 al calcolo della durata in modo che corrisponda all'esempio che ho fatto. Devo solo aggiungere alcune formule condizionali e dovrebbe funzionare perfettamente. Contrassegnando questa come risposta. Grazie!
DeVilFisCh

Sono passato all'altra risposta in quanto non richiede un ordinamento a più livelli. Ciò è stato utile comunque.
DeVilFisCh

non preoccuparti, pensavo che anche l'altra risposta fosse migliore
Sir Adelaide,
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.