Accéder au contenu principal

Kutools for Office — Une Suite. Cinq Outils. Accomplissez Plus.

Comment trouver le premier / dernier nombre positif / négatif dans Excel ?

Author Xiaoyang Last modified

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


arrow blue right bubble 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 :

A screenshot showing a dataset to find the first positive number in Excel

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 :

A screenshot showing the result of the first positive number using an array formula in Excel

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.


arrow blue right bubbleTrouver 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 :

A screenshot showing the array formula for finding the last positive number in Excel

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 :

A screenshot showing the result of the last positive number using an array formula in Excel

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.


arrow blue right bubbleMacro 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 Run button 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 dans une ligne et retourner l'en-tête de colonne 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

🤖 Kutools AI Aide : Révolutionnez l'analyse de données avec : Exécution intelligente | Générer du code | Créer des formules personnalisées | Analyser des données et générer des graphiques | Appeler les Fonctions améliorées de Kutools
Fonctionnalités populaires : Trouver, mettre en évidence ou marquer les doublons | Supprimer les lignes vides | Combinez les colonnes ou les cellules sans perte de données | Arrondir sans formule...
Super RECHERCHEV : Recherche multi-critères | Recherche multi-valeurs | Recherche multi-feuilles | Correspondance floue...
Liste déroulante avancée : Créer rapidement une liste déroulante | Liste déroulante dépendante | Liste déroulante à sélection multiple...
Gestionnaire de colonnes : Ajouter un nombre spécifique de Colonnes | Déplacer des Colonnes | Alterner l’état de visibilité des Colonnes masquées | Comparer des plages & Colonnes...
Fonctionnalités phares : Mise au point de la grille | Affichage de conception | Barre de formule améliorée | Gestionnaire de Classeur & Feuille de calcul | Bibliothèque d’AutoTexte | Sélecteur de date | Merge Worksheets | Chiffrer/Déchiffrer les cellules | Envoyer un e-mail par liste | Super Filtre | Filtre spécial (filtrer les cellules avec une police en gras/italique/barré...)...
Top15 des ensembles d’outils :12 outils de texte (Ajouter du texte, Supprimer des caractères spécifiques, ...) |50+ Types de graphiques (Diagramme de Gantt, ...) |40+ Formules pratiques (Calculer l’âge en fonction de la date de naissance, ...) |19 outils d’insertion (Insérer un code QR, Insérer une image depuis le chemin, ...) |12 outils de conversion (Convertir en mots, Conversion de devises, ...) |7 outils de fusion & division (Fusion avancée des lignes, Diviser les cellules, ...) | ... et bien plus encore
Utilisez Kutools dans la langue de votre choix – disponible en Anglais, Espagnol, Allemand, Français, Chinois et plus de40 autres !

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.

Excel Word Outlook Tabs PowerPoint
  • 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