Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sommare Anni, Mesi e Giorni, con i riporti.

4,086 views
Skip to first unread message

Nemo

unread,
May 27, 2012, 4:16:49 AM5/27/12
to
Ciao a Tutti,

ho la necessità di effettuare delle somme tra Anni, Mesi e Giorni, come
da esempio, naturalmente con i riporti tra giorni (30), mesi (12) e gli
anni:


Anni Mesi Giorni
34 8 27
1 12 4
- - - - - - - - - - -
36 3 1 Totale


Ciao,
Nemo

lorenzoeffe

unread,
May 27, 2012, 5:36:46 AM5/27/12
to
Il 27/05/2012 10:16, Nemo ha scritto:
> Anni Mesi Giorni
> 34 8 27
> 1 12 4
> - - - - - - - - - - -
> 36 3 1 Totale
prova questa, supponendo i mesi di 30 gg e i tuoi dati nel range
(a1:c3) con a1:a3 intestazione:
in A4: =SOMMA(A2:A3)+INT(SOMMA(B2:B3)/12)
in B4: =RESTO(SOMMA(B2:B3)+INT(SOMMA(C2:C3));12)
in C4: =RESTO(SOMMA(C2:C3);30)

ciao, Lo

Previ

unread,
May 27, 2012, 6:59:44 AM5/27/12
to
Ciao, ho provato io con Excel 2010, visualizza esattamente il risultato
chiesto.
Ciao. :-)


Nemo

unread,
May 27, 2012, 10:27:32 AM5/27/12
to
Grazie! Funziona, anche con Excel 2003 e Calc (OpenOffice)!!!
Fantastico!!!!!!
Lorenzo, in questi 02 giorni ho setacciato internet e devo dire che trovo
le tue Funzioni molto semplici e pratiche!

E se, invece, avessi bisogno di *sottrarre* degli Anni, Mesi e Giorni?
Esempio:
Anni Mesi Giorni
34 8 27
1 11 4
- - - - - - - - - - -
32 7 23 Totale

Grazie in anticipo.
Nemo

plinius

unread,
May 27, 2012, 10:52:52 AM5/27/12
to

"Nemo" <interpocu...@LeScarpeoccupato.it.invalid> ha scritto nel
messaggio news:4fc1e2f0$0$1377$4faf...@reader2.news.tin.it...
Veramente quella somma deve restituire 36 9 1 (e non 36 3 1)

Comunque:
col. A: =INT(SOMMA(A2:A3)+SOMMA(B2:B3)/12+SOMMA(C2:C3)/360)
col. B: =RESTO(INT(SOMMA(B2:B3)+SOMMA(C2:C3)/30);12)
col. C: =RESTO(SOMMA(C2:C3);30)

Ciao,
E.


Previ

unread,
May 27, 2012, 11:40:54 AM5/27/12
to
Il 27/05/2012 16.52, plinius ha scritto:
> Veramente quella somma deve restituire 36 9 1 (e non 36 3 1)
>
> Comunque:
> col. A: =INT(SOMMA(A2:A3)+SOMMA(B2:B3)/12+SOMMA(C2:C3)/360)
> col. B: =RESTO(INT(SOMMA(B2:B3)+SOMMA(C2:C3)/30);12)
> col. C: =RESTO(SOMMA(C2:C3);30)

In effetti, adesso restituisce per davvero il risultato corretto.
Ciao. :-)


Bruno Campanini

unread,
May 27, 2012, 11:47:50 AM5/27/12
to
plinius brought next idea :
Ferme le ambiguità derivanti dalla logica di calcolo, ambiguità non
sanabili in alcun modo poiché l'anno non è mai di 365 giorni, né il
mese è sempre di 30 giorni, il risultato dell'esempio in questione
dovrebbe essere 36, 8, 26.

Infatti solo così si ha che:
34 8 27 = 12677 giorni
1 12 4 = 729 giorni
Totale 13406 giorni

36 8 26 = 13406 giorni

avendo assunto l'anno e il mese rispettivamente di 365 e 30 giorni.

Bruno


Bruno Campanini

unread,
May 27, 2012, 12:59:09 PM5/27/12
to
Bruno Campanini has brought this to us :

> Ferme le ambiguità derivanti dalla logica di calcolo, ambiguità non sanabili
> in alcun modo poiché l'anno non è mai di 365 giorni, né il mese è sempre di
> 30 giorni, il risultato dell'esempio in questione dovrebbe essere 36, 8, 26.
>
> Infatti solo così si ha che:
> 34 8 27 = 12677 giorni
> 1 12 4 = 729 giorni
> Totale 13406 giorni
>
> 36 8 26 = 13406 giorni
>
> avendo assunto l'anno e il mese rispettivamente di 365 e 30 giorni.

In parole povere:
===============================
Public Function DateOperation(a As Long, m As Long, g As Long) As
String
Dim TotGiorni, aa, mm, gg

TotGiorni = 365 * a + 30 * m + g

aa = Int(TotGiorni / 365)
mm = Int((TotGiorni - 365 * aa) / 30)
gg = TotGiorni - aa * 365 - mm * 30

DateOperation = aa & "," & mm & "," & gg

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

Bruno


plinius

unread,
May 27, 2012, 1:21:47 PM5/27/12
to

"Bruno Campanini" <brun...@libero.it> ha scritto nel messaggio
news:4fc24ca7$0$1388$4faf...@reader2.news.tin.it...
Ciao Bruno!
Per quel che avevo capito io, non si trattava di spostare in avanti una data
(nel qual caso entrerebbero in gioco le durate dei mesi via via incontrati),
ma di sommare due quantità temporali assumendo i mesi tutti di 30 giorni).
A questo avevo risposto, ma non so se la richiesta fosse effettivamente
quella :-)
Enrico


Nemo

unread,
May 27, 2012, 2:08:10 PM5/27/12
to
Grazie a tutti, per le vostre risposte.
Devo sommare gli anni lavorativi, il più accurato possibile, poi se il
risultato varia di qualche giorno, non importa.
E nello stesso tempo devo detrarre il totale degli anni lavorativi con il
target della pensione, per ottenere il gap e cioè il periodo che manca.

In effetti, analizzando il mio esempio 1 Anno 12 Mesi e 4 Giorni, si può
scrivere anche così: 2 Anni 0 Mesi e 4 Giorni.
Ma a questo punto sorge una domanda, come faccio a sapere qual è il
risultato più giusto?
36 9 1 oppure
36 8 26
e come faccio ad ottenerlo?

2^ Domanda, non contemplata nel titolo del thread, per detrarre gli anni
basta solamente mettere un segno - (meno) al posto per segno +(più) nelle
funzioni?
Grazie a tutti,
Ciao,
Nemo

plinius

unread,
May 27, 2012, 2:25:55 PM5/27/12
to

"Nemo" <interpocu...@LeScarpeoccupato.it.invalid> ha scritto nel
messaggio news:4fc26d8a$0$1391$4faf...@reader1.news.tin.it...
data + tempo = nuova data
tempo + tempo = tempo totale
sono due cose assolutamente diverse tra loro

Se qui stiamo parlando della somma di più periodo di tempo (2^ caso) i mesi
sono tutti di 30 giorni e, quindi,
34 anni 8 mesi 27 giorni + 2 anni 0 mesi 4 giorni = 36 anni 9 mesi 1
giorno

Le formule che ti ho dato prima restituiscono questo risultato e funzionano
anche se i periodo da sommare anziché essere solo 2 fossero 10, 20 o 100.
Per ottenere la differenza al posto della somma basta inserire i dati col
segno " - ".
Nel tuo caso, se scrivessi
36 9 1
-2 0 -4
avresti come risultato 34 8 27

Mi pare che sia ciò di cui hai bisogno.

Ciao,
E.





Nemo

unread,
May 27, 2012, 3:12:48 PM5/27/12
to
On Sun, 27 May 2012 20:25:55 +0200, plinius wrote:

> data + tempo = nuova data
> tempo + tempo = tempo totale
> sono due cose assolutamente diverse tra loro
>
> Se qui stiamo parlando della somma di più periodo di tempo (2^ caso) i
> mesi sono tutti di 30 giorni e, quindi,
> 34 anni 8 mesi 27 giorni + 2 anni 0 mesi 4 giorni = 36 anni 9 mesi 1
> giorno
>
> Le formule che ti ho dato prima restituiscono questo risultato e
> funzionano anche se i periodo da sommare anziché essere solo 2 fossero
> 10, 20 o 100. Per ottenere la differenza al posto della somma basta
> inserire i dati col segno " - ".
> Nel tuo caso, se scrivessi
> 36 9 1
> -2 0 -4
> avresti come risultato 34 8 27
>
> Mi pare che sia ciò di cui hai bisogno.
>
> Ciao,
> E.

Ok, mi è chiaro il 1° caso e funziona bene (tempo+tempo+tempo ecc.)
Per il 2°, invece, mi funziona inserendo il segno " - " (meno) nel range
della somma. Esempio:

Anni Mesi Giorni
41 5 0 Requisito per pensione
38 0 26 Anni Lavorativi
3 4 4 Anni mancanti


Col. Anni) = INT(SOMMA(F2-F3)+SOMMA(G2-G3)/12+SOMMA(H2-H3)/360)
Col. Mesi) = =RESTO(INT(SOMMA(G2-G3)+SOMMA(H2-H3)/30);12)
Col. Giorni) = =RESTO(SOMMA(H2-H3);30)

Ciao,
Nemo

plinius

unread,
May 27, 2012, 3:52:35 PM5/27/12
to

"Nemo" <interpocu...@LeScarpeoccupato.it.invalid> ha scritto nel
messaggio news:4fc27cb0$0$1387$4faf...@reader1.news.tin.it...
Come ti avevo prima già detto, le formule che ti avevo proposto erano idenee
a sommare un numero indeterminato di periodi.
Scrivere F2:F60 come argomento della funzione SOMMA significa sommare
l'intero range da F1 a F60.
Ciò implica che, se alcuni termini della somma fossero negativi (cioè da
sottrarre), è su quei singoli termini che deve essere apposto il segno -
Se, diversamente, ti accontenti di formule che sommano o sottraggono due
soli addendi (2 sole righe, insomma), puoi effettivamente inserire il segno
nella formula ma, in tal caso, la funzione SOMMA diventa del tutto superflua
e basta scrivere le formule così:
Col. Anni) = INT(F2-F3+(G2-G3)/12+(H2-H3)/360)
Col. Mesi) =RESTO(INT(G2-G3+(H2-H3)/30);12)
Col. Giorni) =RESTO(H2-H3;30)

Ciao,
E.



Bruno Campanini

unread,
May 27, 2012, 8:20:28 PM5/27/12
to
Nemo presented the following explanation :
> On Sun, 27 May 2012 20:25:55 +0200, plinius wrote:

> Ok, mi è chiaro il 1° caso e funziona bene (tempo+tempo+tempo ecc.)
> Per il 2°, invece, mi funziona inserendo il segno " - " (meno) nel range
> della somma. Esempio:
>
> Anni Mesi Giorni
> 41 5 0 Requisito per pensione
> 38 0 26 Anni Lavorativi
> 3 4 4 Anni mancanti

41 5 0
-38 0 -26
---------------
3 5 -26

Fin qui non ti serve alcuna formula: basta il pallottoliere!

Quanto al risultato 3,5,-26 prova a usare le formule che ti sono state
inviate per vedere se ti corrisponde a 3,4,4.

Bruno

Nemo

unread,
May 28, 2012, 1:04:39 AM5/28/12
to
Esatto, se devo effettuare delle sottrazioni, solamente, tra 2 celle, la
funzione =somma(F2-F3) non ha senso.
Grazie mille Plinius!!!
Un cordiale saluto,
Nemo

dipi...@gmail.com

unread,
Aug 16, 2016, 11:00:27 AM8/16/16
to
Bravo, ottimo grazie!!!

mariel...@gmail.com

unread,
Feb 23, 2019, 4:02:36 PM2/23/19
to
Ma come siete complicati. ...chiedevo semplicemente la formuletta che si usava alle scuole medie,semplice semplice che non ricordo bene....ma vedo che non la conoscete. ..grazie cmq ☺

Lorenzo

unread,
Feb 24, 2019, 2:53:18 AM2/24/19
to
Il 23/02/2019 22:02, mariel...@gmail.com ha scritto:
> Ma come siete complicati. ...chiedevo semplicemente la formuletta che si usava alle scuole medie,semplice semplice che non ricordo bene....ma vedo che non la conoscete. ..grazie cmq ☺
>
emerso da dove questo post.
comunque potrebbe interessarti leggere questo articolo:
https://groups.google.com/forum/#!topic/microsoft.public.it.office.excel/YEgBcaKF4iw
ciao

Bruno Campanini

unread,
Feb 24, 2019, 10:54:06 AM2/24/19
to
mariel...@gmail.com formulated the question :
> Ma come siete complicati. ...chiedevo semplicemente la formuletta che si
> usava alle scuole medie,semplice semplice che non ricordo bene....ma vedo che
> non la conoscete. ..grazie cmq ☺

Se vuoi sommare 20g, 13m, 14a alla data del 14 OTT 2018:

=DATE(YEAR(DATEVALUE("14/10/2018"))+14,MONTH(DATEVALUE("14/10/2018"))+13,DAY(DATEVALUE("14/10/2018"))+20)

Il risultato è 04-12-2033
Se vuoi sottrarre... semplicemente cambia segno.

Se vuoi i giorni fra le due date 04/12/2033 e 14/10/2018:
=DAYS("04/12/2033","14/10/2018")
Il risultato è 5530 giorni.

Bruno

Bruno
0 new messages