Come trovare il valore massimo o minimo in un intervallo di date specifico (tra due date) in Excel?
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.
➤ Trova il valore massimo o minimo in un intervallo di date specifico con formule matrice
➤ Codice VBA: Trova automaticamente il valore massimo o minimo in un intervallo di date specificato
➤ Altri metodi integrati di Excel: Usa Tabella pivot per filtrare e visualizzare max/min per intervallo di date
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.
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.
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 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:
- Come trovare la posizione del primo/ultimo numero in una stringa di testo in Excel?
- Come trovare il primo o l'ultimo venerdì di ogni mese in Excel?
- Come fare una ricerca VLOOKUP per trovare il primo, secondo o ennesimo valore di corrispondenza in Excel?
- Come trovare il valore con la frequenza più alta in un intervallo in Excel?
I 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 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.





- 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