Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Ciao Paolo,
[...]
Nel caso di una data di scadenza per la quale la differenza tra i numeri dei anni fosse maggiore di 1, o nel caso teoretico che il numero di giorni fosse negativo, la funzione restituirebbe il valore # N/D (nella mia versione inglese #N/A);
A scanso di equivoci, la funzione è intrinsecamente anche in grado di gestire scadenze negative in cui la differenza di anni (come precedentemente definita) è inferiore a 2. Per utilmente impiegare la funzione per scadenze negative di più di 365 giorni, ma sempre soggetto a la limitazione di cui sopra, sarebbe necessario:
- Sostituire la tua formula del tipo:
= SE(A2 * B2> 0; ScadenzaDifferita (A2; B2); "")
con una formula del tipo:
= SE(****(A2 * B2)> 0; ScadenzaDifferita (A2; B2); "")
'--------->>
[EDIT] Purtroppo, utilizzando la funzione che corrisponde alla funzione inglese ABS (Absolute\Assoluto) io sono stato censurato, perché, in lingua inglese, il nome della funzione italiana è un asino (ciuco), ma è utilizzato anche in inglese americano (se non fosse un contradizione in termine!) come un equivalente volgare della parola italiana culo! A questo proposito vedi anche il thread:
**http://answers.microsoft.com/it-it/office/forum/office_2007-excel/formattazione-condizionale-formula-non-funziona/96baec6f-1f75-4b07-bef9-7514d5a86b6d**Comunque, se non fosse ormai chiaro, basta sostituire gli asterischi indesiderati con A S S, senza gli spazi!
'<<---------
- nel codice della funzione ScadenzaDifferita, sostituisci
Select Case Year(myDate) - Year(DataInizio)
Case 0
If Month(myDate) > 8 And Month(DataInizio) < 8 Then
myDate = myDate + 31
End If
Case 1
If Month(myDate) > 8 Then
myDate = myDate + 31
End If
Case Is > 1, Is < 1
myDate = CVErr(xlErrNA)
GoTo XIT
End Select
con:
| Select Case Abs(Year(myDate) - Year(DataInizio)) <br><br> Case 0 <br><br> If Month(myDate) > 8 And Month(DataInizio) < 8 Then <br><br> myDate = myDate + 31 <br><br> End If <br><br> Case 1 <br><br> If Month(myDate) > 8 Then <br><br> myDate = myDate + 31 <br><br> End If <br><br>Case Is > 1 <br><br> myDate = CVErr(xlErrNA) <br><br> GoTo XIT <br><br> End Select |
|---|
Anche se il concetto di scadenze negative possa non essere utile per gli scopi attuali, io non avrei voluto 'sviarti' per quanto riguarda le potenziali capacità della funzione.
===
Regards,
Norman