KutoolsforOffice — Un'unica soluzione, cinque potenti strumenti.Ottenere di più con meno sforzo.

Come calcolare le ore tra due orari che si estendono oltre la mezzanotte in Excel?

AutoreXiaoyang Data di modifica

Immagina di gestire un piano di lavoro in Excel e di dover registrare periodi lavorativi che iniziano tardi in un giorno e terminano dopo la mezzanotte del giorno successivo. Ad esempio, la colonna A riporta gli orari di inizio nel giorno corrente, mentre la colonna B indica gli orari di fine dopo la mezzanotte del giorno seguente. Quando provi a calcolare la differenza temporale con una semplice formula di sottrazione, come «=B2-A2», Excel restituisce un risultato errato o negativo, come mostrato nello screenshot seguente. Questo accade perché i calcoli orari di Excel si azzerano alla mezzanotte, generando valori imprecisi per i turni che la superano. Come puoi calcolare in modo preciso le ore totali lavorate tra due orari quando l’orario di fine cade dopo la mezzanotte in Excel?
la formula normale per calcolare le ore tra orari dopo la mezzanotte restituirà un risultato errato

Calcola le ore tra due orari dopo la mezzanotte con una formula

Calcola le ore tra due orari dopo la mezzanotte con codice VBA (Automazione avanzata)


Calcola le ore tra due orari dopo la mezzanotte con una formula

Per ottenere un calcolo preciso delle ore tra due orari in cui l’orario di fine è dopo la mezzanotte, puoi utilizzare una semplice formula che tiene conto delle differenze temporali su due giorni. Questo approccio è efficiente per set di dati piccoli o di dimensioni moderate, oppure quando la tua logica deve semplicemente gestire intervalli temporali che superano la mezzanotte.

Funzionamento:La formula «=(B2-A2+(B2<A2))*24» verifica se l’orario di fine (B2) è precedente a quello di inizio (A2). In tal caso, aggiunge 1 giorno — poiché Excel memorizza il tempo come frazioni di una giornata di 24 ore — garantendo sempre un calcolo positivo delle ore.

1. Inserisci la seguente formula in una cella vuota accanto ai tuoi dati orari (ad esempio, nella cella C2):

=(B2-A2+(B2<A2))*24

Spiegazione: Qui, A2 contiene l’orario di inizio e B2 contiene l’orario di fine (dopo la mezzanotte). Modifica i riferimenti di cella in base alla struttura dei tuoi dati.

Calcola le ore tra due orari dopo la mezzanotte con una formula

2. Dopo aver inserito la formula, premi Invio, quindi usa il quadratino di riempimento per trascinarla nelle altre righe pertinenti. Excel calcolerà immediatamente le differenze orarie, tenendo conto del passaggio alla mezzanotte.

trascina e copia la formula nelle altre celle

Suggerimenti:

  • Assicurati che tutte le celle orarie siano formattate come Ora (clic destro > Imposta formato cella > Ora).
  • Questa formula restituisce le ore in formato decimale. Per visualizzare il risultato in ore e minuti, puoi utilizzare la formattazione TESTO, ad esempio =TEXT(B2-A2+(B2<A2),"h:mm"), ma la formula originale è da preferire quando devi effettuare calcoli in ore decimali per buste paga o reportistica.
  • Se i tuoi dati contengono voci orarie non valide, controlla la presenza di errori di digitazione o di valori che Excel non riconosce come orari.

Errori comuni:

  • Se ottieni un errore #VALORE!, ricontrolla che entrambe le colonne contengano valori orari validi e non del testo.
  • Risultati negativi o inaspettati indicano generalmente che i riferimenti della formula sono sfalsati oppure che un’ora non è stata inserita correttamente.

Riepilogo: Questa soluzione è ideale per turni standard o per un semplice monitoraggio notturno, quando i dati sono organizzati in due colonne e non sono richieste logiche aziendali complesse.


Calcola le ore tra due orari dopo la mezzanotte con codice VBA (Automazione avanzata)

Se devi elaborare una grande quantità di dati relativi agli orari o desideri automatizzare il calcolo delle ore in scenari complessi — ad esempio applicando arrotondamenti personalizzati, esclusioni o pause variabili — l’uso di una macro VBA può farti risparmiare tempo e ridurre gli errori manuali. Questo metodo è ideale per utenti avanzati o per chi gestisce schemi di turni in continua evoluzione, interruzioni insolite o esigenze di elaborazione batch.

Scenari applicabili:Scegli questa soluzione se:

  • Gestisci regolarmente centinaia o migliaia di righe
  • Hai bisogno di una logica più avanzata rispetto a un semplice superamento della mezzanotte (ad esempio, regole variabili per gli straordinari o detrazioni per la pausa pranzo)
  • Preferisci una soluzione che si aggiorni automaticamente con un intervento manuale minimo

 

Limitazioni: Gli utenti devono sentirsi a proprio agio nell’abilitare le macro, e i destinatari della cartella di lavoro potrebbero dover consentire l’esecuzione del codice VBA o modificare le impostazioni di sicurezza relative alle macro.

1. Apri la cartella di lavoro di Excel e premi Alt + F11 per avviare l’editor Visual Basic for Applications (VBA). Nell’interfaccia VBA, fai clic su Inserisci > Modulo per creare un nuovo modulo e incolla il codice seguente nella finestra del codice:

Sub CalculateHoursAcrossMidnight()
    Dim rng As Range
    Dim cell As Range
    Dim startTime As Date
    Dim endTime As Date
    Dim resultCol As Integer
    
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    
    Set rng = Application.Selection
    Set rng = Application.InputBox("Select the range containing start and end times (two columns)", xTitleId, rng.Address, Type:=8)
    
    If rng Is Nothing Then Exit Sub
    
    resultCol = rng.Columns(rng.Columns.Count).Column + 1
    
    For Each cell In rng.Columns(1).Cells
        startTime = cell.Value
        endTime = cell.Offset(0, 1).Value
        
        If IsDate(startTime) And IsDate(endTime) Then
            If endTime < startTime Then
                cell.Offset(0, 2).Value = (endTime - startTime + 1) * 24
            Else
                cell.Offset(0, 2).Value = (endTime - startTime) * 24
            End If
        Else
            cell.Offset(0, 2).Value = "Invalid Time"
        End If
    Next cell
    
    MsgBox "Calculation complete! Hours between times after midnight are now in the next column.", vbInformation, xTitleId
End Sub

2. Per eseguire la macro, chiudi l’editor VBA e torna a Excel. Seleziona l’intervallo del foglio che include sia la colonna con l’orario di inizio sia quella con l’orario di fine. Quindi premi il tasto F5 oppure fai clic sul pulsante Esegui.

La macro ti chiederà di selezionare un intervallo contenente entrambi gli orari, posizionati affiancati. I risultati, espressi in numero di ore tra gli orari (corretti per tener conto del superamento della mezzanotte), verranno visualizzati nella colonna immediatamente a destra del tuo intervallo dati.

Suggerimenti e risoluzione problemi:

  • Entrambe le colonne relative all’orario di inizio e di fine devono contenere valori data/ora validi; le celle con formati non riconosciuti saranno contrassegnate come «Ora non valida».
  • Per riutilizzare o adattare la macro ad altri fogli, modifica la selezione o regola gli offset delle colonne in base alle tue esigenze.
  • Se la macro non è visibile o non può essere eseguita, assicurati di aver abilitato le macro modificando le impostazioni di sicurezza di Excel (File > Opzioni > Centro protezione > Impostazioni macro).
  • Questo approccio può essere personalizzato per gestire regole aziendali specifiche: puoi integrare ulteriore logica VBA per gestire pause, arrotondamenti orari o calcoli degli straordinari, in base alle tue esigenze.

Riepilogo: Il metodo automatizzato con VBA è ideale per chi gestisce ampi elenchi di personale, ha bisogno di calcoli ricorrenti o deve applicare logiche organizzative specifiche nella gestione del tempo. Una volta configurato, elimina il lavoro manuale ripetitivo e riduce al minimo il rischio di errori nei calcoli relativi ai turni notturni.

uno screenshot di kutools for excel ai

Sblocca la magia di Excel con KUTOOLS AI

  • Esecuzione intelligente: Esegui operazioni sulle celle, analizza i dati e crea grafici, il tutto con comandi semplici e intuitivi.
  • Formule personalizzate: crea formule su misura per ottimizzare i tuoi flussi di lavoro.
  • Codifica VBA: Scrivi e implementa codice VBA in modo semplice e immediato.
  • Interpretazione delle formule: Comprendi con facilità anche le formule più complesse.
  • Traduzione del testo: Superate le barriere linguistiche direttamente nei vostri fogli di calcolo.
Potenzia le tue capacità in Excel con strumenti basati sull’intelligenza artificiale.Scarica orae scopri un’efficienza mai provata prima!

Migliori Strumenti per la Produttività in Office

🤖KUTOOLS AI Assistente: Rivoluziona Analisi dei dati in base a:Esecuzione Intelligente   |  Genera Codice|  Crea formule personalizzate  |  Analizza Dati e Genera Grafici|  Richiama Funzioni avanzate
Funzionalità Popolari:Trova, Evidenzia o Contrassegna Duplicati   |  Elimina righe vuote   |  Combinare Colonne o Celle senza Perdere Dati   |   Arrotondamento senza usare la formula...
Super RICERCA.VERT:VLookup con Criteri Multipli  |  VLookup con Valori Multipli  |   VLookup tra Fogli Multipli   |   Corrispondenza approssimativa....
Elenco a discesa avanzato:Crea Rapidamente un Elenco a Discesa   |  Elenco a Discesa Dipendente   |  Elenco a Discesa con Selezione Multipla....
Gestione Colonne:Aggiungi un Numero Specifico di Colonne|Sposta Colonne|Attiva/Disattiva lo Stato di Visibilità delle Colonne Nascoste|Confronta Intervalli e Colonne...
Funzionalità in Evidenza:Attenzione della griglia   |  Visualizzazione Design   |Barra delle formule avanzata   | Gestione Cartelle di Lavoro e Fogli   |  Biblioteca di risorse(Testo Automatico)|  Selettore di Date   |  Unisci fogli di lavoro  |  Crittografa/Decrittografa celle   | Invia Email da Lista   |  Super Filtri   |   Filtro speciale(Filtra celle con testo in grassetto/corsivo/barrato...) ...
Principali Set di Strumenti 15:12 Strumentiper il Testo(Aggiungi testo,Elimina Caratteri Specifici, ...)|   50+Tipidi Grafico(Diagramma di Gantt, ...)|   40+ Formule Pratiche(Calcola l'età in base alla data di nascita, ...)|   19 Strumentidi Inserimento(Inserisci Codice QR,Inserisci Immagine dal Percorso, ...)|   12 Strumentidi Conversione(Converti in parole,Conversione del tasso di cambio, ...)|   7 StrumentiUnisci e Dividi(Unione avanzata righe,Dividi celle, ...)|... e molto altro
Usa Kutools nella tua lingua preferita – supporta inglese, spagnolo, tedesco, francese, cinese e 40+ altre!

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.

ExcelWordOutlookTabsPowerPoint
  • 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