Cet article va vous montrer comment lier un graphique à un menu déroulant.
Données de base
Nous allons partir d'un tableau qui présente la quantité en stock de nos produits.
Présenter toutes les courbes des produits dans le même graphique n'a aucun intérêt.
La multitude de courbes ne permet pas de trouver une tendance pour chacun des produits. Dans cette situation, il est préférable de construire un graphique où l'affichage des courbes est piloté depuis un menu déroulant pour n'afficher qu'une courbe à la fois.
Comment gérer une telle situation ?
Pour n'afficher qu'une seule série à la fois, nous n'avons pas d'autres choix que de construire un nouveau tableau avec
- une colonne pour les dates
- une colonne pour les valeurs selon le produit sélectionné dans le menu déroulant
Etape 1 : Création du menu déroulant
Ensuite, en J2, on créé un menu déroulant en prenant comme source les codes produits en B2:F2
Etape 2a : Solution les fonctions matricielles dynamiques
Avec Microsoft 365, nous allons construire la fonction INDEX avec l'utilisation de la fonction SEQUENCE
- Toutes les données (mais sans les entêtes) Echantillon!$B$3:$G$15
- La fonction SEQUENCE pour construire une série de nombre mais en mémoire en fonction du nombre de cellules à parcourir avec NBVAL.
- La fonction EQUIV pour convertir la valeur du produit (en J2) en colonne dans le tableau initial.
La fonction complète s'écrit
=INDEX(Echantillon!$B$3:$G$15;SEQUENCE(NBVAL(I3:I15));EQUIV($J$2;$B$2:$G$2;0))
Etape 2b : Solution avec les autres versions d'Excel
La fonction SEQUENCE n'est présente qu'avec la version de Microsoft 365, donc si vous ne travaillez pas avec cette version, il faut modifier le deuxième paramètres de la formule précédente.
Nous allons récupérer la valeur de la ligne active grâce à la fonction LIGNE(), soit la valeur 3 dans notre exemple.
Et ensuite on retranche 2 pour que nous trouvions la valeur de la première ligne du tableau à retourner.
=LIGNE()-2
A la différence de la formule précédente avec SEQUENCE, il faut recopier la formule (c'est un autre avantage des fonctions matricielles dynamiques ????)
=INDEX(Echantillon!$B$3:$G$15;LIGNE()-2;EQUIV($J$2;$B$2:$G$2;0))
Création d'un graphique
Tout le travail compliqué est terminé. Il suffit de créer un graphique en ligne à partir du tableau de 2 colonnes que nous venons de construire.
Et nous pouvons maintenant sélectionner librement n'importe laquelle des séries pour rendre le graphique plus visible.
ALLM
07/09/2021 @ 13:24
Bonjour à vous, merci pour votre site qui m'aide beaucoup.
Par contre pour ce tuto je n'arrive pas, la séquence sur le menu déroulant n'indique pas ce qu'il faut prendre (même si on s'en doute, mais peut être que certaines personnes vont être bloquées dessus) et puis la fonction pour les versions antérieures à 365 ne marche pas. J'ai même fait un copier coller et recopier votre tableau à la cellule près, rien n'y fait :/
Merci quand même pour votre travail car sur tous les autres tutos je n'ai aucun soucis 🙂
Badji
14/07/2021 @ 22:31
Bonjour, merci pour la clarté des explications. Cependant j'ai du mal à créer le second tableau pour faire un graphique avec menu deroulant. Avec windows 2013, quand je mets la fonction index, une fenêtre s'ouvre et me propose d'aller chercher le fichier dans les différents dossiers du pC et du coup je ne peux continuer.
Merci de m'indiquer la conduite à tenir
serge attia
26/06/2021 @ 12:18
Merci, Pour le Partage.
Excellent site, complet et simple a utilisé.
Bonne Continuation.
Cordialement
Frédéric LE GUEN
27/06/2021 @ 11:16
Merci beaucoup pour ce commentaire