Comment trouver la valeur maximale ou minimale dans une plage de dates spécifique (entre deux dates) dans Excel ?
Dans l'analyse de données quotidienne, en particulier lorsqu'on travaille avec des enregistrements transactionnels ou des données chronologiques, il est souvent nécessaire d'identifier la valeur la plus élevée ou la plus basse qui se produit dans une période spécifique. Par exemple, imaginez que vous avez un tableau comme celui illustré dans la capture d'écran ci-dessous, et vous souhaitez déterminer la valeur maximale ou minimale entre deux dates — comme du 01/07/2016 au 01/12/2016. C'est une exigence courante lors de la génération de rapports sur des périodes spécifiques, en comparant les performances mensuelles ou en suivant les pics et les creux dans les données. Cet article vous guidera à travers plusieurs solutions pratiques utilisant des formules Excel, du code VBA et des fonctionnalités intégrées, vous aidant à extraire rapidement et précisément la valeur dont vous avez besoin.
➤ Trouver la valeur maximale ou minimale dans une plage de dates spécifique avec des formules matricielles
➤ Code VBA : Trouver automatiquement la valeur maximale ou minimale dans une plage de dates spécifiée
➤ Autres méthodes Excel intégrées : Utiliser un Tableau croisé dynamique pour filtrer et afficher le max/min par plage de dates
Trouver la valeur maximale ou minimale dans une plage de dates spécifique avec des formules matricielles
Une approche simple consiste à utiliser des formules matricielles dans Excel, qui vous permettent de calculer des valeurs en fonction de plusieurs critères — comme vérifier si des dates se situent dans votre plage spécifiée. Cette méthode convient aux données de taille modérée et aux utilisateurs à l'aise avec l'entrée de formules.
Supposons que votre feuille de calcul liste des dates dans la colonne A (A5:A17) et les valeurs correspondantes dans la colonne B (B5:B17), avec les dates de début et de fin de la plage entrées respectivement dans les cellules B1 et D1.
1. Sélectionnez une cellule vide où vous souhaitez afficher le résultat (par exemple, E2).
Trouver la valeur maximale entre le 01/07/2016 et le 01/12/2016 :
2. Entrez la formule suivante dans la cellule sélectionnée. Après modification, appuyez sur Ctrl + Shift + Entrée (pas seulement Entrée), afin qu'Excel la reconnaisse comme une formule matricielle :
=MAX(IF((A5:A17<=$D$1)*(A5:A17>=$B$1),B5:B17,""))
Cette formule vérifie quelles dates se situent entre vos dates de début et de fin, et ne prend en compte que les valeurs des lignes correspondantes pour calculer le maximum.
Trouver la valeur minimale entre le 01/07/2016 et le 01/12/2016 :
3. Pour trouver le minimum dans la même plage de dates, utilisez une approche similaire. Entrez la formule suivante (et encore une fois, confirmez avec Ctrl + Shift + Entrée) :
=MIN(IF((A5:A17<=$D$1)*(A5:A17>=$B$1), B5:B17, ""))
Cette formule fonctionne de la même manière, mais renvoie la valeur minimale qui correspond à vos critères de date.
Notes :
- Dans les exemples ci-dessus, A5:A17 est la plage contenant vos dates, $B$1 est la date de début, $D$1 est la date de fin, et B5:B17 est la plage de valeurs que vous souhaitez évaluer. Ajustez ces références pour qu'elles correspondent à vos données réelles.
- Assurez-vous que les deux plages que vous référencez ont la même longueur — sinon, la formule peut générer des erreurs.
- Vérifiez bien que vos entrées de date sont formatées en tant que dates, pas en tant que texte, sinon la formule pourrait ne pas fonctionner comme prévu.
Conseils :
- Si vous travaillez avec Office 365 ou Excel 2021 et versions ultérieures, vous pouvez utiliser les fonctions MAXIFS et MINIFS pour des calculs basés sur des critères plus simples.
- Si la formule renvoie 0 ou laisse une cellule vide de manière inattendue, vérifiez que votre plage de dates chevauche les dates des données disponibles et vérifiez s'il n'y a pas de cellules vides non remarquées.
Code VBA : Trouver automatiquement la valeur maximale ou minimale dans une plage de dates spécifiée
Pour les utilisateurs traitant de grands ensembles de données, ayant besoin de répéter cette tâche souvent, ou cherchant à automatiser la génération de rapports, une solution macro VBA peut efficacement trouver la valeur maximale ou minimale dans une plage de dates choisie. Avec VBA, vous pouvez inviter l'utilisateur à sélectionner les plages pertinentes et définir les dates à chaque fois, ce qui est idéal pour des applications dynamiques ou une intégration avancée de flux de travail.
1. Allez dans Développeur > Visual Basic. Dans la fenêtre de l'éditeur VBA qui apparaît, cliquez sur Insérer > Module, puis copiez-collez le code suivant dans le nouveau module :
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. Pour exécuter la macro, cliquez sur le bouton dans l'éditeur VBA (ou appuyez sur F5). Suivez les invites pour sélectionner les plages de dates et de valeurs, et pour entrer les dates de début et de fin. Les valeurs maximales et minimales résultantes pour votre intervalle de dates spécifié seront affichées dans une boîte de dialogue.
Conseils :
- Assurez-vous que les plages de dates et de valeurs sélectionnées contiennent le même nombre de lignes et correspondent directement l'une à l'autre.
- Cette approche est particulièrement utile pour traiter des listes étendues ou pour automatiser des calculs répétitifs de maximum/minimum basés sur des critères changeants.
- Si une plage vide ou invalide est sélectionnée, ou si la saisie de date n'est pas correctement formatée, le code risque de ne pas produire de résultat valide — revérifiez vos sélections avant de l'exécuter.
Autres méthodes Excel intégrées : Utilisez un Tableau croisé dynamique pour filtrer et afficher le max/min par plage de dates
Si vous préférez ne pas utiliser de formules ou de code, exploiter la fonctionnalité Tableau croisé dynamique d'Excel offre une méthode interactive et sans formule pour filtrer les données par date et afficher des valeurs récapitulatives telles que le maximum ou le minimum. Cette solution convient aux utilisateurs qui doivent explorer les données, générer des rapports ou ajuster facilement les critères à l'aide d'une interface graphique.
1. Sélectionnez votre tableau (y compris les dates et les valeurs), puis allez dans l'onglet Insertion et cliquez sur Tableau croisé dynamique.
2. Dans la boîte de dialogue Créer un Tableau croisé dynamique, choisissez où vous souhaitez placer le Tableau croisé dynamique, puis cliquez sur OK.
3. Dans le volet Champs du Tableau croisé dynamique, faites glisser le champ Date vers la zone Lignes, et le champ Valeurs (celui pour lequel vous souhaitez trouver le max/min) vers la zone Valeurs. Par défaut, il affichera la Somme ; cliquez sur le champ dans Valeurs, choisissez Paramètres du champ de valeur, et changez-le en Max ou Min selon les besoins.
4. Pour filtrer par une plage de dates spécifique, cliquez sur le menu déroulant des étiquettes de ligne pour le champ Date, choisissez Filtres de date > Entre…, puis spécifiez vos dates de début et de fin (par exemple, du 01/07/2016 au 01/12/2016) et cliquez sur OK.
Le Tableau croisé dynamique affichera maintenant la valeur maximale ou minimale pour chaque date dans votre plage spécifiée. Si vous avez besoin uniquement de la valeur la plus élevée ou la plus basse sur cette plage, vous pouvez filtrer davantage ou parcourir visuellement le résultat récapitulatif.
Notes :
- Assurez-vous que toutes les cellules de la colonne Date soient des dates réelles (pas du texte). Des formats mixtes peuvent empêcher les filtres de prendre en compte certaines lignes.
- Si les données sources changent, faites un clic droit sur le Tableau croisé dynamique et choisissez Actualiser pour mettre à jour les résultats.
- Selon votre disposition, Excel peut regrouper les dates par mois/trimestre/année. Si nécessaire, faites un clic droit sur une date dans le Tableau croisé dynamique et choisissez Dissocier (ou Grouper… pour définir un niveau souhaité).
- Pour les très grands ensembles de données, placer le Tableau croisé dynamique sur une nouvelle feuille de calcul peut améliorer la lisibilité et les performances.
Conseils :
- Ajoutez un segment pour le champ Date (Analyser le Tableau croisé dynamique > Insérer un segment) pour modifier les plages de manière interactive.
- Besoin d'un seul max/min sur toute la plage filtrée ? Après avoir filtré, triez la colonne Valeurs ou ajoutez un second champ Valeurs et basculez-le sur Max/Min.
- Associez cela à un Graphique croisé dynamique pour un résumé visuel qui se met à jour avec vos filtres.
Cette méthode évite la saisie manuelle de formules et permet une interaction dynamique — excellente pour les présentations ou les scénarios multi-utilisateurs. Pour des sorties hautement personnalisées ou une automatisation par lots sur plusieurs feuilles, envisagez les approches par formules ou VBA.
Articles connexes :
- Comment trouver la position du premier/dernier nombre dans une chaîne de texte dans Excel ?
- Comment trouver le premier ou le dernier vendredi de chaque mois dans Excel ?
- Comment utiliser la fonction RECHERCHEV pour trouver la première, deuxième ou nième valeur correspondante dans Excel ?
- Comment trouver la valeur avec la fréquence la plus élevée dans une plage dans Excel ?
Meilleurs outils de productivité pour Office
Améliorez vos compétences Excel avec Kutools pour Excel, et découvrez une efficacité incomparable. Kutools pour Excel propose plus de300 fonctionnalités avancées pour booster votre productivité et gagner du temps. Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte l’interface par onglets à Office, simplifiant considérablement votre travail.
- Activez la modification et la lecture par onglets dans Word, Excel, PowerPoint, Publisher, Access, Visio et Project.
- Ouvrez et créez plusieurs documents dans de nouveaux onglets de la même fenêtre, plutôt que dans de nouvelles fenêtres.
- Augmente votre productivité de50 % et réduit des centaines de clics de souris chaque jour !
Tous les modules complémentaires Kutools. Une seule installation
La suite Kutools for Office regroupe les modules complémentaires pour Excel, Word, Outlook & PowerPoint ainsi qu’Office Tab Pro, idéal pour les équipes travaillant sur plusieurs applications Office.





- Suite tout-en-un — modules complémentaires Excel, Word, Outlook & PowerPoint + Office Tab Pro
- Un installateur, une licence — installation en quelques minutes (compatible MSI)
- Une synergie optimale — productivité accélérée sur l’ensemble des applications Office
- Essai complet30 jours — sans inscription, ni carte bancaire
- Meilleure valeur — économisez par rapport à l’achat d’add-ins individuels