Come calcolare il tempo trascorso – in giorni, mesi o anni – tra due date e orari in Excel?
Quando si gestiscono programmi, si monitorano cronologie di progetti o si analizzano registri di eventi in Excel, spesso è necessario determinare quanto tempo è trascorso tra due momenti specifici. Ad esempio, date due liste – una con gli orari di inizio e un’altra con quelli di fine – potresti voler calcolare rapidamente il tempo trascorso per ogni coppia nella stessa riga, come illustrato nello screenshot seguente. Questo approccio è estremamente utile per la rendicontazione delle ore lavorative, il calcolo dell’età o il monitoraggio delle scadenze.
Calcola il tempo trascorso/giorni/mesi/anni con una formula
Utilizza codice VBA per calcolare direttamente il tempo trascorso
Calcola il tempo trascorso/giorni/mesi/anni con una formula
Calcola il tempo trascorso
Excel semplifica il calcolo della differenza tra due orari, utile in scenari quali il monitoraggio dei turni dei dipendenti, il calcolo dei tempi di risposta o il controllo dell’avanzamento di un progetto. Per orari nello stesso giorno, segui questi passaggi:
1. Fai clic su una cella vuota in cui desideri visualizzare il tempo trascorso (ad esempio, la cella C2) e inserisci la seguente formula:
=IF(B2<A2,1+B2-A2, B2-A2)La cella A2 deve contenere l’orario di inizio e la cella B2 quello di fine. Questa formula gestisce anche i casi in cui l’orario di fine precede quello di inizio — ad esempio, per turni che superano la mezzanotte — assicurando comunque un calcolo preciso.2. Dopo aver inserito la formula, premi Invio. Per applicarla ad altre righe, usa il quadratino di riempimento: fai clic sul piccolo quadrato nell’angolo in basso a destra della cella e trascinalo verso il basso per estenderla a ulteriori record. Così calcolerai automaticamente i tempi trascorsi per più voci.
3. Mantenendo selezionate le celle dei risultati, fai clic con il tasto destro per aprire il menu contestuale e scegli Imposta formato cella. Nella finestra di dialogo Imposta formato cella, nella scheda Numero, seleziona Ora dall’elenco a sinistra. A destra, scegli il formato orario preferito (ad esempio hh:mm, h:mm:ss, ecc.) per visualizzare i risultati come tempi trascorsi leggibili.
4. Fai clic su OK per applicare la formattazione. I valori orari verranno ora visualizzati in base alla tua selezione, facilitando l’interpretazione delle durate complessive.
Suggerimenti aggiuntivi:
- Assicurati che entrambe le colonne degli orari di inizio e fine siano formattate come orari validi di Excel per evitare errori.
- Se prevedi che alcuni orari di fine turno cadano nel giorno successivo (ad esempio, nei turni notturni), la formula sopra tiene conto di questa situazione aggiungendo 1 — corrispondente a un intero giorno — quando necessario.
- Se viene visualizzato l’errore «#VALORE!», verifica che le celle di origine non siano vuote o formattate in modo non corretto.
Calcola giorni, mesi o anni trascorsi
Calcolare il numero di giorni, mesi o anni tra due date è un’operazione comune nella pianificazione di progetti, nella determinazione dei periodi di servizio o nei calcoli anagrafici. Ecco un approccio efficace per ciascuna esigenza:
Per i giorni trascorsi, fai clic su una cella vuota (ad esempio C2) e inserisci la formula:
=B2-A2Qui, A2 è la data di inizio e B2 è la data di fine. Dopo aver premuto Invio, trascina il quadratino di riempimento verso il basso per calcolare le righe aggiuntive.
Nota: Assicurati che entrambe le date siano nel formato data di Excel; in caso contrario, il risultato potrebbe essere errato. Se desideri contare solo i giorni interi (ignorando ore e minuti), questa formula è perfetta.
Per calcolare i mesi tra due date, inserisci in una cella vuota:
=DATEDIF(A2,B2,"m")Questa formula restituisce il numero di mesi completi trascorsi. Se anche i mesi parziali sono rilevanti, puoi visualizzare mesi frazionari combinandoli con i giorni.Per gli anni (inclusi gli anni parziali), utilizza:
=DATEDIF(A2,B2,"y")Se desideri gli anni in formato decimale, puoi provare =DATEDIF(A2,B2,"m")/12e formattare la cella del risultato come numero per una maggiore precisione.Precauzioni:
- Se la data di fine precede la data di inizio, queste formule restituiranno valori negativi: valuta l’aggiunta di una convalida.
- Assicurati di digitare DATEDIF con attenzione: un errore di ortografia farà apparire l’errore «#NOME?» in Excel, poiché questa funzione non è inclusa nel menu standard delle funzioni.
Calcola anni, mesi e giorni trascorsi in un formato combinato
Se il tuo compito richiede una suddivisione più dettagliata (ad esempio, «2 anni, 6 mesi e 19 giorni»), Excel può eseguire questo calcolo combinando la funzione DATEDIF. Questa soluzione è ideale per calcolare la durata del servizio dei dipendenti, per elaborazioni anagrafiche o per qualsiasi scenario in cui serva una chiara separazione tra anni, mesi e giorni.
Seleziona una cella vuota (ad esempio C2) e inserisci la seguente formula:
=DATEDIF(A2,B2,"Y") & " Years, " & DATEDIF(A2,B2,"YM") & " Months, " & DATEDIF(A2,B2,"MD") & " Days"Quindi premi Invio. Combina più calcoli DATEDIF per generare una stringa chiara e leggibile che indica con precisione l’intervallo di tempo trascorso.
Se devi applicare la formula a più righe, utilizza il quadratino di riempimento come illustrato in precedenza. Per assicurarti che il testo venga visualizzato correttamente, ti consigliamo di formattare la colonna risultante come «Generale».
Suggerimento utile: Se il tuo calcolo include anni bisestili o date con mesi di lunghezza variabile, puoi stare tranquillo: DATEDIF effettua calcoli precisi in base ai mesi e agli anni del calendario.
Risoluzione dei problemi e promemoria:
- Controlla sempre con attenzione i tuoi dati di origine per individuare celle vuote o formati data/ora non corretti.
- In caso di errori, prova a riformattare le colonne di input come «Data» o «Ora» per uniformare i dati.
- Se le formule non si aggiornano dopo aver modificato la cella di origine, premi F9 per forzare il ricalcolo oppure verifica che il calcolo automatico sia attivato nelle opzioni di Excel.
Codice VBA per calcolare il tempo trascorso tra due date e orari
Se hai bisogno di automatizzare i calcoli o elaborare set di dati di grandi dimensioni, il VBA è uno strumento utile. Ad esempio, puoi unire i risultati del tempo trascorso in un’unica cella o personalizzare il calcolo secondo necessità.
1. Vai su Strumenti per sviluppatori > Visual Basic; si aprirà una nuova finestra di Microsoft Visual Basic, Applications. Fai clic su Inserisci > Modulo e incolla il seguente codice:
Sub CalcElapsedTimeBySelection()
Dim startRange As Range
Dim endRange As Range
Dim outputCell As Range
Dim ws As Worksheet
Dim i As Long
Dim rowCount As Long
Dim elapsedTime As Double
Dim startTime As Variant, endTime As Variant
Dim xTitleId As String
xTitleId = "Kutools for Excel"
On Error Resume Next
' Prompt user for ranges
Set startRange = Application.InputBox("Select the range for Start Time:", xTitleId, Type:=8)
If startRange Is Nothing Then Exit Sub
Set endRange = Application.InputBox("Select the range for End Time:", xTitleId, Type:=8)
If endRange Is Nothing Then Exit Sub
Set outputCell = Application.InputBox("Select the top-left cell for output results:", xTitleId, Type:=8)
If outputCell Is Nothing Then Exit Sub
On Error GoTo 0
' Check matching range sizes
If startRange.Rows.Count <> endRange.Rows.Count Then
MsgBox "The start and end time ranges must have the same number of rows.", vbExclamation, xTitleId
Exit Sub
End If
' Loop through rows
rowCount = startRange.Rows.Count
For i = 1 To rowCount
startTime = startRange.Cells(i, 1).Value
endTime = endRange.Cells(i, 1).Value
If IsNumeric(startTime) And IsNumeric(endTime) Then
elapsedTime = CDbl(endTime) - CDbl(startTime)
' Handle next-day (cross-midnight) case
If elapsedTime < 0 Then elapsedTime = elapsedTime + 1
outputCell.Offset(i - 1, 0).Value = elapsedTime
outputCell.Offset(i - 1, 0).NumberFormat = "[h]:mm:ss"
Else
outputCell.Offset(i - 1, 0).Value = "Invalid Time"
End If
Next i
MsgBox "Elapsed times calculated successfully for " & rowCount & " rows.", vbInformation, xTitleId
End Sub 2. Fai clic sul pulsante
per eseguire il codice. Ti verrà chiesto di selezionare la data e l’ora di inizio dell’intervallo di tempo, quella di fine e la cella in cui visualizzare il tempo trascorso. Il risultato verrà mostrato in formato orario.
Questo approccio VBA è particolarmente efficace quando si desidera personalizzare ulteriormente calcoli o formattazione e consente di risparmiare tempo con fogli di calcolo molto grandi.
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi