Scelta della data precedente
Hai un problema con Excel? 
Scelta della data precedente
di pv78 data: 24/01/2015 10:40:27
Buongiorno a tutti e grazie anticipatamente a chi vorrà darmi una mano.
Il mio quesito è il seguente:ho un elenco di date da confrontare,e tra esse scelgo quella successiva alla data odierna.E questo è fatto.
Il punto è:come faccio a far scegliere la data precente a quella selezionata?
In pratica:rispetto alla data odierna,tra un elenco di date,vorrei scegliere quella successiva (già fatto) e quella precedente.
Cordiali saluti
di scossa data: 24/01/2015 10:57:58
cit.pv78: "scelgo quella successiva alla data odierna.E questo è fatto."
Comincia col mostrare quello che hai fatto, magari allega il file così da avere tutti chiaro il contesto in cui operare.
Una riflessione: se prima di postare la tua domanda avessi letto una richiesta uguale alla tua ma al contrario:
"vorrei scegliere quella precedente (già fatto) e quella successiva, come faccio?"
non avresti pensato: "mannagia, 'sto xxxxxx, poteva essere un po' più collaborativo e dire come ha fatto!"?
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di Mister_x (utente non iscritto) data: 24/01/2015 11:02:10
ciao
in questo caso servirebbe un tuo file per valutare come usere le funzioni adeguate in base ai tuoi dati
comunque sul mio file che posto ho utilizzato due funzioni
INDIRETTO() e CONFRONTA()
i miei dati in colonna A:A
in C1 la data di ricerca
in D1 cerco quella maggiore =INDIRETTO("A"&CONFRONTA(C1+1;A1:A23;0))
in E1 quella minore =INDIRETTO("A"&CONFRONTA(C1-1;A1:A23;0))
ciao
di Santuberto (utente non iscritto) data: 24/01/2015 12:08:28
Buongiorno Mister_X e buongiorno a tutti. Trovando molto utile l’argomento, provo ad intromettermi anch’io. Nel file allegato, la formula trova solamente la data del giorno prima e del giorno dopo. La mia esigenza, però, è che come data superiore, dorei trovare 18/01/15. E’ possibile? Grazie mille a chi mi potrà aiutare.
di Santuberto (utente non iscritto) data: 26/01/2015 05:13:25
Buongiorno a tutti. Sono in partenza (con la forte speranza di tornare prestissimo), per cui, se non darò seguito ad eventuali risposte alla mia domanda, non si scambi il mio silenzio per noncuranza. Un cordiale saluto.
di ninai (utente non iscritto) data: 26/01/2015 07:42:10
Ciao
nel caso specifico basta:
=INDIRETTO("A"&CONFRONTA(C1;A1:A23;0)+1)
ma si può fare in tanti modi, anche in base alla struttura e collocazione dei dati
di pv78 data: 26/01/2015 08:59:49
La funzione che ho usato per trovare la data successiva la trovate nel foglio alleato.....
Cordiali saluti
di Mister_x (utente non iscritto) data: 26/01/2015 10:27:22
ciao
Visto il tuo file con la funzione inserita , e fatto due prove con aggiunte di date questa tiene sempre in considerazione la data che viene dopo a quella che tu definisci
da come ho capito io la tua ricerca va fatta sulla data che viene prima e dopo a OGG() in un certo database di date, dove queste non sono in ordine di data, quindi non progressive,
o veramente quella che viene prima o dopo la data che tu metti per la ricerca.
nel mio caso ho utilizzato due funzioni da inserire in un modulo dove la prima cerca la data dopo a quella che tu immetti e la seconda quella prima
io ho utilizzato oggi() per fare in fretta ma puoi utilizzare una qualsiasi data
utilizzo
=data_dopo(OGGI();A2:A8) trova quella piu' maggiore alla data immessa
=data_prima(OGGI();A2:A8) quella piu' vicina minore alla immessa di ricerca
Date
30/04/2015
11/07/2015
09/10/2015
11/12/2014
11/06/2015
15/12/2014
24/01/2015
Dopo Prima
30/04/2015 24/01/2015
riallego il file con le funzioni inserite
ciao
Option Explicit
Function data_dopo(DataRif As Date, RangeRic As Range) As Long
Application.Volatile
Dim i As Variant
Dim Dataver As Long
Dataver = 100000
For Each i In RangeRic
If i > DataRif Then
If Dataver > i Then
Dataver = i
End If
End If
Next
data_dopo = Dataver
End Function
'''--------------------------------------------
Function data_Prima(DataRif As Date, RangeRic As Range) As Long
Application.Volatile
Dim i As Variant
Dim Dataver As Long
Dataver = 0
For Each i In RangeRic
If i < DataRif Then
If Dataver < i Then
Dataver = i
End If
End If
Next
data_Prima = Dataver
End Function
|
di scossa data: 26/01/2015 10:38:28
@pv78: nella tua tabella
Date
30/04/2015
11/07/2015
09/10/2015
11/12/2014
la data successiva ad OGGI() è 30/04/2015 e non 11/07/2015 come risulta dalla tua formula:
{=SCARTO(A$2;CONFRONTA(MIN(SE(A2:A8-OGGI()>0;A2:A8-OGGI()));(A2:A8-OGGI());0);;)}
La data successiva la puoi ottenere con:
=INDICE(A2:A8;CONFRONTA(VERO;INDICE((A2:A8)-OGGI()>0;);0);)
la precedente con:
=INDICE(A2:A8;CONFRONTA(VERO;INDICE(OGGI()-(A2:A8)>0;);0);)
entrambe NON matriciali, da confermare col semplice invio.
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di ninai (utente non iscritto) data: 26/01/2015 12:49:00
Scossa
oggi hai sprecato tu :
precedente:
=MAX(INDICE((A2:A5
successiva:
=MIN(SE((A2:A5>OGGI());A2:A5))
questa è matriciale
di ninai (utente non iscritto) data: 26/01/2015 13:00:17
=MAX(INDICE((A2:A5
di ninai (utente non iscritto) data: 26/01/2015 13:04:11
non riesco a far comparire la formula correttamente:
=MAX(INDICE((A2:A5minoreOGGI())moltiplicatoA2:A5;))
di Mister_x (utente non iscritto) data: 26/01/2015 13:14:24
ciao Ninai
da un consiglio di V.F. , anteporre uno spazio al segno di <
=MAX(INDICE((A2:A5 < OGGI())*A2:A5;))
ciao
di scossa data: 26/01/2015 13:44:06
cit. ninai: "oggi hai sprecato tu "
Se dobbiamo optare per la matriciale allora facciamolo anche per la precedente:
=MAX(SE((A2:A8 < OGGI());A2:A8))
P.S.: la mia per la data precedente è comunque sbagliata in quanto se ci fosse un 11/11/2014 in una cella prima del 11/12/2014 restituirebbe 11/11/2014
| scossa's web site |
Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno. Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw) |
di pv78 data: 27/01/2015 08:07:36
La formula non matriciale proposta funziona benissimo!
Grazie per il vostro aiuto.
Cordiali saluti
Vuoi Approfondire?