Giorni trascorsi come anni, mesi e giorni (Microsoft Excel)
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: