edutecnica

Funzioni Excel per la data

     

Il foglio di lavoro Excel usa un sistema di date basate sul 1 gennaio 1900, il che significa ce questa data vale 1; di conseguenza il 30 gennaio 1900, come data, vale 30. Utilizzando questa metrica il 12 novembre 2023 vale 45242 perché tanti sono i giorni trascorsi dal 1 gennaio 1900. Il programma Excel dispone di molteplici funzioni per la gestione delle date. Nella tabella seguente sono riportate alcune di queste funzioni.

OGGI()

Inserita in una cella, senza argomenti, restituisce la data del giorno. Molto utile nei fogli di lavoro per calcolare durate e periodi di tempo aggiornati al momento in cui si sta operando con Excel.

ADESSO()

Come la funzione precedente restituisce la data del giorno a cui aggiunge l'orario del momento (l'orario si aggiorna automaticamente a ogni ricalcolo del foglio di lavoro).

GIORNO()

Restituisce il giorno del mese della data passata come parametro.

GIORNI()

Restituisce il numero di giorni che intercorrono tra due date passate come parametro.

GIORNO.SETTIMANA()

Restituisce un numero compreso tra 1 per lunedì e 7 per domenica per indicare il giorno della settimana della data passata come parametro.

GIORNO360()

Restituisce il numero di giorni compresi tra due date sulla base di un anno di 360 giorni (dodici mesi di 30 giorni), utilizzato in alcuni sistemi di contabilità. Utilizzare questa funzione per facilitare il calcolo dei pagamenti qualora il sistema di contabilità si basi su 12 mesi di 30 giorni.

MESE()

Restituisce il numero del mese della data passata come parametro.

ANNO()

Restituisce il numero dell'anno della data passata come parametro.

DATA()

Converte tre numeri che indicano rispettivamente un anno, un mese e un giorno in una data. I numeri possono essere qualsiasi, sarà Excel a interpretarli e scrivere la data conseguente.

DATA.DIFF()

Calcola la differenza esatta tra due date e la esprime come numero intero di anni trascorsi (parametro "Y"), mesi trascorsi ("M") o giorni trascorsi ("D") tra le due date (tenendo conto degli anni bisestili e di quelli che non sono bisestili ma che avrebbero dovuto esserlo, come il 2000 essendo un numero divisibile per 4). Come terzo parametro si possono ancora inserire i parametri "MD", "YM" o "YD" che restituiscono il numero di giorni che eccedono il numero intero di mesi ("MD") il numero di mesi che eccedono il numero intero di anni ("YM") e infine il numero di giorni che eccedono il numero intero di anni ("YD"). Molto utile per calcoli esatti di periodi di tempo. È una funzione che esiste da tempo ma solo da pochi anni è visibile correttamente. Vedere l'esempio nel paragrafo successivo.

DATA.VALORE()

Restituisce il numero seriale della data rappresentata. Utilizzare la funzione DATA.VALORE per convertire una data in forma di testo in un numero seriale.

FINE.MESE()

Calcola la data dell'ultimo giorno del mese per un numero di mesi fissato prima o dopo la data iniziale. Vedere l’esempio riportato in seguito. Molto utile se non indispensabile, nei calcoli finanziari. La data dev'essere immessa con la funzione DATA o come riferimento a una cella che la contiene.

GIORNI.LAVORATIVI.TOT()

Restituisce il numero di giorni lavorativi compresi tra due date. Vengono tolti i sabati e le domeniche e, se presenti, i giorni di festività nazionali, locali, aziendali elencati. Contiene tre parametri: data iniziale, data finale, date festive.

GIORNI.LAVORATIVI.TOT.INTL()

Come la funzione precedente in cui è possibile specificare in un nuovo parametro il o i giorni festivi nella settimana (per esempio l'attività chiude soltanto la domenica o il martedì). Contiene quattro parametri: data iniziale, data finale, giorno festivo, giorni di vacanza.

GIORNO.LAVORATIVO()

Fissata una data iniziale e un numero di giorni necessari per un'attività, calcola la data finale escludendo i fine settimana e le festività. Contiene tre parametri: data iniziale, numero giorni attività, date festive.

GIORNO.LAVORATIVO.INTL()

Come la funzione precedente in cui è possibile specificare in un nuovo parametro il o i giorni festivi nella settimana (per esempio l'attività chiude soltanto la domenica o il martedì). Contiene quattro parametri: data iniziale, data finale, giorno festivo, giorni di vacanza.

La funzione più comune per la manipolazione delle date in Excel è la funzione DATA().
Essa è dotata di una certa versatilità: come argomenti si possono inserire numeri qualsiasi, sarà Excel a interpretare i numeri in modo da formare una data. Per esempio, nella cella D5 sono stati inseriti 35 giorni: Excel calcolerà i 28 giorni di febbraio (mese 2 in C5) aggiungendo i 7 giorni ottenuti da 35-28.

La funzione FINE.MESE() restituisce la data dell'ultimo giorno del mese calcolato aggiungendo o sottraendo un numero di mesi fissato a partire dalla data.

Calcolo dell'età

     

In un archivio di dati anagrafici non dovrebbe mai essere contenuta l'età dei soggetti, perché l'età cambia con il passare del tempo. Utilizzando la data di nascita, finora si sono sempre fatti calcoli complicati per ricavare l'età esatta o calcoli più semplici ottenendo dei valori di età più o meno approssimati. Utilizzando la funzione DATA.DIFF() si ottiene un'età esatta che tiene conto degli anni bisestili e del giorno in cui viene calcolata.

Nell'immagine seguente c'è un esempio del calcolo dell'età con l'utilizzo della seguente formula in D2:
=DATA.DIFF(B2;C2;"Y").

La formula restituisce il numero esatto di anni interi trascorsi tra la data di nascita in B2 e la data di oggi in C2. Nelle celle adiacenti sono mostrati i calcoli che la funzione permette di svolgere restituendo in E2 il numero di giorni che eccedono il numero esatto di mesi tra le due date (5 giorni tra il 10/09 e il 15/10).

=DATA.DIFF(B2;C2;"MD") numero giorni che eccedono il mese

in F2 il numero di mesi che eccedono il numero esatto di anni (un mese)

=DATA.DIFF(B2;C2;"YM") numero mesi che eccedono i 21 anni

infine in G2 il numero di giorni eccedenti il numero esatto di anni (35 giorni dal 10/09 al 15/10).

=DATA.DIFF(B2;C2;"YD") numero giorni che eccedono i 21 anni

Previsione di date

     

Un altro semplice esempio di applicazione di queste funzioni. In una cella del foglio è presente una data qualsiasi e si vuole calcolare la data del successivo lunedì. Per farlo si deve impiegare la funzione che restituirà il numero del giorno della settimana. La funzione è GIORNO. SETTIMANA() e la sua sintassi è:

=GIORNO.SETTIMANA( data; tipo_restituito)

data; è la data da cui ricavare il giorno della settimana;
tipo_restituito; è un indice che determina il modo di contare i giorni della settimana in base alla nazione: se omesso vale 1 (valore di default) che indica il modo anglosassone di contare i giorni partendo da 1 (domenica) fino a 7 (sabato). Quando vale 2 è il modo europeo che va da 1 (lunedì) a 7 (domenica). Da 3 a 17 indica tutti gli altri modi possibili di inizio e fine dei giorni. Per l'Italia si deve inserire il valore 2.

Una volta ottenuto il giorno della settimana; notiamo nella tabella seguente in cui sono elencati sia i giorni della settimana sia il numero di giorni che mancano al successivo lunedì. La somma di questi due valori dà sempre 8, quindi sottraendo da 8 il giorno della settimana si otterranno i giorni mancanti.

Quindi si può costruire la seguente semplice formula, supponendo che la data sia scritta in B2:
= B2+(8-GIORNO.SETTIMANA(B2;2))

Funzioni Excel per gli orari

     

Quando in Excel viene inserita un'ora espressa in ore, minuti, secondi, questa viene memorizzata come un numero decimale che va da 0 a 1 nell'arco delle 24 ore di cui si compone una giornata. Le principali funzioni per operare con le variabili ore, minuti e secondi sono le seguenti:

ORA()

Restituisce l'ora di un valore ora, rappresentandola con un numero intero che può variare da 0 (00.00) a 23 (23.00).

ORARIO()

Restituisce il numero decimale di un'ora specifica. Se prima dell'immissione della funzione il formato di cella era Generale, il risultato viene formattato come una data.

ORARIO.VALORE()

Restituisce il numero decimale dell'ora rappresentata da una stringa di testo. Il numero decimale è un valore compreso tra 0 e 0,99999999 indicante un'ora tra le 0.00.00 e le 23.59.59.

MINUTO()

Restituisce i minuti di un valore ora. I minuti vengono espressi con un numero intero compreso tra 0 e 59.

SECONDO()

Restituisce i secondi di un valore ora. I secondi vengono espressi con un numero intero compreso tra 0 e 59.

Aritmetica degli orari

     

Considerando che "/" significa divisione e che "*" è la moltiplicazione aritmetica:

06:00:00 viene trasformata in 6/24 = 0,25
12:00:00 viene trasformata in 12/24 = 0,5
20:30:00 viene trasformata in 20,5/24 = 0,854
00:40:00 sarà 40/(60*24) = 0,027778 ossia 40 diviso il risultato di 60 (minuti) per 24 (ore) oppure 40/60/24 = 0,027778

Per verificarlo basterà scrivere in una cella un orario come 20:30 e poi applicare il formato>celle>numero: Excel mostrerà il valore 0,854.
Assegnando invece il formato orario hh:mm il numero ritornerà ad apparire come 20:30.
Se si vogliono eseguire delle operazioni sugli orari, per esempio da 7:30 sottrarre 1:50 (un'ora e 50 minuti), queste si possono eseguire in tre modi differenti:

1 scrivere i due orari in due celle e poi con una formula sottrarre le due celle tra loro;
2 usare le funzioni: =ORARIO(7; 30; 0)-ORARIO(1;50;0) = 5:40;
3 scrivere la formula: -(7,5/24)-((1/24)+(50/(60*24)))=0,236111-5:40.
Nell'ultima formula tutte le parentesi sono obbligatorie altrimenti il risultato sarà errato.

Somma di ore minuti e secondi

     

Quando si sommano celle che riportano orari, si possono ottenere due risultati molto diversi tra loro: per esempio, 10:00+18:30 può dare 04:30 che indica l'ora 10 ore dopo le 18:30 oppure può dare 28:30 che sono le ore totali della somma.

Altro esempio: 10:40+20:40 può dare 07:20 oppure 31:20.

Il primo risultato è quello di default ed è ottenuto considerando che le ore costituiscono una numerazione ciclica su base 24 perché superate le ore 24 si riprende a contare da 0.
A questo risultato si può aggiungere l'ora che eccede i 60 minuti.
Il secondo risultato si ottiene considerando le ore come numeri decimali che si possono sommare liberamente.
Rispetto all'esempio vuole dire che si sta sommando un periodo di 10 ore con uno di 18:30 per un totale di 28,30.
Anche in questo caso si può aggiungere un'ora se la somma dei minuti eccede i 60.
Per visualizzare il secondo tipo di risultato, si deve impostare il formato personalizzato ora tra parentesi quadre: [hh] oppure [hh].mm al posto di hh o hh.mm.
Lo stesso accadrà per i minuti e i secondi che sono una numerazione ciclica su base 60.
Per i minuti e i secondi avremo i formati personalizzati espressi come [mm].ss oppure [ss].