Skip to main content

Kutools per Office — Una Suite. Cinque Strumenti. Ottieni di Più.

Come trovare il valore massimo o minimo in un intervallo di date specifico (tra due date) in Excel?

Author Siluvia Last modified

Nell'analisi dati quotidiana, specialmente quando si lavora con registrazioni transazionali o dati temporali, potrebbe essere necessario identificare spesso il valore più alto o più basso che si verifica all'interno di un periodo specifico. Ad esempio, immagina di avere una tabella come mostrato nello screenshot qui sotto e di voler determinare il valore massimo o minimo tra due date, come dal 01/07/2016 al 01/12/2016. Questa è una richiesta comune quando si generano rapporti su periodi specifici, si confronta la performance mensile o si tracciano i picchi e le depressioni nei dati. Questo articolo ti guiderà attraverso diverse soluzioni pratiche utilizzando formule Excel, codice VBA e funzionalità integrate, aiutandoti a estrarre rapidamente e accuratamente il valore desiderato.

A screenshot showing an Excel table with dates and values to calculate max or min in a date range


Trova il valore massimo o minimo in un intervallo di date specifico con formule matrice

Un approccio semplice è usare formule matrice in Excel, che consentono di calcolare valori basati su criteri multipli, come verificare se le date rientrano nell'intervallo specificato. Questo metodo è adatto per dati di dimensioni moderate e per utenti a proprio agio con l'inserimento di formule.

Supponiamo che il tuo foglio di lavoro elenchi le date nella colonna A (A5:A17) e i valori corrispondenti nella colonna B (B5:B17), con le date di inizio e fine dell'intervallo inserite rispettivamente nelle celle B1 e D1.

1. Seleziona una cella vuota dove desideri visualizzare il risultato (ad esempio, E2).

Trovare il valore massimo tra il 01/07/2016 e il 01/12/2016:

2. Inserisci la seguente formula nella cella selezionata. Dopo averla modificata, premi Ctrl + Maiusc + Invio (non solo Invio), in modo che Excel la riconosca come una formula matrice:

=MAX(IF((A5:A17<=$D$1)*(A5:A17>=$B$1),B5:B17,""))

Questa formula verifica quali date rientrano tra la data di inizio e quella di fine, considerando solo i valori delle righe corrispondenti per calcolare il massimo.

A screenshot showing the result of finding the max value within a date range using an array formula in Excel

Trovare il valore minimo tra il 01/07/2016 e il 01/12/2016:

3. Per trovare il minimo nello stesso intervallo di date, usa un approccio simile. Inserisci la seguente formula (e conferma nuovamente con Ctrl + Maiusc + Invio):

=MIN(IF((A5:A17<=$D$1)*(A5:A17>=$B$1), B5:B17, ""))

Questa formula funziona allo stesso modo, ma restituisce il valore minimo che soddisfa i tuoi criteri di data.

A screenshot showing the result of finding the min value within a date range using an array formula in Excel

Note:

  • Negli esempi sopra, A5:A17 è l'intervallo contenente le tue date, $B$1 è la data di inizio, $D$1 è la data di fine e B5:B17 è l'intervallo di valori che desideri valutare. Modifica questi riferimenti per adattarli ai tuoi dati effettivi.
  • Assicurati che i due intervalli che fai riferimento abbiano la stessa lunghezza - altrimenti, la formula potrebbe generare errori.
  • Verifica che le voci delle date siano formattate come date e non come testo, altrimenti la formula potrebbe non funzionare come previsto.

Consigli:

  • Se stai lavorando con Office 365 o Excel 2021 e versioni successive, puoi utilizzare le funzioni MAXIFS e MINIFS per calcoli basati su criteri più semplici.
  • Se la formula restituisce inaspettatamente uno zero o una cella vuota, verifica che l'intervallo di date si sovrapponga alle date dei dati disponibili e controlla eventuali celle vuote non notate.

Codice VBA: Trova automaticamente il valore massimo o minimo in un intervallo di date specificato

Per gli utenti che gestiscono grandi insiemi di dati, hanno bisogno di ripetere spesso questo compito o cercano automazione nella creazione di report, una soluzione macro VBA può trovare efficacemente il valore massimo o minimo all'interno di un intervallo di date scelto. Con VBA, puoi invitare l'utente a selezionare gli intervalli rilevanti e impostare le date ogni volta, rendendolo ideale per applicazioni dinamiche o integrazione avanzata del flusso di lavoro.

1. Vai su Sviluppatore > Visual Basic. Nella finestra dell'editor VBA che appare, clicca Inserisci > Modulo, quindi copia e incolla il seguente codice nel nuovo modulo:

Sub FindMaxMinInDateRange_Robust()
    Dim ws As Worksheet
    Dim dateRange As Range, valueRange As Range
    Dim startCell As Range, endCell As Range
    Dim startDate As Date, endDate As Date
    Dim i As Long
    Dim d As Date, v As Variant
    Dim hasHit As Boolean
    Dim maxV As Double, minV As Double
    Const TITLE As String = "KutoolsforExcel"
    
    On Error GoTo FailFast
    
    Set ws = ActiveSheet
    
    
    Set dateRange = Application.InputBox("Select the DATE range:", TITLE, Type:=8)
    If dateRange Is Nothing Then Exit Sub
    Set valueRange = Application.InputBox("Select the VALUE range (same rows as date range):", TITLE, Type:=8)
    If valueRange Is Nothing Then Exit Sub
    
    If dateRange.Rows.Count <> valueRange.Rows.Count Then
        MsgBox "Date range and value range must have the SAME number of rows.", vbExclamation, TITLE
        Exit Sub
    End If
    
   
    Set startCell = Application.InputBox("Select START date cell:", TITLE, Type:=8)
    If startCell Is Nothing Then Exit Sub
    Set endCell = Application.InputBox("Select END date cell:", TITLE, Type:=8)
    If endCell Is Nothing Then Exit Sub
    
    If Not IsDate(startCell.Value) Or Not IsDate(endCell.Value) Then
        MsgBox "Start/End cell must contain valid dates.", vbExclamation, TITLE
        Exit Sub
    End If
    
    startDate = CDate(startCell.Value)
    endDate = CDate(endCell.Value)
 
    If startDate > endDate Then
        Dim tmp As Date
        tmp = startDate: startDate = endDate: endDate = tmp
    End If
    

    For i = 1 To dateRange.Rows.Count
        If IsDate(dateRange.Cells(i, 1).Value) Then
            d = CDate(dateRange.Cells(i, 1).Value)
            If d >= startDate And d <= endDate Then
                v = valueRange.Cells(i, 1).Value
                If IsNumeric(v) And Not IsEmpty(v) Then
                    If Not hasHit Then
                        maxV = CDbl(v): minV = CDbl(v)
                        hasHit = True
                    Else
                        If CDbl(v) > maxV Then maxV = CDbl(v)
                        If CDbl(v) < minV Then minV = CDbl(v)
                    End If
                End If
            End If
        End If
    Next i
    
    If hasHit Then
        MsgBox "Max value in range: " & maxV & vbCrLf & _
               "Min value in range: " & minV, vbInformation, TITLE
    Else
        MsgBox "No rows matched the date range (or values were non-numeric).", vbExclamation, TITLE
    End If
    Exit Sub

FailFast:
    MsgBox "Something went wrong: " & Err.Description, vbExclamation, TITLE
End Sub

2. Per eseguire la macro, clicca il Run button pulsante nell'editor VBA (o premi F5). Segui le istruzioni per selezionare gli intervalli di date e valori, e per inserire le date di inizio e fine. I valori massimi e minimi risultanti per il tuo intervallo di date specificato verranno visualizzati in una finestra di dialogo.

Consigli:

  • Assicurati che gli intervalli di date e valori selezionati contengano lo stesso numero di righe e corrispondano direttamente l'uno all'altro.
  • Questo approccio è particolarmente utile per l'elaborazione di elenchi estesi o per automatizzare calcoli ripetitivi di massimo/minimo basati su criteri variabili.
  • Se viene selezionato un intervallo vuoto o non valido, o se l'input della data non è formattato correttamente, il codice potrebbe non produrre un risultato valido - verifica attentamente le tue selezioni prima di eseguirlo.

Altri metodi integrati di Excel: Usa Tabella pivot per filtrare e visualizzare max/min per intervallo di date

Se preferisci non usare formule o codici, sfruttare la funzione Tabella pivot di Excel offre un metodo interattivo e privo di formule per filtrare i dati per data e visualizzare valori di riepilogo come massimo o minimo. Questa soluzione è adatta per gli utenti che devono esplorare i dati, generare report o modificare facilmente i criteri utilizzando un'interfaccia grafica.

1. Seleziona la tua tabella (includendo sia le date che i valori), poi vai alla scheda Inserisci e clicca Tabella pivot.

2. Nella finestra di dialogo Crea Tabella pivot, scegli dove vuoi che la Tabella pivot sia posizionata e clicca OK.

3. Nel riquadro Campi Tabella pivot, trascina il campo Data nell'area Righe e il campo Valori (quello per cui vuoi trovare max/min) nell'area Valori. Di default mostrerà Somma; clicca sul campo in Valori, scegli Impostazioni campo valore e cambia a Max o Min secondo necessità.

4. Per filtrare per un intervallo di date specifico, clicca il menu a discesa sulle etichette di riga per il campo Data, scegli Filtri data > Tra…, quindi specifica le tue date di inizio e fine (es. 01/07/2016 al 01/12/2016) e clicca OK.

La Tabella pivot ora visualizzerà il valore massimo o minimo per ciascuna data all'interno del tuo intervallo specificato. Se hai bisogno solo del singolo valore più alto o più basso in quell'intervallo, puoi filtrare ulteriormente o scansionare visivamente il risultato riepilogativo.

Note:

  • Assicurati che tutte le celle nella colonna Data siano date reali (non testo). Format misti possono causare problemi di filtro.
  • Se i dati di origine cambiano, clicca con il tasto destro sulla Tabella pivot e scegli Aggiorna per aggiornare i risultati.
  • A seconda del layout, Excel potrebbe raggruppare le date per mese/trimestre/anno. Se necessario, clicca con il tasto destro su una data nella Tabella pivot e scegli Separa gruppo (o Raggruppa… per impostare il livello desiderato).
  • Per dataset molto grandi, posizionare la Tabella pivot su un nuovo foglio di lavoro può migliorare leggibilità e prestazioni.

Consigli:

  • Aggiungi un Filtro rapido per il campo Data (Analizza Tabella pivot > Inserisci Filtro rapido) per cambiare gli intervalli in modo interattivo.
  • Hai bisogno di un singolo max/min per l'intero intervallo filtrato? Dopo aver filtrato, ordina la colonna Valori o aggiungi un secondo campo Valori e passalo a Max/Min.
  • Abbinato a un Grafico pivot per un riassunto visivo che si aggiorna con i tuoi filtri.

Questo metodo evita l'inserimento manuale di formule e consente un'interazione dinamica - ottimo per presentazioni o scenari multiutente. Per output altamente personalizzati o automazione in batch su molti fogli, considera gli approcci con formule o VBA.


Articoli correlati:

I migliori strumenti per la produttività in Office

🤖 Kutools AI Aide: Rivoluziona l’analisi dei dati grazie a: Esecuzione intelligente | Genera codice | Crea formule personalizzate | Analizza dati e crea grafici | Attiva Funzioni avanzate
Funzionalità più usate: Trova, evidenziazione o contrassegna duplicati | Elimina righe vuote | Unisci colonne o celle senza perdere dati | Arrotonda senza formula...
Super RICERCA.VERT: Ricerca VERT per criteri multipli | Ricerca VERT per valori multipli | Ricerca su più fogli | Corrispondenza approssimativa...
Elenco a discesa avanzato: Crea rapidamente un elenco a discesa | Elenco a discesa dipendente | Elenco a discesa multi-selezione...
Gestore colonne: Aggiungi un numero specifico di colonne | Sposta colonne | Cambia stato di visibilità delle colonne nascoste | Confronta intervalli & colonne...
Funzionalità in primo piano: Attenzione della griglia | Visualizzazione di progettazione | Barra delle formule avanzata | Gestore di cartelle di lavoro & fogli | Libreria AutoText | Selettore di data | Unisci dati | Crittografa/Decrittografa celle | Invia Email per elenco | Super Filtri | Filtro speciale (filtra grassetto/corsivo/barrato...)...
Top15 strumenti:12 strumenti Testo (Aggiungi testo, Elimina Caratteri Specifici, ...) |50+ tipi di grafico (Diagramma di Gantt, ...) |40+ formule pratiche (Calcola letà in base alla data di nascita, ...) |19 strumenti di inserimento (Inserisci codice QR, Inserisci Immagine da percorso, ...) |12 strumenti di conversione (Converti in parole, Conversione valuta, ...) |7 strumenti Unione & Dividi (Unione avanzata righe, Dividi celle, ...) | ... e altro ancora
Usa Kutools nella lingua che preferisci – supporta Inglese, Spagnolo, Tedesco, Francese, Cinese e oltre40 altre lingue!

Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un'efficienza mai vista prima. Kutools per Excel offre oltre300 funzionalità avanzate per aumentare la produttività e farti risparmiare tempo. Clicca qui per ottenere la funzione di cui hai più bisogno...


Office Tab porta le schede su Office e rende il tuo lavoro molto più semplice

  • Abilita la modifica e lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
  • Apri e crea più documenti in nuove schede della stessa finestra invece che in nuove finestre.
  • Aumenta la produttività del50% e riduce centinaia di clic del mouse ogni giorno!

Tutti gli add-in Kutools. Un solo programma di installazione

La suite Kutools for Office include add-in per Excel, Word, Outlook & PowerPoint più Office Tab Pro, ideale per i team che lavorano su più app di Office.

Excel Word Outlook Tabs PowerPoint
  • Suite tutto-in-uno — Add-in per Excel, Word, Outlook & PowerPoint + Office Tab Pro
  • Un solo programma di installazione, una sola licenza — configurazione in pochi minuti (pronto per MSI)
  • Funzionano meglio insieme — produttività ottimizzata su tutte le app Office
  • Prova completa30 giorni — nessuna registrazione, nessuna carta di credito
  • Massimo risparmio — costa meno rispetto all’acquisto singolo degli add-in