Matricielles

Menu déroulant dépendant

Temps de lecture 3 minutes

Cet article va vous expliquer comment créer des menus déroulants dépendant les uns par rapport aux autres à partir d'un tableau sans extraction à réaliser au préalable 😉

Tableau avec des données hiérarchisées

Nous allons partir d'un tableau où les données sont rangées de façon hiérarchisées. Il n'est pas nécessaire que les données soient triées.

Tableau avec des données hiérarchisées

Et nous allons utiliser ces informations pour construire 2 menus déroulants dépendants l'un de l'autre. Par exemple, dans l'image suivante, seules les sous-catégories en relation avec les Boissons s'affiche dans le menu déroulant

Menu Deroulant Dependant

Pour réaliser ce travail, nous allons utiliser les fonctions matricielles dynamiques qui sont présentes dans Microsoft 365 ou Excel Online.

Création du premier menu déroulant

Pour le premier menu déroulant, celui qui correspond au niveau hiérarchique le plus élevé, nous allons récupérer les valeurs uniques de la colonne. Pour cela, nous allons utiliser la fonction UNIQUE.

=UNIQUE($A$2:$A$57)

Fonction UNIQUE pour récupérer les valeurs uniques du premier niveau hiérarchique

Ensuite, nous allons créer un menu déroulant en activant le menu Données > Validation de données.

Choisissez l'option Liste et écrivez la fonction suivante

=$E$2#

Le signe # correspond à la référence étendue de la formule matricielle.

La formule du menu déroulant utilise les références étendues

Avec cette astuce, vous avez créé le menu déroulant à partir de toutes les valeurs contenues dans votre tableau initial.

Premier menu déroulant à partir de la fonction UNIQUE

Créer le menu déroulant dépendant

Maintenant, nous allons construire une nouvelle formule dans une seconde colonne. Cette fois-ci, nous allons utiliser la fonction FILTRE qui va utiliser pour voir utiliser le résultat du premier menu déroulant.

Pour écrire la formule, nous allons

  • Indiquer la colonne qui contient les données à retourner
  • Indiquer la colonne sur laquelle effectuer le filtrage
  • le test à réaliser (ici =)
  • la cellule contenant la valeur du test (ici la cellule I3)

=FILTRE(B2:B56;A2:A56=I3;"")

La formule FILTRE permet dextraire les données sur un critère

Bien sur, nous n'avons besoin de ne conserver que les valeurs uniques. Et de nouveau, nous allons utiliser la fonction UNIQUE

=UNIQUE(FILTRE(B2:B56;A2:A56=I3;""))

Et pour rendre les choses parfaite, on peut aussi trier les données dynamiquement

=TRIER(UNIQUE(FILTRE(B2:B56;A2:A56=I3;"")))

Fonction utilisante 3 fonctions matricielles UNIQUE TRIER et FILTRE

Et comme nous l'avons fait pour le premier menu déroulant, nous allons de nouveau nous servir des références étendues pour concevoir le second menu déroulant avec le résultat de la seconde formule

=$F$2#

Et avec cette nouvelle fonction, nous avons créé un menu déroulant dépendant du premier résultat

Menu déroulant dynamique

Related posts

Liste de valeurs distinctes sans vide

Frédéric LE GUEN

Tri dynamique sur plusieurs colonnes

Frédéric LE GUEN

Menus déroulants sans vide

Frédéric LE GUEN

Laissez un commentaire

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

Ce site utilise des cookies pour améliorer votre expérience et vos recherches. Nous pensons que vous êtes dʼaccord sur ce principe mais vous pouvez refuser cette option. Accepter Continuer

Privacy & Cookies Policy