Se utilizzi Excel per tenere traccia delle informazioni sui progetti, potresti voler conoscere la durata di un determinato progetto in anni, mesi e giorni. Se si dispone della data di inizio e della data di fine per ogni progetto, è possibile utilizzare la funzione del foglio di lavoro DATEDIF per restituire le informazioni nel modo desiderato.

Ad esempio, supponiamo di avere una data di inizio nella cella E7 e la data di fine nella cella F7. Puoi calcolare la differenza tra le due date con questo semplice utilizzo di DATEDIF:

=DATEDIF(E7,F7,"d")

Questa funzione restituisce il numero di giorni tra le due date, a condizione che la data in E7 sia minore o uguale alla data in F7. Il terzo argomento, “d”, fa sì che DATEDIF restituisca il risultato in giorni. Puoi anche specificare mesi (“m”) e anni (‘y “). Per gli scopi di questo esempio, tuttavia, ci sono molti altri argomenti particolarmente utili: mesi esclusi anni (” ym “), giorni esclusi anni ( “yd”), e giorni esclusi mesi e anni (“md”).

Usando questi diversi argomenti, puoi inventare una formula che restituirà una risposta che indica i giorni trascorsi come anni, mesi e giorni.

(A causa della lunghezza delle formule in questo suggerimento, le ho suddivise in righe separate per renderle un po ‘più facili da leggere. Questa è una formula singola, tuttavia, e dovrebbe essere inserita come tale in Excel.)

=DATEDIF(E7,F7,"y") & " years, " & DATEDIF(E7,F7,"ym")

& " months, " & DATEDIF(E7,F7,"md") & " days "

Notare che questa formula restituirà sempre unità plurali, come anni, mesi e giorni. Per coloro che vogliono essere grammaticalmente corretto e fornire unità singolari quando è richiesto, la seguente formula farà il trucco:

=IF(DATEDIF(E7,F7,"y")=1,DATEDIF(E7,F7,"y")&" year, ", DATEDIF(E7,F7,"y")&" years, ")&IF(DATEDIF(E7,F7,"ym")=1, DATEDIF(E7,F7,"ym") &" month, ",DATEDIF(E7,F7,"ym")

&" months, ")&IF(DATEDIF(E7,F7,"md")=1,DATEDIF(E7,F7,"md")

&" day",DATEDIF(E7,F7,"md")&" days")

Questo wor ks in tutti i casi tranne quando anni, mesi o giorni è zero. Per sbarazzarsi dell’unità corretta quando è zero richiede una formula ancora più lunga:

=IF(DATEDIF(E7,F7,"y")=0,"",IF(DATEDIF(E7,F7,"y")=1, DATEDIF(E7,F7,"y")&" year, ",DATEDIF(E7,F7,"y")&" years, "))

&IF(DATEDIF(E7,F7,"ym")=0,"",IF(DATEDIF(E7,F7,"ym")=1, DATEDIF(E7,F7,"ym")&" month, ",DATEDIF(E7,F7,"ym")&" months, "))

&IF(DATEDIF(E7,F7,"md")=0,"",IF(DATEDIF(E7,F7,"md")=0, DATEDIF(E7,F7,"md")&" day ",DATEDIF(E7,F7,"md")&" days"))

Questa formula sta diventando piuttosto lunga, ma restituirà solo quelle unità per le quali esiste un valore. Quindi, invece di restituire “0 anni, 2 mesi, 1 giorno”, restituirà “2 mesi, 1 giorno”.

Anche questa non è una formula perfetta, in quanto visualizzerà comunque le virgole tra le voci in alcune situazioni in cui non sono garantite. La seguente megaformula dovrebbe correggere i plurali e le virgole e eliminare le voci zero.

=IF(DATEDIF(E7,F7,"y")=0,"",IF(DATEDIF(E7,F7,"y")=1, DATEDIF(E7,F7,"y")&"year",DATEDIF(E7,F7,"y")&"years"))

&IF(AND(DATEDIF(E7,F7,"y")<>0,DATEDIF(E7,F7,"ym")<>0),", ","")

&IF(DATEDIF(E7,F7,"ym")=0,"",IF(DATEDIF(E7,F7,"ym")=1, DATEDIF(E7,F7,"ym")&" month",DATEDIF(E7,F7,"ym")&" months"))

&IF(AND(OR(DATEDIF(E7,F7,"y")<>0,DATEDIF(E7,F7,"ym")<>0), DATEDIF(E7,F7,"md")<>0),", ","")&IF(DATEDIF(E7,F7,"md")=0,"", IF(DATEDIF(E7,F7,"md")=1,DATEDIF(E7,F7,"md")&" day", DATEDIF(E7,F7,"md")&" days"))

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

Questo suggerimento (2184) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: