Funzioni date di calendario in Excel

calendario

Le funzioni Excel per la gestione delle date talvolta presentano qualche difficoltà di utilizzo. Questa breve guida sulle funzioni Excel di calendario ti permetterà di gestire le date dei tuoi fogli Excel senza problemi.

Potrai quindi:

- visualizzare le date secondo il formato data che desideri
- trovare la differenza tra due date
- aggiungere o sottrarre giorni, mesi, anni ad/da una data
- trovare il giorno della settimana di un qualsiasi giorno passato o futuro
- conoscere quanti giorni lavorativi intercorrono tra due date

Ho approfondimento gli argomenti che, durante i corsi che ho tenuto, sono risultati più ostici.

 

bottone sul foglio xls per visualizzare la formula o il risultato

>>>> Ho realizzato per te una macro VBA che ho inserito nel foglio Excel, allegato a questo articolo, che attraverso il bottone "Formula/Risultato" ti mostra alternativamente le formule di data ed il loro risultato. Tutte le funzioni Excel presentate sono state mostrate "in pratica" nel foglio Excel allegato, scaricabile dal link posto in fondo all'articolo. <<<<

 

oggi

 

=ADESSO()

Questa funzione Excel mostra la data odierna prendendola dal calendario del computer (data di sistema). Questa formula è presente nell'esempio nella cella A2.

 

formato data un piccolo calendario con una stella Formato data di Excel


La funzione =TESTO(valore;"formato")

applicata ad una data permette di cambiare il formato di visualizzazione della data stessa.

Vediamo come si fa a costruire la data nel formato che più piace. Le lettere base da adoperare per la gestione del formato sono:

  • <a> anno
  • <m> mese
  • <g> giorno

che combinate utilizzando questi formalismi permettono di personalizzare il formato adattandolo ad ogni esigenza.

  • aa=anno con due cifre
  • aaaa=anno con quattro cifre
  • m=mese di una cifra e se da ottobre (10) a dicembre (12) due cifre
  • mm=mese sempre di due cifre
  • mmm=mese formato carattere corto (es. "gen")
  • mmmm=mese formato carattere completo (es. "gennaio")
  • g=giorno di una cifra e se dal giorno 10 in poi due cifre
  • gg=giorno sempre di due cifre.
  • ggg=giorno della settimana in formato carattere corto (es. "mar")
  • gggg=giorno formato carattere completo (es. "martedì")

Beh andiamo per logica
Se nel formato metto una sola "g" voglio che venga mostrato il giorno nel formato più corto possibile, quindi ad una cifra (se possibile altrimenti due).
Se metto "gg" voglio che la data sia sempre di due cifre (altrimenti avrei messo "g").
Se metto "ggg", visto che in nessun mese ci sono più di 30 giorni, voglio dire qualcosa d'altro, cosa!?! Il giorno della settimana, breve però (lun, mar, mer, gio ven, sab, dom).
Se lo volessi completo? Mettiamoci una "g" in più e diventa "gggg" che mostrerà quindi lunedì, martedì, mercoledì, giovedì, venerdì, sabato e domenica

La logica dei giorni è valida anche per i mesi.

quindi =TESTO(ADESSO();"ggg gg mmmm aaaa") diventerà: mer 20 aprile 2011

Le celle comprese nell'intervallo da E4 a E8 contengono gli esempi più comuni di formattazione delle date.

per aiutarti nella comprensione ho inserito il bottone "Formula/Risultato" che ti mostra alternativamente la formula ed il suo risultato;

quando avrai capito come utilizzare queste funzioni verifica il tuo grado di comprensione digitando la stringa di formattazione nella cella D9 confrontando il risultato nella cella E9 con quello atteso.


più - aggiungere giorni mesi anni nella funzione excelAggiungere giorni, mesi e anni ad una data (funzione Excel)


Aggiungere giorni ad una data è semplice. Se nella cella D12 è presente una data per aggiungere 5 giorni basterà scrivere una formula di questa tipo:

=D12+5 (D12=21/04/2011 --> 26/04/2011)  oppure
=D12+D13 (D12=21/04/2011 D13=5 --> 26/04/2011)

Aggiungere mesi o anni

La cosa si fa più complicata se volessi aggiungere anni o mesi.
Come nell'esempio precedente supponiamo che la data sia presente nella cella D12. Per aggiungere 6 mesi dovrò prima scomporre la data stessa nelle sue componenti (anni, mesi e giorni) e aggiungere la quantità al relativo componente (nel nostro esempio 6 a mesi).

Facciamo un esempio, voglio aggiungere 6 mesi alla data nella cella D12, procediamo come segue:

=DATA(ANNO(D12);MESE(D12)+6;GIORNO(D12)) D12=21/4/2011 - Risultato: 21/10/2011)

al posto del 6 potremmo mettere il riferimento ad una cella, ad esempio: =DATA(ANNO(D12);MESE(D12)+D14;GIORNO(D12))
in questo modo se la data nella cella D12 è 21/4/2011 il risultato sarà 21/10/2011.

Analogamente a quanto detto per i mesi succede anche per gli anni quindi se volessi aggiungere 3 anni alla data scriverei

=DATA(ANNO(D12)+3;MESE(D12);GIORNO(D12))

Con la stessa tecnica è possibile anche sommare quantità di tempo miste, come nel caso seguente nel quale sommo 3 anni e sei mesi alla data base.
=DATA(ANNO(D12)+3;MESE(D12)+6;GIORNO(D12))



meno - togliere giorni mesi anni nella funzione excelSottrarre giorni mesi e anni ad una data (funzione Excel)

Analogamente a quanto succede nella somma di giorni, mesi, anni ad una data di calendario anche la sottrazione opera nel medesimo modo.

E' inutile quindi che ti faccia perdere tempo a leggere, riepilogo però le formule:

Sottrarre giorni

=D12-5 (D12=21/04/2011 --> 16/04/2011)
=D12-D13 (D12=21/04/2011 D13=5 --> 16/04/2011)

Sottrarre mesi

=DATA(ANNO(D12);MESE(D12)-6;GIORNO(D12)) (D12=21/04/2011 --> 21/10/2010)
=DATA(ANNO(D12);MESE(D12)-D20;GIORNO(D12)) (D12=21/04/2011 D20=6 --> 21/10/2010)

Sottrarre anni

=DATA(ANNO(D12)-1;MESE(D12);GIORNO(D12)) (D12=21/04/2011 --> 21/04/2004)
=DATA(ANNO(D12)-D21;MESE(D12);GIORNO(D12)) (D12=21/04/2011 D21=7 --> 21/10/2004)


calendario con zoom di due giorni ad indicare la differenza fra 2 dateDifferenza tra due date di calendario

Per sapere quanti giorni intercorrono tra due date e sufficiente sottrarre una data da un'altra
=D28-D29 D28=1/7/1969 D29=8/3/1966 Risultato: 1211



calendario con evidenziato un giorno della settimanaGiorno della settimana

Un'altra interessante funzione è trovare il giorno della settimana da una data di calendario.
La funzione GIORNO.SETTIMANA sembra quella giusta ma spesso non lo è. Infatti ben difficilmente serve sapere che il giorno della settimana della data cercata è 1 correispondente a Lunedì; è meglio sapere che è Lunedì punto e basta. Quindi la maggior parte delle volte la funzione giusta è questa:
=TESTO(D32;"ggg") --> che restituisce un giorno della settimana (in formato corto - lun )
=TESTO(D32;"gggg") --> che restituisce un giorno della settimana (in formato lungo - lunedì )

 

calendario e caschetto per indicare i giorni lavorativiGiorni lavorativi tra due date con la funzione Excel GIORNI.LAVORATIVI.TOT

Questa funzione restituisce quanti giorni lavorativi intercorrono fra due date (escludendo quindi sabato domenica e feste nazionali)

=GIORNI.LAVORATIVI.TOT(D35;D36) (D35=1/4/2011 - D36=4/4/2011 il risultato è 2 infatti scarta sab. 2 e dom. 3)

Scarica il foglio Excel con tutti gli esempi e se questo articolo ti è stato utile clicca "Mi piace"!

Attachments:
Download this file (Formule-Excel-Data-Calendario.xls)Formule-Excel-Data-Calendario.xls[Esempi di funzione excel gestione date di calendario]35 Kb
Download this file (GiorniSoggiorno.zip)GiorniSoggiorno.zip[Risposta a Filippo sul calcolo costo di una camera entro un range di date a tariffe variabili per periodo]6 Kb
Download this file (RispostaGiuseppe20111204.xls)RispostaGiuseppe20111204.xls[Risposta alla domada di Giuseppe (4/12/2011)]34 Kb

Commenti  

 
0 #27 Stefano 2013-03-01 19:33
Ciao, dovrei creare un excel con una tabella più o meno così:

Data - Tariffa1 - Tariffa2....(e così via fino a tariffa 14)

Avrei bisogno di una tabella a parte dove, inserendo il periodo (dal al) ed il tipo di tariffa, mi venisse fuori il costo totale per quel periodo a quella tariffa...è possibile?

Spero di essermi spiegato bene...grazie mille!

Stefano
Citazione
 
 
+2 #26 Michele 2013-02-08 09:37
Scusatemi, ho bisogno di un aiuto su di una formula che
riguarda il calcolo statistico di età. Mi spiego.
fino a 18
da 19 a 29
da 30 a 54
da 55 a 64
oltre i 64
Quale formula utilizzare?
Grazie
Citazione
 
 
+1 #25 adriano 2013-02-06 08:48
Confermo sei un granede, grazie.
Citazione adriano:
Sei un grande.
vorrei xro' che se nella casella A1 data odierna, non metto nulla , deve darmi zero.

Riesci?
grz.

Citazione Emilio Novelli:
Citazione adry:
Ciao, vediamose puoi aiutarmi:

Mi serve una formula che mi restituisca il valore 1, se da una certa data x passano piu di 60 gioni

grz

Ciao, ponendo che:
nella cella A1 hai la data odierna e nella cella B3 la data futura puoi semplicemente scrivere =SE(B3-$A$1>60;1;0).
Citazione
 
 
-1 #24 Eleonora 2013-02-06 08:41
Grazie infinite! sei super!
Citazione
 
 
+1 #23 Emilio Novelli 2013-01-28 11:55
=SE($a$1="";"";SE(B3-$A$1>60;1;0))
Citazione
 
 
-1 #22 adriano 2013-01-28 11:08
Sei un grande.
vorrei xro' che se nella casella A1 data odierna, non metto nulla , deve darmi zero.

Riesci?
grz.

Citazione Emilio Novelli:
Citazione adry:
Ciao, vediamose puoi aiutarmi:

Mi serve una formula che mi restituisca il valore 1, se da una certa data x passano piu di 60 gioni

grz

Ciao, ponendo che:
nella cella A1 hai la data odierna e nella cella B3 la data futura puoi semplicemente scrivere =SE(B3-$A$1>60;1;0).
Citazione
 
 
0 #21 Emilio Novelli 2013-01-25 21:21
Citazione adry:
Ciao, vediamose puoi aiutarmi:

Mi serve una formula che mi restituisca il valore 1, se da una certa data x passano piu di 60 gioni

grz

Ciao, ponendo che:
nella cella A1 hai la data odierna e nella cella B3 la data futura puoi semplicemente scrivere =SE(B3-$A$1>60;1;0).
Citazione
 
 
+1 #20 adry 2013-01-25 16:35
Ciao, vediamose puoi aiutarmi:

Mi serve una formula che mi restituisca il valore 1, se da una certa data x passano piu di 60 gioni

grz
Citazione
 
 
-1 #19 AQUILA 2012-07-22 10:56
grazie per aver risposto. il quesito e' un po diverso, provo a spiegarmi meglio, le colonne sono cosi' formate
cognome--nome --ingresso --uscita --camera--letto--sesso
gdhdgf Anna --06/07/12 --08/07/12- 1 A F
VDG Franco--07/07/12--10/07/12 2 B M
hjfdj Gina -- 07/10/12--09/07/12 1 B F
cbhdbc Rino --09/07/12--12/07/12 3 C M
......... mm
sono 7 camerenumerate 1-7 con 4 posti leto ciascuna che vanno dalla lettera A alla D. deve apparire se libera occupata in una colonna successiva.
grazie
Citazione
 
 
-1 #18 AQUILA 2012-07-22 08:23
ciao, avrei un quesito da porre: diciamo che vorrei registrare degli ingressi e delle uscita da una camera con 4 posti letto, registro data di ingresso, data di uscita e il posto letto che e' dato da 4 lettere .A-B-C-D, vorrei che quando si arriva alla data di uscita sul foglio excel comparisse o libero oppure un colere verde e cosi anche quando e' occupato o un colore rosso o occupato. le colonne sono: A=ingr.- B=usc - C= camera -D= posto letto, esiste una funzione che possa dirmi in tempo reale quale posto e' libero in base alla data attuale?
Citazione