Funzioni date di calendario in Excel

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.

>>>> 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. <<<<

=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 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.
Aggiungere 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))
Sottrarre 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)
Differenza 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
Giorno 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ì )
Giorni 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"!


Commenti
Mi prendo qualche giorno per testarlo ma credo proprio che vada bene.
Ti ringrazio infinitamente!
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
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
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
IL VBA NON FA X ME.
TI RINGRAZIO MOLTO
CIAO
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
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
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
farla comparire cosi 10 10 2011
ringrazio
RSS feed dei commenti di questo post.