Ken vorrebbe visualizzare il contenuto di una cella in base all’ora del giorno. Ad esempio, se la cella C1 contiene la funzione ADESSO (per l’ora del giorno), in un’altra cella vorrebbe una formula che controlli quell’ora. Se è prima delle 17:00, la formula visualizza il contenuto della cella E1.

Se l’ora è dopo le 17:00, la formula visualizza il contenuto della cella F1. Ken non è sicuro di come elaborare l’istruzione IF in modo che controlli l’ora correttamente.

La chiave per svolgere questa attività è ricordare come Excel archivia internamente orari e date. Quando si utilizza la funzione NOW, restituisce un numero di serie che rappresenta la data e l’ora correnti. Tutto in quel numero di serie a sinistra del punto decimale è la data e tutto ciò a destra è l’ora. Sbarazzati della parte della data prima di fare il confronto e quindi stai confrontando le mele con le mele (per così dire).

Un modo per eliminare la parte relativa alla data del numero di serie è in questo modo:

=IF(C1-INT(C1)<TIME(17,0,0),E1,F1)

La funzione TIME restituisce solo la parte dell’ora di un numero seriale di data / ora per qualsiasi ora, minuto e secondo specificato nei parametri. Dato che vuoi le 17:00, solo la parte delle ore deve essere impostata su 17.

Un altro modo per rimuovere la parte della data dal numero di serie è usare la funzione MOD, in questo modo:

=IF(MOD(C1,1)<TIME(17,0,0),E1,F1)

La funzione restituisce il resto dopo aver diviso il valore in C1 per 1.

Il resto, in questo caso, è tutto a destra del punto decimale: l’ora.

Forse il modo più semplice per eseguire il confronto, tuttavia, è saltare del tutto i calcoli sul valore in C1. Utilizza invece la funzione HOUR, in questo modo:

=IF(HOUR(C1)<17,E1,F1)

La funzione HOUR esamina il numero seriale di data / ora nella cella C1 e restituisce un valore compreso tra 0 e 23, a seconda dell’ora del giorno rappresentata da quel numero seriale. Confronta questo con 17 (il valore dell’ora delle 17:00) e la tua formula può visualizzare il valore desiderato in base all’ora del giorno.

È importante ricordare che la funzione ADESSO (su cui fa perno la formula) viene aggiornata solo quando il foglio di lavoro viene aggiornato. Ciò significa che se il foglio di lavoro viene aggiornato alle 16:55 e poi non viene aggiornato di nuovo fino alle 17:10, durante quei 15 minuti la formula restituirà il valore “prima delle 17:00” perché non lo sa ancora è dopo le 17:00 fino al ricalcolo.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (12889) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.