Comment trouver le premier / dernier nombre positif / négatif dans Excel ?
Lorsque vous travaillez avec une colonne de nombres contenant à la fois des valeurs positives et négatives, vous pouvez souvent avoir besoin de localiser rapidement le premier ou le dernier nombre positif ou négatif dans la plage. Cela peut être particulièrement utile pour l'analyse de données, la détection de tendances ou l'identification de points d'entrée spécifiques dans de grands ensembles de données. S'appuyer sur une inspection manuelle pour de grands ensembles de données est inefficace et sujet aux erreurs. Heureusement, Excel propose plusieurs méthodes pratiques pour rationaliser cette tâche, vous permettant d'extraire les valeurs précises dont vous avez besoin avec des formules ou de l'automatisation. Ci-dessous, vous trouverez plusieurs solutions adaptées à différents scénarios, y compris des approches avancées idéales pour des opérations répétées ou à grande échelle.
Trouver le premier nombre positif / négatif avec une formule matricielle
Trouver le dernier nombre positif / négatif avec une formule matricielle
Macro VBA pour trouver le premier / dernier nombre positif / négatif
Trouver le premier 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 qui ont besoin d'une solution rapide pour des plages de données modérées et qui sont à l'aise avec les formules, surtout dans des environnements où des modules complémentaires ou macros supplémentaires sont restreints. L'approche par tableau se met automatiquement à jour si vos données sources changent, ce qui la rend bien adaptée aux listes dynamiques. Voici comment vous pouvez l'implémenter :
1. Sélectionnez une cellule vide, entrez 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 localise la première cellule dans la plage avec une valeur supérieure à 0, puis renvoie le contenu de cette cellule. Voir la capture d'écran suivante :
2. Après avoir tapé la formule, appuyez simultanément sur Ctrl + Maj + Entrée, au lieu de simplement appuyer sur Entrée. Cela exécutera correctement la formule matricielle et retournera le premier nombre positif de votre liste, comme illustré dans l'exemple ci-dessous :
Conseil : Pour récupérer le premier nombre négatif à la place, utilisez simplement cette formule (n'oubliez pas d'appuyer sur Ctrl + Maj + Entrée après avoir tapé) :
=INDEX(A2:A18,MATCH(TRUE,A2:A18<0,0))
Dans les deux formules, changer la condition (>0
pour positif, <0
pour négatif) vous permet de cibler le type de nombre requis. Veuillez noter que les formules matricielles ne prennent pas en charge les références de cellules vides, alors assurez-vous que votre plage de données ne contient pas de cellules vides pour des résultats cohérents. Si tous les nombres sont soit positifs, soit négatifs, la formule peut retourner une erreur - envisagez d'ajouter une fonction SIERREUR
si vous souhaitez supprimer les erreurs et afficher un message personnalisé.
Remarque : Dans les versions récentes d'Excel (Office 365 et Excel 2021 et versions ultérieures), vous n'avez peut-être pas besoin d'utiliser Ctrl + Maj + Entrée ; il suffit d'appuyer sur Entrée car les tableaux dynamiques sont pris en charge.
Trouver le dernier nombre positif / négatif avec une formule matricielle
Si votre objectif est d'identifier la dernière valeur positive ou négative dans une colonne, vous pouvez utiliser une autre formule matricielle. Cette approche convient pour analyser rapidement les tendances finales ou pour localiser le point de données le plus récent d'un type spécifique. Notez que cette méthode reflète dynamiquement les mises à jour des données, ce qui est 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 entrez cette formule matricielle pour trouver le dernier nombre positif :
=LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18))
Cette formule fonctionne en exploitant RECHERCHE
qui renvoie la dernière correspondance numérique trouvée pour un nombre extrêmement grand. Ici, SI($A$2:$A$18 >0, $A$2:$A$18)
filtre uniquement les nombres positifs, et RECHERCHE
renvoie ensuite la dernière occurrence. Voir cela illustré ci-dessous :
2. Confirmez 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 spécifiée, comme démontré ci-dessous :
Pour retourner 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 aucun nombre positif ou négatif n'est trouvé, la formule retournera une erreur (#N/A
). Pour gérer ces cas avec élégance, enveloppez la formule dans SIERREUR
. Par exemple :
=IFERROR(LOOKUP(9.99999999999999E+307, IF($A$2:$A$18 >0, $A$2:$A$18)), "No match found")
Il est important d'éviter les cellules fusionnées ou les formats combinés texte/nombre dans votre plage, car ils peuvent perturber les résultats de calcul de la formule. Vérifiez toujours l'intégrité de vos données avant d'utiliser ces méthodes pour une meilleure précision.
Macro VBA pour trouver le premier / dernier nombre positif / négatif
Si vous avez fréquemment besoin de trouver le premier ou le dernier nombre positif ou négatif dans plusieurs plages ou très grands ensembles de données, automatiser cette tâche avec une macro VBA peut faire gagner du temps et réduire les erreurs manuelles. Cette solution vous permet de rechercher une plage sélectionnée et de récupérer instantanément la valeur requise, ce qui est idéal pour le traitement par lots ou les tâches analytiques répétitives. L'approche VBA est particulièrement utile dans des scénarios où des critères complexes ou des flux de travail personnalisés sont nécessaires, bien qu'elle nécessite une familiarité de base avec les outils Développeur 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, et 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 ), et suivez ces étapes :
- Une boîte de dialogue vous invitera à sélectionner votre plage de nombres (par exemple, A2:A18).
- Ensuite, entrez 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 entré votre choix et confirmé, le résultat sera affiché dans une boîte de message.
Conseils :
- Cette macro peut gérer n'importe quelle plage de nombres contigus sélectionnée par l'utilisateur, offrant ainsi une flexibilité dans la disposition des données.
- Si le type spécifié ne correspond à aucun nombre dans la plage, vous recevrez une notification au lieu d'une erreur.
- Assurez-vous que les macros sont activées dans votre Excel pour que le code VBA fonctionne.
- Si vos données incluent des valeurs non numériques, la macro les ignorera pendant le traitement.
Dépannage et suggestions : Pour toutes les solutions, assurez-vous toujours que votre sélection contient la plage prévue et n'inclut pas les en-têtes. Si vous utilisez de grandes plages, envisagez de limiter la taille pour éviter les retards de calcul ou de performance, surtout lors de l'utilisation de formules matricielles ou de macros.
Si vous vous retrouvez souvent à effectuer cette tâche ou souhaitez plus de personnalisation, envisagez de combiner plusieurs critères dans votre macro ou de créer un bouton dédié pour un accès plus facile. Sauvegardez toujours votre travail avant d'essayer de nouveaux scripts VBA et testez-les sur des copies de sauvegarde si vous êtes novice en programmation.
Articles connexes :
Comment trouver la première / dernière valeur supérieure à X dans Excel ?
Comment trouver la valeur la plus élevée et retourner la valeur de la cellule adjacente dans Excel ?
Comment trouver la valeur maximale ou minimale basée sur des critères 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