Accéder au contenu principal

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

Comment rechercher la première valeur non nulle et renvoyer l'en-tête de colonne correspondant dans Excel ?

Author Xiaoyang Last modified

Lorsque vous travaillez avec des données dans Excel, il est courant de devoir identifier la position de la première entrée non nulle dans une ligne et d'afficher l'en-tête de colonne associé. Par exemple, dans un jeu de données où chaque ligne représente un élément ou une personne différente et les colonnes représentent des périodes ou des catégories, vous pourriez vouloir savoir quand une valeur apparaît pour la première fois pour chaque ligne. Vérifier manuellement chaque ligne pour la première valeur non nulle peut être chronophage, surtout lorsque la taille des données augmente. Automatiser ce processus de recherche améliore non seulement l'efficacité mais réduit également les erreurs, rendant vos analyses plus fiables. Cet article explique plusieurs méthodes pratiques pour atteindre cet objectif, de l'utilisation de formules Excel polyvalentes à l'emploi de macros VBA particulièrement utiles pour les grands jeux de données ou les rapports récurrents.

lookup first non-zero value and return corresponding column header


arrow blue right bubble Rechercher la première valeur non nulle et renvoyer l'en-tête de colonne correspondant avec une formule

Pour identifier efficacement l'en-tête de colonne dans une ligne donnée où apparaît la première valeur non nulle, vous pouvez utiliser une formule Excel intégrée. Cette approche convient particulièrement aux petits et moyens ensembles de données où le recalcul en temps réel et la simplicité de configuration sont importants.

1. Sélectionnez une cellule vide pour afficher le résultat ; dans cet exemple, la cellule K2 est utilisée.

=INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0))

2. Après avoir saisi la formule, appuyez sur Entrée pour confirmer. Ensuite, sélectionnez K2 et utilisez la poignée de recopie pour faire glisser la formule vers le bas afin de l'appliquer au reste des lignes si nécessaire.

use a formula to lookup first non-zero value and return corresponding column header

Remarque : Dans la formule ci-dessus, B1:I1 fait référence à la plage d'en-têtes de colonnes que vous souhaitez renvoyer, et B2:I2 est la ligne de données que vous analysez pour la première valeur non nulle.

Si vos données commencent dans des colonnes ou des lignes différentes, n'oubliez pas d'ajuster les plages de formules en conséquence. De plus, cette formule fonctionne efficacement tant qu'il y a au moins une valeur non nulle dans chaque ligne analysée ; si toutes les valeurs sont nulles, la formule renverra une erreur. Dans ces cas, envisagez d'inclure la formule dans IFERROR comme ceci : =IFERROR(INDEX($B$1:$I$1,MATCH(TRUE,INDEX(B2:I2<>0,),0)),"Aucune valeur non nulle") pour renvoyer un message personnalisé au lieu d'une erreur.

Cette solution basée sur une formule est idéale lorsque vous voulez des résultats dynamiques et mis à jour instantanément lorsque vos données d'entrée changent. Cependant, pour des ensembles de données extrêmement volumineux, la vitesse de calcul peut être affectée, et vous pourriez envisager une approche VBA pour améliorer l'automatisation du flux de travail ou réduire les opérations manuelles.

arrow blue right bubble Utiliser une macro VBA pour trouver et renvoyer l'en-tête de colonne de la première valeur non nulle dans chaque ligne

Si vous devez souvent effectuer cette tâche de recherche sur de nombreuses lignes ou sur des ensembles de données volumineux, ou si vous souhaitez automatiser le processus pour gagner en efficacité, utiliser une macro VBA est une alternative pratique. Cette méthode est particulièrement avantageuse pour la génération de rapports périodiques ou lorsque vous manipulez des tableaux de données qui changent fréquemment de taille. La macro recherchera dans chaque ligne spécifiée la première valeur non nulle et renverra l'en-tête de colonne correspondant dans une cellule cible.

1. Cliquez sur l'onglet Développeur > Visual Basic pour ouvrir la fenêtre Microsoft Visual Basic for Applications. (Si l'onglet Développeur n'est pas visible, vous pouvez l'ajouter via Fichier > Options > Personnaliser le ruban.) Dans l'éditeur VBA, cliquez sur Insertion > Module.

2. Copiez et collez le code VBA suivant dans le nouveau module :

Sub LookupFirstNonZeroAndReturnHeader()
    Dim ws As Worksheet
    Dim dataRange As Range
    Dim headerRange As Range
    Dim outputCell As Range
    Dim r As Range
    Dim c As Range
    Dim firstNonZeroCol As Integer
    Dim i As Long
    Dim xTitleId As String
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set ws = Application.ActiveSheet
    Set dataRange = Application.InputBox("Select the data range (excluding headers):", xTitleId, Selection.Address, Type:=8)
    If dataRange Is Nothing Then Exit Sub
    Set headerRange = ws.Range(dataRange.Offset(-1, 0).Resize(1, dataRange.Columns.Count).Address)
    For i = 1 To dataRange.Rows.Count
        Set r = dataRange.Rows(i)
        firstNonZeroCol = 0
        
        For Each c In r.Columns
            If c.Value <> 0 And c.Value <> "" Then
                firstNonZeroCol = c.Column - dataRange.Columns(1).Column + 1
                Exit For
            End If
        Next c
        
        Set outputCell = r.Cells(1, r.Columns.Count + 1)
        
        If firstNonZeroCol > 0 Then
            outputCell.Value = headerRange.Cells(1, firstNonZeroCol).Value
        Else
            outputCell.Value = "No non-zero"
        End If
    Next i
    
    On Error GoTo 0
    MsgBox "Completed! Results are in the column to the right of your data.", vbInformation, "KutoolsforExcel"
End Sub

3. Pour exécuter la macro, cliquez sur le bouton Exécuter ou appuyez sur la touche F5. Une boîte de dialogue vous invitera à sélectionner la plage de données (à l'exclusion des en-têtes de colonne). Après l'exécution de la macro, la colonne immédiatement à droite des données sélectionnées sera remplie avec l'en-tête de la première valeur non nulle pour chaque ligne, ou un message "Aucune valeur non nulle" si aucune valeur non nulle n'est trouvée.

Cette approche VBA excelle pour les tâches répétitives et est excellente pour gérer de grands ensembles de données, réduisant ainsi les efforts manuels. Cependant, assurez-vous que les macros sont activées dans votre environnement Excel et sauvegardez toujours votre classeur avant d'exécuter du code.

Remarque : Si vous rencontrez des erreurs, vérifiez que votre sélection exclut la ligne d'en-tête et inclut uniquement les lignes de données.

a screenshot of kutools for excel ai

Découvrez la magie d'Excel avec Kutools AI

  • Exécution intelligente : Effectuez des opérations sur les cellules, analysez les données et créez des graphiques, le tout piloté par des commandes simples.
  • Formules personnalisées : Générez des formules adaptées pour rationaliser vos flux de travail.
  • Codage VBA : Écrivez et implémentez du code VBA sans effort.
  • Interprétation des formules : Comprenez facilement des formules complexes.
  • Traduction de texte : Surmontez les barrières linguistiques dans vos feuilles de calcul.
Améliorez vos capacités Excel avec des outils alimentés par l'IA. Téléchargez maintenant et découvrez une efficacité sans précédent !

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