Come trovare il valore massimo o minimo in un intervallo di date specifico (compreso tra due date) in Excel?
Nell’uso quotidiano di Analisi dei dati, specialmente quando si lavora con registrazioni transazionali o dati storici, capita spesso di dover identificare il valore più alto o più basso registrato in un determinato periodo. Immaginate, ad esempio, di avere una tabella come quella mostrata nell’immagine seguente e di voler trovare il massimo o il minimo tra due date specifiche, ad esempio dal 1/7/2016 al 1/12/2016. Si tratta di un’esigenza ricorrente nella creazione di report su periodi definiti, nel confronto delle performance mensili o nel monitoraggio di picchi e minimi nei dati. Questo articolo presenta diverse soluzioni pratiche — basate su formule Excel, codice VBA e funzionalità integrate — per estrarre in modo rapido e preciso il valore desiderato.

➤ Trovare il massimo o Valore minimo in un determinato Intervallo di date con formule matriciali
➤ Codice VBA: Trova automaticamente il massimo o Valore minimo in un intervallo Data specifica
➤ Altri metodi integrati di Excel: utilizzare Tabella pivot per filtrare e visualizzare massimo/minimo in base a Intervallo di date
Trovare il massimo o il Valore minimo in un determinato Intervallo di date con formule matrice
Un approccio semplice consiste nell’utilizzare le formule matrice di Excel, che consentono di calcolare valori in base a criteri multipli — ad esempio, verificando se le date rientrano nel proprio intervallo limitato. Questo metodo è ideale per set di dati di dimensioni moderate e per utenti già familiarità con l’inserimento di formule.
Si supponga di avere un elenco di date nei fogli di lavoro nella colonna A (A5:A17) e i relativi valori corrispondenti nella colonna B (B5:B17), con la data iniziale e la data finale dell’intervallo inserite rispettivamente nelle celle B1 e D1.
1. Seleziona una cella vuota in cui visualizzare il risultato (ad esempio, E2).
Trovare il Valore massimo tra il 1/7/2016 e il 1/12/2016:
2. Inserisci la seguente formula nella cella selezionata. Al termine della modifica, premi Ctrl+Maiusc+Invio (e non solo Invio), affinché Excel la riconosca come formula matrice:
=MAX(IF((A5:A17=$B$1),B5:B17,"")) Questa formula identifica le date comprese tra la data iniziale e la data di fine, considerando esclusivamente i valori delle righe corrispondenti per calcolare il massimo.

Trovare il Valore minimo tra il 1/7/2016 e il 1/12/2016:
3. Per trovare il minimo nello stesso intervallo di date, utilizza un approccio analogo. Inserisci la seguente formula (e conferma nuovamente con)Ctrl+Maiusc+Invio):
=MIN(IF((A5:A17=$B$1), B5:B17, "")) Questa formula funziona allo stesso modo, ma restituisce il valore minimo che soddisfa i criteri relativi alle date.

Note:
- Negli esempi precedenti, A5:A17 è l'intervallo che contiene le date, $B$1 è la data di inizio, $D$1 è la data di fine e B5:B17 è l'intervallo dei valori da valutare. Modifica questi riferimenti in base ai tuoi dati effettivi.
- Assicurati che i due intervalli a cui fai riferimento abbiano la stessa lunghezza; altrimenti, la formula potrebbe generare errori.
- Assicurati che le date inserite siano formattate correttamente come date e non come testo, altrimenti la formula potrebbe non funzionare come previsto.
Suggerimenti:
- Se utilizzi Office 365, Excel 2021 o versioni successive, puoi sfruttare le funzioni MAXIFS e MINIFS per eseguire calcoli basati su criteri in modo più semplice.
- Se la formula restituisce inaspettatamente uno 0 o una cella vuota, assicurati che il tuo intervallo di date si sovrapponga alle date disponibili nei dati e verifica la presenza di celle vuote non rilevate.
Codice VBA: Trovare automaticamente il massimo o il Valore minimo in un intervallo Data specifica
Per gli utenti che gestiscono set di dati di grandi dimensioni, devono ripetere spesso questa operazione o desiderano automatizzare la creazione di report, una soluzione basata su macro VBA può individuare in modo efficiente il valore massimo o minimo all’interno di un intervallo di date selezionato. Grazie a VBA, è possibile richiedere all’utente di specificare ogni volta gli intervalli pertinenti e le date desiderate, rendendo questa opzione ideale per applicazioni dinamiche o integrazioni avanzate nei flussi di lavoro.
1. Passare a Sviluppo > Visual Basic. Nella finestra dell’editor VBA visualizzata, fare clic su Inserisci > Modulo, quindi copiare e incollare 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, fai clic sul pulsante
nell’editor VBA (oppure premi)F5). Segui le istruzioni per selezionare gli intervalli di date e valori e per inserire la data iniziale e la data di fine. Il valore massimo e il valore minimo corrispondenti all’intervallo di date specificato verranno visualizzati in una finestra di dialogo.
Suggerimenti:
- Assicurati che gli intervalli selezionati per date e valori abbiano lo stesso numero di righe e corrispondano perfettamente tra loro.
- Questo approccio è particolarmente efficace per gestire elenchi estesi o automatizzare calcoli ripetitivi di massimo e minimo in base a criteri variabili.
- Se si seleziona un intervallo vuoto o non valido, oppure se la data inserita non è formattata correttamente, il codice potrebbe non restituire un risultato valido. Controlla attentamente le tue selezioni prima di procedere.
Altri metodi integrati di Excel: Usare una tabella pivot per filtrare e visualizzare massimo/minimo per Intervallo di date
Se preferisci evitare formule o codice, la funzionalità Tabella pivot di Excel offre un metodo interattivo e privo di formule per filtrare i dati per data e visualizzare valori di sintesi come il massimo o il minimo. Questa soluzione è ideale per chi deve esplorare i dati, generare rapporti o modificare facilmente i criteri tramite un’interfaccia grafica.
1. Seleziona la tua tabella (inclusi date e valori), poi vai alla scheda Inserisci e fai clic su Tabella pivot.
2. Nella finestra di dialogo Crea tabella pivot, scegli dove posizionare la tabella pivot e fai clic su OK.
3. Nel riquadro Campi tabella pivot, trascina il campo Data nell’area Righe e il campo Valori (quello per cui desideri trovare il massimo o il minimo) nell’area Valori. Per impostazione predefinita verrà visualizzata la Somma; fai clic sul campo in Valori, scegli Impostazioni campo e imposta su Max o Min a seconda delle tue esigenze.
4. Per filtrare in base a uno specifico intervallo di date, fai clic sulla freccia a discesa delle etichette di riga per il campo Data, scegli Filtri data > Tra…, quindi specifica la data iniziale e quella finale (ad esempio,)2016/7/1 a 2016/12/1) e fai clic su OK.
La tabella pivot mostrerà ora il valore massimo o minimo per ciascuna data inclusa nel proprio intervallo limitato. Se invece si desidera identificare il singolo valore più alto o più basso nell’intero intervallo, è possibile applicare filtri aggiuntivi oppure esaminare visivamente il risultato riepilogato.
Note:
- Assicurati che tutte le celle nella colonna Date contengano date reali (non testo). Formati misti potrebbero far sì che alcune righe vengano escluse dai filtri.
- Se i dati di origine cambiano, fai clic con il pulsante destro del mouse sulla tabella pivot e scegli Aggiorna per aggiornare i risultati.
- A seconda del layout, Excel potrebbe raggruppare automaticamente le date per mese, trimestre o anno. Se necessario, fai clic con il pulsante destro del mouse su una data nella tabella pivot e scegli Separa(oppure)Raggruppa… per impostare il livello desiderato).
- Con set di dati molto grandi, posizionare la tabella pivot su un nuovo foglio di lavoro migliora leggibilità e prestazioni.
Suggerimenti:
- Aggiungi un taglioper il campo Data (Analisi tabella pivot >)Inserisci taglio) per modificare gli intervalli in modo interattivo.
- Hai bisogno del valore massimo o minimo sull’intero intervallo filtrato? Dopo aver applicato il filtro, ordina la colonna Valori oppure aggiungi un secondo campo Valori e impostalo su Max/Min.
- Associa un Grafico pivot per ottenere un riepilogo visivo che si aggiorna automaticamente non appena applichi i filtri.
Questo metodo elimina la necessità di inserire manualmente le formule e offre un’interazione dinamica, perfetta per presentazioni o contesti con più utenti. Per output altamente personalizzati o automazione batch su numerosi fogli, si consiglia di utilizzare formule o approcci VBA.
Articoli correlati:
- Come trovare la posizione del primo o dell’ultimo numero all’interno di una stringa di testo in Excel?
- Come trovare il primo o l’ultimo venerdì di ogni mese in Excel?
- Come cercare con CERCA.VERT il primo, il secondo o l’n-esimo valore corrispondente in Excel?
- Come trovare il valore con la frequenza più alta in un intervallo in Excel?
Migliori Strumenti per la Produttività in Office
Potenzia le tue competenze in Excel con Kutools per Excel e sperimenta un’efficienza mai vista prima.Kutools per Excel offre oltre 300 funzionalità avanzate per aumentare la produttività e Risparmia tempo.Clicca qui per ottenere la funzionalità di cui hai più bisogno...
Office Tab Porta l'interfaccia a schede in Office e rende il tuo lavoro molto più semplice
- Abilita la modifica e la lettura a schede in Word, Excel, PowerPoint, Publisher, Access, Visio e Project.
- Apri e crea più documenti in nuove schede all’interno della stessa finestra, invece che in finestre separate.
- Aumenta la tua produttività del 50 % e risparmia centinaia di clic del mouse ogni giorno!
Tutti i componenti aggiuntivi di Kutools in un unico programma di installazione.
Kutools for Office è la suite che include componenti aggiuntivi per Excel, Word, Outlook e PowerPoint, oltre a Office Tab Pro: la soluzione ideale per i team che lavorano su diverse app di Office.
- Suite completa— componenti aggiuntivi per Excel, Word, Outlook e PowerPoint + Office Tab Pro
- Un unico programma di installazione, una sola licenza— configurazione in pochi minuti (pronto per MSI)
- Funziona meglio insieme— produttività ottimizzata tra le app di Office
- Prova gratuita di 30 giorni con tutte le funzionalità— nessuna registrazione, nessuna carta di credito
- Miglior rapporto qualità-prezzo— risparmia rispetto all’acquisto dei singoli componenti aggiuntivi