Liste de valeurs distinctes sans vide

Liste de valeurs distinctes sans vide
Dernière mise à jour le 05/02/2024
Temps de lecture : 3 minutes

Une des manipulations très courantes à réaliser dans Excel c'est de retourner une liste de valeurs distinctes et sans vide. Pour cela, les nouvelles fonctions matricielles dynamique vous être d'une grande aide.

C'est quoi une fonction matricielle

Une fonction matricielle c'est tout simplement une fonction qui va renvoyer un résultat autant de cellule que nécessaire et non pas une seule cellule. Vous avez par exemple ici une présentation de la fonction UNIQUE qui s'adapte aux valeurs de la colonne A.

Fonction UNIQUE

ATTENTION : Les fonctions matricielles dynamiques ne sont accessibles que pour les utilisateurs d'Excel 365 et Excel Online

UNIQUE renvoie les cellules vides

Nous aurions très bien pu juste utiliser la fonction UNIQUE pour extraire une liste de valeur disctinctes. Seulement, si notre liste de données contient des valeurs vides, UNIQUE retourne l'information sous la forme d'un 0.

Par exemple, nous avons en colonne A la liste des prénoms mais avec certaines cellules vides.

Fonction UNIQUE renvoie aussi les valeurs vides

Pourquoi dans la première utilisation de UNIQUE, il n'y a pas de vides ?

Si vous regardez la première animation de cet article, UNIQUE ne retourne jamais la valeur 0.

C'est parce que nos données sont dans un Tableau et donc les références sont dynamiques. En effet, les références s'adaptent à la taille d'un Tableau.

Et de plus, quand une valeur a été retirée, nous avons supprimer une ligne du tableau et pas juste effacé le contenu de la cellule.

Faire un test logique sur toutes les cellules

Toujours grâce aux plages matricielles dynamiques, il est maintenant possible de réaliser un test logique sur toutes les cellules d'une plage de données.

Et tout simplement, nous allons chercher à savoir si le contenu des cellules est vide ou pas

=ESTVIDE(A2:A15)

Test logique sur plusieurs cellules avec les plages de données matricielles

Mais nous devons inverser le résultat pour obtenir VRAI quand la cellule n'est pas vide. Donc, nous allons utiliser pour cela la fonction NON.

=NON(ESTVIDE(A2:A15))

Inversion du test logique pour trouver les cellules non vides

La fonction FILTRE à notre secours

Maintenant, nous allons intégrer le résultat de ce test à l'intérieur de la fonction FILTRE. En effet, la fonction FILTRE va retourner la liste des valeurs où le test est VRAI.

=FILTRE(A2:A15;NON(ESTVIDE(A2:A15)))

La fonction FILTRE retourne une liste de valeurs non vides

Liste de valeurs distinctes non vides

Maintenant, il ne reste plus qu'à intégrer cette formule dans une fonction UNIQUE

=UNIQUE(FILTRE(A2:A15;NON(ESTVIDE(A2:A15))))

Liste distincte de valeurs sans vides

Et pour faire le travail très proprement, vous pouvez également trier le résultat avec la fonction TRIER.

La liste de valeur distinctes est triée

5 Comments

  1. Baptiste 14
    19/09/2023 @ 14:22

    Re bonjour

    C'est bon au final, je pense avoir identifier le problème.

    J'avais cette formule : =SI(F$39=C40;D40;"")

    Et donc même si la formule SI renvoie false et donc ne renvoie rien dans le cas présent (ici indiqué par ""), la cellule concernée ne peut être considérée comme vide.

    Voilà, j'espère avoir été clair.

    PS : désolé du deuxième commentaire mais je ne peux répondre à mon premier car il n'a pas encore été approuvé au moment où j'écris ces lignes

    Bonne continuation à vous 🙂

    Reply

    • Frédéric LE GUEN
      19/09/2023 @ 14:24

      C'est surtout que le premier n'était vraiment pas clair 😉 Content pour vous que vous ayez trouvé la réponse à votre problème (c'est le meilleur moyen de progresser)

      Reply

  2. Baptiste 14
    19/09/2023 @ 13:56

    Bonjour,

    Je viens de tester sur pour récupérer les données d'une colonne quand celle-ci commence par une cellule vide.
    Et dans la plage de résultats, j'ai en plus des cellules non-vide récupérées, une cellule vide qui vient avec. Comment faire pour éviter d'avoir cette cellule vide ?

    Merci d'avance.

    Reply

  3. MagiX
    25/12/2022 @ 18:25

    Hello

    ça marche quand c'est des données sur la même feuille, c'est pas la même quand les données sont dans un tableau d'une autre feuille
    du coup ça n'aide pas vraiment

    Reply

    • Nicola
      18/01/2023 @ 11:02

      Je viens de tester suite à la lecture de l'article et cela fonctionne très bien sur des données présentes dans d'autres tableaux ou d'autres feuilles d'un même fichier excel.

      Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

Liste de valeurs distinctes sans vide

Reading time: 3 minutes
Dernière mise à jour le 05/02/2024

Une des manipulations très courantes à réaliser dans Excel c'est de retourner une liste de valeurs distinctes et sans vide. Pour cela, les nouvelles fonctions matricielles dynamique vous être d'une grande aide.

C'est quoi une fonction matricielle

Une fonction matricielle c'est tout simplement une fonction qui va renvoyer un résultat autant de cellule que nécessaire et non pas une seule cellule. Vous avez par exemple ici une présentation de la fonction UNIQUE qui s'adapte aux valeurs de la colonne A.

Fonction UNIQUE

ATTENTION : Les fonctions matricielles dynamiques ne sont accessibles que pour les utilisateurs d'Excel 365 et Excel Online

UNIQUE renvoie les cellules vides

Nous aurions très bien pu juste utiliser la fonction UNIQUE pour extraire une liste de valeur disctinctes. Seulement, si notre liste de données contient des valeurs vides, UNIQUE retourne l'information sous la forme d'un 0.

Par exemple, nous avons en colonne A la liste des prénoms mais avec certaines cellules vides.

Fonction UNIQUE renvoie aussi les valeurs vides

Pourquoi dans la première utilisation de UNIQUE, il n'y a pas de vides ?

Si vous regardez la première animation de cet article, UNIQUE ne retourne jamais la valeur 0.

C'est parce que nos données sont dans un Tableau et donc les références sont dynamiques. En effet, les références s'adaptent à la taille d'un Tableau.

Et de plus, quand une valeur a été retirée, nous avons supprimer une ligne du tableau et pas juste effacé le contenu de la cellule.

Faire un test logique sur toutes les cellules

Toujours grâce aux plages matricielles dynamiques, il est maintenant possible de réaliser un test logique sur toutes les cellules d'une plage de données.

Et tout simplement, nous allons chercher à savoir si le contenu des cellules est vide ou pas

=ESTVIDE(A2:A15)

Test logique sur plusieurs cellules avec les plages de données matricielles

Mais nous devons inverser le résultat pour obtenir VRAI quand la cellule n'est pas vide. Donc, nous allons utiliser pour cela la fonction NON.

=NON(ESTVIDE(A2:A15))

Inversion du test logique pour trouver les cellules non vides

La fonction FILTRE à notre secours

Maintenant, nous allons intégrer le résultat de ce test à l'intérieur de la fonction FILTRE. En effet, la fonction FILTRE va retourner la liste des valeurs où le test est VRAI.

=FILTRE(A2:A15;NON(ESTVIDE(A2:A15)))

La fonction FILTRE retourne une liste de valeurs non vides

Liste de valeurs distinctes non vides

Maintenant, il ne reste plus qu'à intégrer cette formule dans une fonction UNIQUE

=UNIQUE(FILTRE(A2:A15;NON(ESTVIDE(A2:A15))))

Liste distincte de valeurs sans vides

Et pour faire le travail très proprement, vous pouvez également trier le résultat avec la fonction TRIER.

La liste de valeur distinctes est triée

5 Comments

  1. Baptiste 14
    19/09/2023 @ 14:22

    Re bonjour

    C'est bon au final, je pense avoir identifier le problème.

    J'avais cette formule : =SI(F$39=C40;D40;"")

    Et donc même si la formule SI renvoie false et donc ne renvoie rien dans le cas présent (ici indiqué par ""), la cellule concernée ne peut être considérée comme vide.

    Voilà, j'espère avoir été clair.

    PS : désolé du deuxième commentaire mais je ne peux répondre à mon premier car il n'a pas encore été approuvé au moment où j'écris ces lignes

    Bonne continuation à vous 🙂

    Reply

    • Frédéric LE GUEN
      19/09/2023 @ 14:24

      C'est surtout que le premier n'était vraiment pas clair 😉 Content pour vous que vous ayez trouvé la réponse à votre problème (c'est le meilleur moyen de progresser)

      Reply

  2. Baptiste 14
    19/09/2023 @ 13:56

    Bonjour,

    Je viens de tester sur pour récupérer les données d'une colonne quand celle-ci commence par une cellule vide.
    Et dans la plage de résultats, j'ai en plus des cellules non-vide récupérées, une cellule vide qui vient avec. Comment faire pour éviter d'avoir cette cellule vide ?

    Merci d'avance.

    Reply

  3. MagiX
    25/12/2022 @ 18:25

    Hello

    ça marche quand c'est des données sur la même feuille, c'est pas la même quand les données sont dans un tableau d'une autre feuille
    du coup ça n'aide pas vraiment

    Reply

    • Nicola
      18/01/2023 @ 11:02

      Je viens de tester suite à la lecture de l'article et cela fonctionne très bien sur des données présentes dans d'autres tableaux ou d'autres feuilles d'un même fichier excel.

      Reply

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.