Affrontare la mezzanotte che finisce un giorno (Microsoft Excel)
Nel lavoro di Michael c’è una differenza sottile ma spesso importante tra l’ora 24:00 e l’ora 00:00, ma Excel non supporta l’ora 24:00. “Midnight” è 00:00:00 ed è riconosciuto solo come appartenente al giorno successivo. Michael si chiede se esiste un modo per specificare un’ora di 24:00, cioè una “mezzanotte” che termina un giorno, piuttosto che iniziare un giorno, e operare in quella data / ora con le normali funzioni?
Prima di rispondere alla domanda, è importante capire che la mezzanotte è un tempo a sé; è semplicemente un istante, una frazione di una frazione di secondo. Quando si denota digitalmente l’ora con i secondi, 00:00:00 è in genere mezzanotte e 24:00:00 è un’ora inesistente.
Perché? Perché il secondo prima viene annotato come 23:59:59 e quando aggiungi un altro secondo, l’orologio non passa alle 24:00:00 e il secondo successivo diventa 24:00:01. Ci sono solo 24 ore in un giorno e quelle ore sono numerate da 0 a 23, non da 1 a 24. Quindi, quando si “spunta” dalle 23:59:59, l’ora diventa 00:00:00.
Si potrebbe postulare che la giornata non inizi effettivamente prima delle 00:00:01 e che finisca alle 24:00:00, ma questa non è la sensazione generalmente condivisa dalla maggior parte delle persone che lavorano con i tempi. La sensazione è che poiché le ore vengono contate utilizzando un intervallo a base zero, la coerenza impone che anche i secondi vengano contati utilizzando un intervallo a base zero. Proprio come ogni ora inizia con zero secondi, anche il giorno dovrebbe.
Comprendendo che gli argomenti potevano essere fatti in ogni modo (su come designare la mezzanotte in Excel), Microsoft ha scelto di fare in modo che tutto – ore, minuti e secondi – fosse in intervalli a base zero. Nel determinare come memorizzare le date e le ore in un foglio di lavoro, Microsoft ha ideato un sistema di numeri di serie numerici. La parte del numero di serie a sinistra di un punto decimale rappresenta il numero di giorni trascorsi da una data di inizio base (di solito 1 gennaio 1900) e la parte a destra del punto decimale rappresenta la percentuale di un giorno a partire dalla mezzanotte. Quindi, considera il seguente numero di serie:
26442.636805556
Ciò rappresenta le 15:17 del 23 maggio 1972. Se l’ora ha cliccato ancora un secondo (alle 15:17:01), la parte a destra del punto decimale diventa .63681713, o 63,681713% dopo la mezzanotte. Quando la parte a destra del punto decimale è 0 (quindi il numero di serie diventa solo 26442), l’ora è 0% dopo la mezzanotte.
È interessante notare che se si immette un orario come 24:00:00, questo è ciò che viene visualizzato in Excel, non perché consente tale tempo internamente, ma perché presuppone che sia stato immesso un tempo trascorso. Se invece inserisci una data e un’ora come 5/19/2020 24:00:00, Excel le analizza come data e ora, convertendole in 5/2020 00:00:00.
Quindi, la breve risposta alla domanda originale di Michael è che la sua premessa è tecnicamente errata: la mezzanotte è un momento di transizione unico che non appartiene né al giorno prima né al giorno dopo. Quando si tiene conto dei secondi, tuttavia, Microsoft supporta un intervallo di conteggio a base zero e la coerenza impone che l’ora 00:00:00 appartenga al nuovo minuto, alla nuova ora e al nuovo giorno. In tale approccio contabile, non esiste un orario come le 24:00:00, quindi viene automaticamente analizzato come 00:00:00 del nuovo giorno.
Per coloro che devono tenere un orario il giorno precedente, il modo normale per aggirare il problema è semplicemente non inserire mai le 24:00:00. Invece, inserisci 23:59:59 e considera la seconda differenza come “persa” a tutti gli effetti.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (9979) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.