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  

 
+1 #12 @filippo 2012-04-21 09:57
Giuseppe leggo ora la tua risposta e mi sembra dai primi test che sia perfetto!

Mi prendo qualche giorno per testarlo ma credo proprio che vada bene.

Ti ringrazio infinitamente!
Citazione
 
 
+1 #11 Emilio Novelli 2012-04-20 21:11
Citazione @filippo:
Ciao Giuseppe,

ti ringrazio per gli utilissimi file che hai creato sono indispensabili.

Mi trovo in difficoltà e credo tu possa essere la persona giusta per aiutarmi.

ho un listino diviso per settimane di un hotel

es.

A 13-mag 27-mag
B 27-mag 03-giu
C 03-giu 10-giu


Filippo

Ciao Filippo, penso di avere risolto il tuo problema, trovi l'esempio xls ed una breve spiegazione nel file GiorniSoggiorno .zip tra gli attachment qui sopra. Scaricalo e se non ti è chiaro qualcosa lasciami pure un messaggio. Ciao
Citazione
 
 
0 #10 @filippo 2012-04-18 15:09
Ciao Giuseppe,

ti ringrazio per gli utilissimi file che hai creato sono indispensabili.

Mi trovo in difficoltà e credo tu possa essere la persona giusta per aiutarmi.

ho un listino diviso per settimane di un hotel

es.

A 13-mag 27-mag
B 27-mag 03-giu
C 03-giu 10-giu
D 10-giu 17-giu
E 17-giu 24-giu
F 24-giu 01-lug
G 01-lug 08-lug
H 08-lug 22-lug
I 22-lug 05-ago
L 05-ago 12-ago
M 12-ago 19-ago
N 19-ago 26-ago
G 26-ago 02-set
D 02-set 09-set
B 09-set 16-set
A 16-set 30-set

Le lettere indicano il tipo di tariffa.

Se voglio calcolare un preventivo in base alla tariffa è facile se prenotano all'interno della stessa tariffa es. (27-mag-03-giu) sono 7 notti in tariffa B.
Il problema è se mi chiedono questo dal 27-mag al 10 giu sono 14 notti 7 in B e 7 in C.
Hai qulache consiglio ?

GRazie

Filippo
Citazione
 
 
0 #9 Emilio Novelli 2012-01-17 16:11
Citazione ocnaib:
Ho la necessità di compilare un foglio per servizi effettuati il sabato e la domenica. Vorrei che nella prima colonna immessa una data poi in automatico mi venissero le date dei sabati e delle domeniche


Ciao ocnaib ecco come farei

Se la prima data è un sabato non c'è problema...

cella A1=>14/01/2012 - cella B1=> =TESTO(A1;"gggg")
cella A2=> =A1+1 - cella B2 ==> =TESTO(A2;"gggg")
cella A3=> =A1+7 - cella B3 ==> =TESTO(A3;"gggg")

poi seleziono le celle da A2 a B3 e trascino la selezione fino dove ritengo necessario copiando così le formule e il gioco è fatto!
Spero di esserti stato utile ciao da Emilio
Citazione
 
 
0 #8 ocnaib 2012-01-17 10:54
Ho la necessità di compilare un foglio per servizi effettuati il sabato e la domenica. Vorrei che nella prima colonna immessa una data poi in automatico mi venissero le date dei sabati e delle domeniche
Citazione
 
 
0 #7 aricina56@yahoo.it 2011-12-09 22:57
HO FATTO COME MI HAI DETTO E VA BENISSIMO.
IL VBA NON FA X ME.
TI RINGRAZIO MOLTO
CIAO
Citazione
 
 
0 #6 Emilio Novelli 2011-12-09 07:12
Citazione aricina56@yahoo .it:
:D Ti ringrazo moltissimo, sei stato chierissimo ed ho risolto in un battibaleno. Grazie
Se davanti alla data come mi hai suggerito volessi mettere il giorno tipo : batto 10102011 e voglio che scriva:
es. gio 10 10 2011 ho provato ma non riesco.
ringrazio e saluto

Nella stessa cella senza ricorrere al VBA non è possibile perché quello che stai digitando non è, di fatto, una data.
Potresti però digitare in un a colonna (es. A) la data e nella cella accanto la formula. Es. se scrivo in A2 12/10/2011, nella cella B2 posso mettere =TESTO(A2;"ggg gg mm aaaa") e al termine del lavoro, nascondere la colonna A.
Se invece devi necessariamente fare tutto nella stessa cella lascia un post che ti scrivo la funzione VBA.
Ciao ciao
Citazione
 
 
0 #5 aricina56@yahoo.it 2011-12-09 02:47
:D Ti ringrazo moltissimo, sei stato chierissimo ed ho risolto in un battibaleno. Grazie
Se davanti alla data come mi hai suggerito volessi mettere il giorno tipo : batto 10102011 e voglio che scriva:
es. gio 10 10 2011 ho provato ma non riesco.
ringrazio e saluto
Citazione
 
 
0 #4 Emilio Novelli 2011-12-08 17:19
Citazione aricina56@yahoo .it:
come posso digitare data in una cella excel es. 10102011 e
farla comparire cosi 10 10 2011
ringrazio

Aricina ciao!
Seleziona le celle sulle quali vuoi applicare il formato (gg mm aaa) quindi con il click a dx richiama l'opzione formato celle e crea un formato personalizzato di tipo 00 00 0000.
Guarda l'esempio, copia e incolla il link nella barra degli indirizzi del tuo browser: http://www.advprj.com/images/stories/formatocelle01.jpg
Citazione
 
 
0 #3 aricina56@yahoo.it 2011-12-08 13:38
come posso digitare data in una cella excel es. 10102011 e
farla comparire cosi 10 10 2011
ringrazio
Citazione