Discussione:
Differenza Date ... e se non ci fosse DATA.DIFF (o DATEDIFF)?
(troppo vecchio per rispondere)
casanmaner
2024-03-05 12:38:19 UTC
Permalink
Quali formule per replicare lo stesso calcolo?

Io avrei trovato (ipotizzando che le date siano presenti da riga 3):

Anni: =ANNO(B3)-ANNO(A3)-(B3<DATA(ANNO(B3);MESE(A3);GIORNO(A3)))

Mesi:
=(MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))+12*((MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))<0)

Giorni: =B3-DATA(ANNO(B3);MESE(B3)-((GIORNO(B3)<GIORNO(A3)));GIORNO(A3))


Si può fare di meglio? :)

Ai posteri l'ardua sentenza ...

ciao
Bruno Campanini
2024-03-05 13:01:40 UTC
Permalink
Post by casanmaner
Quali formule per replicare lo stesso calcolo?
Anni: =ANNO(B3)-ANNO(A3)-(B3<DATA(ANNO(B3);MESE(A3);GIORNO(A3)))
=(MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))+12*((MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))<0)
Giorni: =B3-DATA(ANNO(B3);MESE(B3)-((GIORNO(B3)<GIORNO(A3)));GIORNO(A3))
Si può fare di meglio? :)
Ai posteri l'ardua sentenza ...
Si può fare anche così:

A1 --> 10/02/1936
B1 --> 02/03/2024
C1 = B1 - A1 --> 21/01/88

Dove 88 gli anni, 01 i mesu, 21 i giorni
Le celle formattate dd/mm/yy

Bruno
casanmaner
2024-03-05 13:15:39 UTC
Permalink
Post by Bruno Campanini
Post by casanmaner
Quali formule per replicare lo stesso calcolo?
Anni:    =ANNO(B3)-ANNO(A3)-(B3<DATA(ANNO(B3);MESE(A3);GIORNO(A3)))
=(MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))+12*((MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))<0)
=B3-DATA(ANNO(B3);MESE(B3)-((GIORNO(B3)<GIORNO(A3)));GIORNO(A3))
Si può fare di meglio? :)
Ai posteri l'ardua sentenza ...
A1 --> 10/02/1936
B1 --> 02/03/2024
C1 = B1 - A1 --> 21/01/88
Dove 88 gli anni, 01 i mesu, 21 i giorni
Le celle formattate dd/mm/yy
Bruno
Non va bene Bruno.
I mesi sono 0 (zero)

Inoltre non otterresti tre distinti valori per gli anni i mesi e i giorni.
Per farlo dovresti convertire in testo e estrarre i singoli valori.
Ma il mese sarebbe comunque errato.


ciao
Bruno Campanini
2024-03-05 14:21:39 UTC
Permalink
Post by casanmaner
Post by Bruno Campanini
Post by casanmaner
Quali formule per replicare lo stesso calcolo?
Anni:    =ANNO(B3)-ANNO(A3)-(B3<DATA(ANNO(B3);MESE(A3);GIORNO(A3)))
=(MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))+12*((MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))<0)
=B3-DATA(ANNO(B3);MESE(B3)-((GIORNO(B3)<GIORNO(A3)));GIORNO(A3))
Si può fare di meglio? :)
Ai posteri l'ardua sentenza ...
A1 --> 10/02/1936
B1 --> 02/03/2024
C1 = B1 - A1 --> 21/01/88
Dove 88 gli anni, 01 i mesu, 21 i giorni
Le celle formattate dd/mm/yy
Bruno
Non va bene Bruno.
I mesi sono 0 (zero)
Hai ragione, non me n'ero accorto!
Indagherò sulla circostanza che giorni e anni sono corretti,
ma mesi no.
Post by casanmaner
Inoltre non otterresti tre distinti valori per gli anni i mesi e i giorni.
Per farlo dovresti convertire in testo e estrarre i singoli valori.
Ma il mese sarebbe comunque errato.
Be' la mia valeva come battuta valida comunque come calcolo
dei giorni totali: basta convertire il formato C1 in "General".

Bruno
Bruno Campanini
2024-03-05 18:08:38 UTC
Permalink
Post by casanmaner
Quali formule per replicare lo stesso calcolo?
Anni: =ANNO(B3)-ANNO(A3)-(B3<DATA(ANNO(B3);MESE(A3);GIORNO(A3)))
=(MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))+12*((MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))<0)
Giorni: =B3-DATA(ANNO(B3);MESE(B3)-((GIORNO(B3)<GIORNO(A3)));GIORNO(A3))
Si può fare di meglio? :)
Ai posteri l'ardua sentenza ...
Mi sono fermato alla prima:
=YEAR(B1)-YEAR(A1)-(B1>MONTH(B1-A1))
Ho fatto alcune prove (forse troppo poche)
e mi sembra funzioni come la tua.

Per le altre due... a domani.

Bruno
casanmaner
2024-03-05 18:52:34 UTC
Permalink
Post by Bruno Campanini
Post by casanmaner
Quali formule per replicare lo stesso calcolo?
Anni:    =ANNO(B3)-ANNO(A3)-(B3<DATA(ANNO(B3);MESE(A3);GIORNO(A3)))
=(MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))+12*((MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))<0)
=B3-DATA(ANNO(B3);MESE(B3)-((GIORNO(B3)<GIORNO(A3)));GIORNO(A3))
Si può fare di meglio? :)
Ai posteri l'ardua sentenza ...
=YEAR(B1)-YEAR(A1)-(B1>MONTH(B1-A1))
Ho fatto alcune prove (forse troppo poche)
e mi sembra funzioni come la tua.
Per le altre due... a domani.
Bruno
Non va bene.

10/02/1936 - 11/02/1936 restituisce -1

Metto un file per testare su tutte le date.
Aggiungi delle colonne per le tue formule in modo che si estendano in
automatico:

https://www.dropbox.com/scl/fi/ybv7sddz6fkoh219ix4wi/Differenza-Date.xlsx?rlkey=5ot85dzbgl0l3kpfloptxxyav&dl=0


ciao

p.s. ho fatto una prova con IA Gemini .... non ce la fa :)
Bruno Campanini
2024-03-06 00:08:09 UTC
Permalink
Post by casanmaner
Post by Bruno Campanini
Post by casanmaner
Quali formule per replicare lo stesso calcolo?
Anni:    =ANNO(B3)-ANNO(A3)-(B3<DATA(ANNO(B3);MESE(A3);GIORNO(A3)))
=(MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))+12*((MESE(B3)-MESE(A3)-((GIORNO(B3)<GIORNO(A3))))<0)
=B3-DATA(ANNO(B3);MESE(B3)-((GIORNO(B3)<GIORNO(A3)));GIORNO(A3))
Si può fare di meglio? :)
Ai posteri l'ardua sentenza ...
=YEAR(B1)-YEAR(A1)-(B1>MONTH(B1-A1))
Ho fatto alcune prove (forse troppo poche)
e mi sembra funzioni come la tua.
Per le altre due... a domani.
Bruno
Non va bene.
Così dovrebbe andare:
=YEAR(B1)-YEAR(A1)-(MONTH(B1)<MONTH(A1))-(MONTH(B1)=MONTH(A1)*(DAY(B1)<DAY(A1)))

Se vuoi verificare la mia UDF:
=====================================
Public Function DayDiff(DataIni As Date, DataFin As Date)
Dim y As Integer, m As Integer, d As Integer
Dim dateY As Date, dateM As Date

y = DateDiff("yyyy", DataIni, DataFin)
If DateAdd("yyyy", y, DataIni) > DataFin Then y = y - 1
dateY = DateAdd("yyyy", y, DataIni)

m = DateDiff("m", dateY, DataFin)
If DateAdd("m", m, dateY > DataFin) Then m = m - 1
dateM = DateAdd("m", m, dateY)

d = DateDiff("d", dateM, DataFin)
DayDiff = y & "," & m & "," & d & " ( " & _
DateDiff("d", DataIni, DataFin) & " gg )"

End Function
=======================================

Bruno

Continua a leggere su narkive:
Loading...