| | Post: 14 | Registrato il: 06/10/2013
| Città: FERRARA | Età: 52 | Utente Junior | excel 2007 | | OFFLINE | |
|
02/12/2018 11:30 | |
Ciao a tutti
Come sempre vi ringrazio anticipatamente per la vostra disponibilità e bravura in materia.
Ho bisogno di un vostro aiuto per calcolare automaticamente una scadenza temporale in un foglio excel che allego.
Praticamente io carico in una specifica data riportata nella colonna A una serie di dati suddivisi per le tipologie MELE, PERE e FRAGOLE. E non sempre per tutte le date.
Il problema nasce nella casella sopra ogni tipologia (riga nominata prox scad.), dove la formula da inserire (che non conosco) deve ridarmi una data che corrisponda a quella dell'ultimo inserimento dati della tipologia sottostante ma ad un anno di distanza (come riportato nell'esempio).
Ovviamente quella scadenza si aggiornerà ogni volta che vado ad inserire nuove date e nuovi dati.
Spero di essermi spiegato bene.
Grazie
Gianluca Excel 2010
Win 7 |
|
| | Post: 2.053 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
02/12/2018 11:50 | |
ciao
in B2 da trascinare a destra:
=DATA(ANNO(MAX(SE(B4:B11<>"";$A$4:$A$11)))+1;MESE(MAX(SE(B4:B11<>"";$A$4:$A$11)));GIORNO(MAX(SE(B4:B11<>"";$A$4:$A$11))))
MATRICIALE
Nota: se la data rilevata è il 29 di un anno bisestile, avrai come risultato il 1/3 dell'anno successivo
Ci deve essere almeno 1 valore nelle col b-c-d
[Modificato da dodo47 02/12/2018 11:55] Domenico
Win 10 - Excel 2016 |
| | Post: 642 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
02/12/2018 12:16 | |
Ciao
In alternativa all'ottimo suggerimento di dodo (una caro saluto) puoi provare con questa macro
Option Explicit
Sub LastDate()
Dim ur As Long, uc As Long, i As Long, j As Long
Dim giorno As Integer, mese As Integer, anno As Integer
ur = Cells(Rows.Count, 1).End(xlUp).Row
uc = Cells(3, Columns.Count).End(xlToLeft).Column
For j = 2 To uc
For i = ur To 4 Step -1
If Cells(i, j) <> "" Then
giorno = Day(Cells(i, 1).Value)
mese = Month(Cells(i, 1).Value)
anno = Year(Cells(i, 1).Value)
anno = anno + 1
Cells(2, j) = Format(giorno & "/" & mese & "/" & anno, "mm/dd/yyyy")
Exit For
End If
Next i
Next j
End Sub
Fai sapere. Ciao,
Mario |
| | Post: 14 | Registrato il: 06/10/2013
| Città: FERRARA | Età: 52 | Utente Junior | excel 2007 | | OFFLINE | |
|
02/12/2018 12:38 | |
Grazie x la celere risposta ad entrambi
x Dodo
Ho inserito la formula come suggerito ma mi restituisce #VALORE!
Ho controllato e i dati riportati nella formula coprono le giuste colonne di calcolo.
??
x Marius44
Uso Excel originale su Mac e mi è già successo che le macro non rispondessero più alle impostazioni iniziali. Se riesco preferisco usare le formule. Grazie comunque del suggerimento.
Excel 2010
Win 7 |
| | Post: 643 | Registrato il: 24/06/2015
| Città: CATANIA | Età: 80 | Utente Senior | Excel2019 | | OFFLINE |
|
02/12/2018 12:42 | |
Ciao
immodestamente rispondo al posto di Doco
Guarda che è una formula MATRICIALE, quindi da confermare con Ctrl+Shift+Enter
Ciao,
Mario |
| | Post: 15 | Registrato il: 06/10/2013
| Città: FERRARA | Età: 52 | Utente Junior | excel 2007 | | OFFLINE | |
|
02/12/2018 12:57 | |
Perfetto.
Adesso funziona
Ancora grazie mille
Buona domenica
Gianluca Excel 2010
Win 7 |
| | Post: 2.055 | Registrato il: 06/04/2013
| Utente Veteran | 2010 | | OFFLINE |
|
02/12/2018 17:04 | |
Grazie Mario....
GianlucaFabbri, 02/12/2018 12.57:
Perfetto.
Adesso funziona
eppure era scritto in rosso, maiuscolo e sottolineato!!!
saluti
Domenico
Win 10 - Excel 2016 |
| | Post: 250 | Registrato il: 11/07/2015
| Età: 33 | Utente Junior | office 2013-2016 | | OFFLINE | |
|
02/12/2018 18:58 | |
Buona Sera
B2=DATA.MESE(MAX(SE($B$3:$D$3=B$3;SE(B$4:B$100<>"";$A$4:$A$100)));12)
Control+Shift+ Enter trascina a destra formatta come data
Saluti
|
|
|