Condividi tramite

Somma in DataInizio: Anni e/o Mesi e/o Giorni

Anonimo
2012-10-17T18:23:08+00:00

Salve, Community

Nel mio archivietto delle formule, ho trovato la seguente:

=SE(E(VAL.ERRORE(DATA.VALORE(DATA(ANNO(C2);2;29)));MESE(C2)<3;GIORNO(C2)>28);DATA(ANNO(C2)+D2;MESE(C2)+E2+F2;GIORNO(C2)+G2-1);DATA(ANNO(C2)+D2;MESE(C2)+E2+F2;GIORNO(C2)+G2))

dovendo sommare ad una DataInizio: anni, mese, mese e giorni, provando la predetta formula, fa proprio al caso mio, eccetto le sole incongruenza che spiego:

Premesso che le celle sono così impegnate: C2=DataInizio; D2=Anni; E2=Mesi; F2=Mesi; G2=Giorni

La formula, per quello che mi serve, funziona a meraviglia eccetto quando inserisco in C2, tre dateInizio di Gennaio ed esattamente: giorno 29, 30 e 31 di qualsiasi anno e, aggiungendo in D2 Anni 1, le scadenze invece di riportare in Scadenza il medesimo giorno maggiorato di un anno,  la formula mi restituisce in Scadenza sempre un giorno in meno e cioè 30/01 anzichè 31/01, 29/01 anzichè 30/01. 28/01 anzichè 29/01. In ultimo ho notato che quando in DataInizio - per esempio - inseriamo 31/03/2010, aggiungendo 1 Anno tutto è Ok perché dà in Scadenza 31/03/2011 ma se dovessimo aggiungere - esempio Mesi 1 - esso non va al 30/04/ ma all'01/05.

DOMANDONA: c'è qualcuno che potrebbe modificarmi la predetta formula - per me difficile -nel senso sopra spiegato**?**

Infine, specifico che,per quanto concerne il periodo critico della DataInizio di fine mese Febbraio (pre-bisestile 28, e bisestile 29), aggiungendo un Anno, la formula si comporta correttamente e non occorre apportare alcuna modifica, infatti, in Entrambi i casi, sia che in DataInizio c'è il Pre-Bisestile 28/02, che il Bisestile 29/02, + 1 Anno, le scadenze restituite sono in Entrambi i casi, sempre quelle corrette del 28/02 a.s.

Mille grazie, Enzo

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento

Risposta accettata dall'autore della domanda

Anonimo
2012-10-21T19:06:13+00:00

Salve,

Ho provato e la condizione di  cui al punto "1", non è congrua, infatti, inserendo in C2: 29/02/2012, mi restituisce 01/03/2013 anzichè 28/02/2013.

Saluti, Enzo

 

Sì mi era sfuggita questa prima parte.

Ok prova così:

=SE(O(GIORNO(C2)=31;E(GIORNO(C2)=29;MESE(C2)=2;E2=0;F2=0)); DATA(ANNO(C2)+D2;MESE(C2)+E2+F2+1;0)+G2; DATA(ANNO(C2)+D2;MESE(C2)+E2+F2;GIORNO(C2))+G2)

questa dovrebbe soddisfare le condizioni che hai posto. Se vi sono altre condizioni fai sapere.

La risposta è stata utile?

0 commenti Nessun commento

6 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2012-10-21T15:26:19+00:00

    Salve,

    Ho provato e la condizione di  cui al punto "1", non è congrua, infatti, inserendo in C2: 29/02/2012, mi restituisce 01/03/2013 anzichè 28/02/2013.

    Saluti, Enzo

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2012-10-21T12:32:40+00:00

    Prova così:

    =SE(GIORNO(C2)=31;DATA(ANNO(C2)+D2;MESE(C2)+1+E2+F2;0)+G2;DATA(ANNO(C2)+D2;MESE(C2)+E2+F2;GIORNO(C2))+G2)

    La risposta è stata utile?

    0 commenti Nessun commento
  3. Anonimo
    2012-10-20T09:54:41+00:00

    Ciao Paolo,

    Sono d’accordo con te della rilevata illogicità quando tu affermi: “Poi mi sembrerebbe più corretto che se aggiungi un anno al prebisestile dovrebbe restituire il 29/2 del bisestile (cioè il fine mese).

    Questa illogicità l’avevo anch’io rilevata al mio Ufficio e mi hanno risposto che non posso discostarmi dalle “regole d’ufficio”, e, per evitare che io debba farmi i calcoli “a mano”, ho bisogno di avere una formula che mi calcoli anche queste illogicità.

    Chiarito ciò, tu cosa mi consigli di chiudere questo Thread ed aprirne un altro, oppure specifico le mie esigenze in questo stesso Thread nella speranza che venga creata una nuova formula da mani e menti più raffinate della mia**?**

    Premesso che le celle sono così impegnate:  C2=DataInizio; D2=Anni; E2=Mesi;  F2=Mesi G2=Giorni H2=Scadenza

    Le caratteristiche che dovrebbe rispettare la formula sono le seguenti:

    1) Inserendo ANNI in D2: La Scadenza H2 deve solo restituire lo stesso giorno, lo stesso mese + l’aggiunta degli anni, tranne che per le DataInizio contenenti l’ultimo giorno di Febbraio Pre-Bisestile e Bisestile, che dovranno avere come scadenza sempre il giorno 28 (sia che ricade in un bisestile che in un pre-bisestile)

    2)       Inserendo MESI in E2 e/o F2:  il calcolo deve restituire  la stessa data di DataInizio aumentata dei mesi inseriti, esempio: DataInizio: 20/01/2012, + 1 Mese, Scadenza: 20/02/2012; 28/02/2012 + 1 Mese = 28/03/2012

    SE DataInizio contiene il giorno di Fine Mese di Febbraio  prebisestile o bisestile (28 o 29), in questi casi la scadenza sarà rispettivamente 28 o 29 del/i mese/i successivo/i; es.: 28/02/2011 + 2 Mesi = 28/04/2011;   29/02/2012 + 1 Mese = 29/03/2012

    SE DataInizio contiene il giorno di Fine Mese (30), e la scadenza contiene un fine mese di 31, essa deve restituire scadenza 30, esempio: 30/11/2012-30/12/2012

    SE DataInizio contiene il giorno di Fine Mese (31), La  Scadenza deve restituire sempre un Fine mese  (es.  31/07/2012-31/08/2012         31/10/2012-30/11/2012           31/01/2012-29/02/2012

    3)       Inserendo GIORNI in G2:  Essi vanno semplicemente aggiunti, senza alcuna regola.

    Nella speranza di ricevere questa magia, ringrazio (anche nell’ipotesi che debba continuare a farmi i calcoli “a mano”).

    Ciao Paul

    La risposta è stata utile?

    0 commenti Nessun commento
  4. Anonimo
    2012-10-19T19:23:28+00:00

    E' una formula che non ha senso.

    Nel SE esegue un triplo test ridondante, infatti se è vero che la data è il 29/2 che senso ha controllare se il mese è <3 e il giorno >28. E' ovvio che lo sono se è verificato il primo controllo.

    Poi mi sembrerebbe più corretto che se aggiungi un anno al prebisestile dovrebbe restituire il 29/2 del bisestile (cioè il fine mese).

    Io lascerei perdere.

    La risposta è stata utile?

    0 commenti Nessun commento