È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!

Excel Forum Per condividere esperienze su Microsoft Excel

CALCOLO DI UNA DATA SPECIFICA

  • Messaggi
  • OFFLINE
    GianlucaFabbri
    Post: 14
    Registrato il: 06/10/2013
    Città: FERRARA
    Età: 52
    Utente Junior
    excel 2007
    00 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
  • OFFLINE
    dodo47
    Post: 2.053
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    10 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
  • OFFLINE
    Marius44
    Post: 642
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    10 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
  • OFFLINE
    GianlucaFabbri
    Post: 14
    Registrato il: 06/10/2013
    Città: FERRARA
    Età: 52
    Utente Junior
    excel 2007
    00 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
  • OFFLINE
    Marius44
    Post: 643
    Registrato il: 24/06/2015
    Città: CATANIA
    Età: 80
    Utente Senior
    Excel2019
    10 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
  • OFFLINE
    GianlucaFabbri
    Post: 15
    Registrato il: 06/10/2013
    Città: FERRARA
    Età: 52
    Utente Junior
    excel 2007
    00 02/12/2018 12:57
    Perfetto.
    Adesso funziona

    Ancora grazie mille

    Buona domenica
    Gianluca
    Excel 2010
    Win 7
  • OFFLINE
    dodo47
    Post: 2.055
    Registrato il: 06/04/2013
    Utente Veteran
    2010
    00 02/12/2018 17:04
    Re:
    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
  • OFFLINE
    Ulisse1990
    Post: 250
    Registrato il: 11/07/2015
    Età: 33
    Utente Junior
    office 2013-2016
    00 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
  • 15MediaObject5,0038 3