PDA

Visualizza versione completa : Calcoli con date in Excel


Lionsquid
13-02-2008, 00.04.59
Mi trovo un curioso dato difforme usando due diversi metodi di calcolo di differenza tra date

Fino ad oggi non mi sono mai trovato a dover mettere insieme tutte le possibili formule (o almeno, le più comuni) per tali calcoli, che come tutti sappiamo, Excel è particolarmente arzigogolato nella logica di tali applicazioni

A meno di miei errori di impostazione, attuando una differenza tra date con DATA.DIFF e col tradizionale ANNO/MESE/GIORNO. Il calcolo differisce di 1 giorno :mm:

in allegato il file XLS, e le funzioni colorate rispettivamente in rosso e blu

qualcuno ha idea di dove sta l'inghippo???


inoltre, dato che devo strutturare l'esercizio in maniera organica e (possibilmente) utile al fine di comprendere bene l'uso delle funzioni nei calcoli tra date.... avreste mica qualche suggerimento??

l'esercitazione comprenderà, in un foglio a parte, calcoli con ORA/MINUTI/SECONDI e ammenicoli vari (pensavo ad un'esercizio di una corsa automobilistica con somma dei tempi e delle manche)

thx 1000

Cricchia
13-02-2008, 09.10.52
io non vedo l'allegato :confused:

Lionsquid
13-02-2008, 12.32.23
:inn:


perdonate il rinc@glionimento :D

Lionsquid
15-02-2008, 22.26.24
up..... qualcuno ha dei suggerimenti??

Lionsquid
18-02-2008, 23.48.27
rognoso, eh?

calcolando a mano, bisestili compresi, partenza e fine compresi sono 9A 1M 29G

quindi la formula di scorporazione eseguendo anno/mese/giorno, nonostante il correttivo, è sotto di 1

mentre con la funzione data.diff è corretto

Dav82
19-02-2008, 03.49.47
Ho provato a darci un'occhiata :)

Le varie considerazioni, prove e verifiche sono nel foglio2 della cartella di lavoro ;)


Come ho scritto lì, fare la differenza fra le date restituisce il numero di giorni passati fra una data e l'altra, numero che però - nell'applicazione delle funzioni successive (più esterne) - è considerato come numero di giorni trascorsi dal 1 gennaio 1900, e quindi i risultati possono "sballare" di 1 giorno o 2, a seconda di come cadono i vari bisestili.


Scrivere una funzione che faccia quel che vuoi tu ("X anni, Y mesi, Z giorni.") funzionante in maniera corretta con qualsiasi intervallo pare complicato... bisogna tenere conto degli anni bisestili, delle differenti durate dei mesi (e, come detto, la funzione GIORNO non aiuta, quindi bisogna distinguere i vari mesi di fine intervallo)... insomma, una funzione scritta ad hoc pare la cosa più semplice... forse giochicchiando un po' con i valori stringa di giorno/mese/anno, qualche SE innestato... ma vien su un accrocchio un po' schifoso, probabilmente.


Maggiori info sulla funzione DATA.DIFF, che non è presente nell'help di Excel, si trovano nei seguenti posti:

http://support.microsoft.com/kb/625201/it => compatibilità con Lotus 1-2-3
http://www.informex.it/rarinantes/funzione_datadiff_excel.html => calcolo come il tuo (e con gli stessi problemi)
http://ennius.altervista.org/domande/dom47.htm => qualche spiegazione in più/differente



Ciao :)

Lionsquid
19-02-2008, 07.27.42
thx 1000

infatti il problema è la scelta di affibbiare un numero seriale alle date

una scelta diversa, per esempio un vero DB con i reali n. di gg per mese/anno, bisestili compresi ci avrebbe affrancato da tutto ciò


vai a vedere come "risolvono" il problema qui, la funzione proposta per la cella D1 :eek:

http://support.microsoft.com/kb/214094/it

vabbè, .... dovrò scegliere una via "semplice" sennò mi perdo e soprattutto si perdono gli altri :D