Comment trouver le premier ou le dernier nombre positif ou négatif dans Excel ?
Lorsque vous travaillez avec une colonne de nombres comprenant à la fois des valeurs positives et négatives, il vous arrive souvent de devoir repérer rapidement le premier ou le dernier nombre positif ou négatif dans la plage. Cette capacité s’avère particulièrement utile pour l’analyse de données, la détection de tendances ou l’identification précise de points d’entrée dans de grands ensembles de données. S’appuyer sur une inspection manuelle devient vite inefficace et source d’erreurs dès que les volumes augmentent. Heureusement, Excel propose plusieurs méthodes pratiques pour simplifier cette tâche, vous permettant d’extraire exactement les valeurs recherchées grâce à des formules ou à l’automatisation. Vous trouverez ci-dessous différentes solutions adaptées à divers scénarios, y compris des approches avancées idéales pour des opérations répétitives ou à grande échelle.
Trouver le premier / dernier nombre positif / négatif avec une formule matricielle
Trouver le dernier / premier nombre positif / négatif avec une formule matricielle
Macro VBA pour trouver le premier / dernier nombre positif / négatif
Trouver le premier / dernier nombre positif / négatif avec une formule matricielle
Pour extraire le premier nombre positif ou négatif d’une série de valeurs, vous pouvez utiliser les formules matricielles d’Excel. Cette méthode convient aux utilisateurs recherchant une solution rapide pour des plages de taille modérée et maîtrisant déjà les formules, notamment dans des environnements où les compléments ou macros supplémentaires sont interdits. L’approche matricielle se met automatiquement à jour dès que vos données sources changent, ce qui la rend idéale pour les listes dynamiques. Voici comment l’implémenter :
1. Sélectionnez une cellule vide et saisissez la formule matricielle suivante pour obtenir le premier nombre positif :
=INDEX(A2:A18,MATCH(TRUE,A2:A18>0,0)) Ici, A2:A18 fait référence à la liste de données que vous souhaitez parcourir. Cette formule identifie la première cellule de la plage dont la valeur est supérieure à 0, puis renvoie son contenu. Consultez la capture d’écran suivante :

2. Après avoir saisi la formule, appuyez simultanément sur Ctrl + Maj + Entrée au lieu de simplement appuyer sur Entrée. Cette combinaison exécute correctement la formule matricielle et renvoie le premier nombre positif de votre liste, comme illustré dans l’exemple ci-dessous :

Astuce :Pour récupérer à la place le premier nombre négatif, utilisez simplement cette formule (n’oubliez pas d’appuyer sur)Ctrl + Maj + Entréeaprès la saisie) :
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0)) Dans les deux formules, modifier la condition ()>0 pour les positifs, <0 pour les négatifs) vous permet de cibler précisément le type de nombre recherché. Attention : les formules matricielles ne prennent pas en charge les références à des cellules vides. Veillez donc à ce que votre plage de données soit exempte de cellules vides pour garantir des résultats fiables. Si tous les nombres sont exclusivement positifs ou négatifs, la formule risque de générer une erreur — pensez à intégrer la fonction SIERREUR pour masquer ces erreurs et afficher un message personnalisé à la place.
Remarque : Dans les versions récentes d’Excel (Office 365, Excel 2021 et ultérieures), il se peut que vous n’ayez plus besoin d’utiliser Ctrl + Maj + Entrée ; appuyer simplement sur Entrée peut suffire grâce à la prise en charge des tableaux dynamiques.
Trouver le dernier / premier nombre positif / négatif avec une formule matricielle
Si votre objectif est d’identifier la dernière valeur positive ou négative d’une colonne, vous pouvez utiliser une autre formule matricielle. Cette approche est idéale pour repérer rapidement les tendances récentes ou localiser la donnée la plus récente d’un type spécifié. Notez que cette méthode s’adapte automatiquement aux mises à jour des données, ce qui s’avère particulièrement utile lorsque vous ajoutez régulièrement de nouveaux nombres à la liste.
1. Sélectionnez une cellule vide à côté de votre colonne de données et saisissez cette formule matricielle pour identifier le dernier nombre positif :
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)) Cette formule fonctionne en exploitant le comportement de RECHERCHEV, qui renvoie la dernière correspondance numérique trouvée lorsqu’on lui fournit un nombre extrêmement élevé. Ici, SI($A$2:$A$18 >0 ; $A$2:$A$18) filtre uniquement les nombres positifs, et RECHERCHEV renvoie alors la dernière occurrence. Voir l’illustration ci-dessous :

2. Validez la formule en appuyant sur Ctrl + Maj + Entrée (sauf si votre version d’Excel prend en charge les tableaux dynamiques). Le résultat affichera la dernière valeur positive présente dans la plage limitée, comme illustré ci-dessous :

Pour renvoyer le dernier nombre négatif, utilisez plutôt la formule matricielle suivante, également avec Ctrl + Maj + Entrée:
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 <0, $A$2:$A$18)) Si aucune valeur positive ou négative n’est trouvée, la formule renvoie une erreur ()#N/A). Pour gérer ces cas avec élégance, encapsulez-la dans SIERREUR. Par exemple :
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found") Il est essentiel d’éviter les cellules fusionnées ainsi que les formats combinant texte et nombres dans votre plage, car ils peuvent fausser les résultats des calculs de formule. Vérifiez toujours l’intégrité de vos données avant d’utiliser ces méthodes afin de garantir une précision optimale.
Macro VBA pour trouver le premier / dernier nombre positif / négatif
Si vous devez fréquemment identifier le premier ou le dernier nombre positif ou négatif dans plusieurs plages ou des jeux de données très volumineux, automatiser cette tâche à l’aide d’une macro VBA peut vous faire gagner un temps considérable tout en réduisant les erreurs manuelles. Cette solution vous permet de sélectionner une plage et d’obtenir instantanément la valeur recherchée, ce qui la rend idéale pour le traitement par lots ou les tâches analytiques répétitives. L’approche VBA s’avère particulièrement utile lorsque des critères complexes ou des flux de travail personnalisés sont requis, bien qu’elle suppose une familiarité de base avec les outils de développement d’Excel.
1. Cliquez sur Développeur > Visual Basic pour ouvrir la fenêtre Microsoft Visual Basic pour Applications. Ensuite, dans l’éditeur VBA, cliquez sur Insertion > Module, puis copiez le code suivant dans le nouveau module :
Sub FindFirstOrLastPosNegNumber()
Dim rng As Range
Dim cell As Range
Dim result As Variant
Dim firstPos As Variant, firstNeg As Variant
Dim lastPos As Variant, lastNeg As Variant
Dim selType As String
On Error Resume Next
Set rng = Application.InputBox("Select the data range", "KutoolsforExcel", Selection.Address, Type:=8)
If rng Is Nothing Then Exit Sub
selType = Application.InputBox("Type 'FirstPos' for first positive, 'FirstNeg' for first negative, 'LastPos' for last positive, or 'LastNeg' for last negative:", "KutoolsforExcel", "FirstPos", Type:=2)
If selType = "" Then Exit Sub
firstPos = Empty
firstNeg = Empty
lastPos = Empty
lastNeg = Empty
' Find first positive and first negative
For Each cell In rng
If IsNumeric(cell.Value) Then
If firstPos = Empty And cell.Value > 0 Then
firstPos = cell.Value
End If
If firstNeg = Empty And cell.Value < 0 Then
firstNeg = cell.Value
End If
If cell.Value > 0 Then
lastPos = cell.Value
End If
If cell.Value < 0 Then
lastNeg = cell.Value
End If
End If
Next cell
Select Case UCase(selType)
Case "FIRSTPOS"
result = firstPos
Case "FIRSTNEG"
result = firstNeg
Case "LASTPOS"
result = lastPos
Case "LASTNEG"
result = lastNeg
Case Else
result = "Invalid input"
End Select
If IsEmpty(result) Then
MsgBox "No matching value found in the selected range.", vbInformation, "KutoolsforExcel"
Else
MsgBox "Result: " & result, vbInformation, "KutoolsforExcel"
End If
End Sub 2. Pour exécuter la macro, appuyez sur F5(ou cliquez sur le bouton)
Exécuter), puis suivez ces étapes :
- Une boîte de dialogue s’ouvrira pour vous inviter à sélectionner votre plage de nombres (par exemple, A2:A18).
- Ensuite, saisissez votre type de recherche : tapez FirstPos pour le premier nombre positif, FirstNeg pour le premier nombre négatif, LastPos pour le dernier nombre positif ou LastNeg pour le dernier nombre négatif (non sensible à la casse).
- Après avoir saisi votre choix et confirmé, le résultat s’affichera dans une boîte de message.
Conseils :
- Cette macro prend en charge toute plage contiguë de nombres sélectionnée par l’utilisateur, offrant ainsi une grande flexibilité dans l’organisation des données.
- Si le type spécifié ne correspond à aucun nombre dans la plage, vous recevrez une notification plutôt qu’une erreur.
- Assurez-vous d’avoir activé les macros dans Excel afin que le code VBA puisse fonctionner.
- Si vos données contiennent des valeurs non numériques, la macro les ignorera automatiquement lors du traitement.
Dépannage et suggestions : Pour toutes les solutions, assurez-vous toujours que votre sélection couvre bien la plage souhaitée et n’inclut pas d’en-têtes. Si vous travaillez avec de grandes plages, envisagez de les réduire afin d’éviter tout ralentissement de calcul ou de performance, en particulier avec les formules matricielles ou les macros.
Si vous effectuez souvent cette tâche ou si vous recherchez davantage de personnalisation, envisagez d’intégrer plusieurs critères dans votre macro ou de créer un bouton dédié pour un accès encore plus rapide. Sauvegardez toujours votre travail avant d’essayer de nouveaux scripts VBA, et testez-les sur des copies de sauvegarde si vous débutez en programmation.
Articles associés :
Comment trouver la première ou la dernière valeur supérieure à X dans Excel ?
Comment trouver la valeur la plus élevée et renvoyer la valeur de la cellule adjacente dans Excel ?
Comment trouver la valeur maximale ou minimale selon des critères dans Excel ?
Meilleurs outils de productivité Office
Boostez vos compétences Excel avec Kutools pour Excel et découvrez une efficacité inégalée.Kutools pour Excel propose plus de 300 fonctionnalités avancées pour améliorer votre productivité et Gagner du temps.Cliquez ici pour obtenir la fonctionnalité dont vous avez le plus besoin...
Office Tab apporte une interface à onglets à Office et rend votre travail bien plus facile
- Activez l’édition 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é de 50 % et vous fait économiser des centaines de clics de souris chaque jour !
Tous les compléments Kutools. Un seul installateur
Kutools for Office regroupe les compléments pour Excel, Word, Outlook et PowerPoint, ainsi que Office Tab Pro, ce qui en fait le choix idéal pour les équipes travaillant à travers les applications Office.
- Suite tout-en-un— Compléments Excel, Word, Outlook et PowerPoint + Office Tab Pro
- Un seul installateur, une seule licence— installation en quelques minutes (compatible MSI)
- Fonctionne mieux ensemble— productivité optimisée dans toutes les applications Office
- Essai gratuit de 30 jours avec toutes les fonctionnalités— aucune inscription, aucune carte bancaire
- Meilleur rapport qualité-prix— économisez par rapport à l’achat de compléments individuels