Graphique avec barre de défilement (étape 2)

Dans le dernier article (ici) nous avons construit notre tableau de données et une barre de défilement.
Nous avons donc ceci:
A présent, il nous faut mettre à jour les données dans les cellules E2:F11.
La première des étapes sera de définir quel est le premier produit de notre liste.
Premier produit
Le principe est le suivant: il faut trouver le premier de nos 10 produits à afficher. Pour cela, il faut partir du titre de la liste complète et décaler d’autant de ligne que la barre de défilement le demande plus 1 (pour ne pas compter le titre car nous sommes partis de 0 pour la barre de défilement – Nous aurions pu partir de 1 afin de ne pas utiliser ce “+1”), à travers le le décalage que nous avons défini dans la cellule $I$1, rattachée à l’objet barre de défilement.
Nous allons donc une nouvelle fois utiliser la fonction DECALER (ou OFFSET en anglais):
=DECALER(Tab_Produits[[#En-têtes];[Produits]];Decalage+1;0)
9 produits suivants
Pour trouver le produit suivant, nous allons chercher le produit situé juste au-dessus au niveau de la liste des 10 produits pour récupérer celui situé au-dessous dans la liste complète.
Pour cela nous utiliserons les fonctions suivantes:
INDEX, EQUIV, ADRESSE (voir ICI pour la correspondance en anglais).
 
Commençons par retrouver notre produit:
=EQUIV($E2;A:A;0)+1;1
Recherche du produit situé au-dessus (E2) dans la liste des produits (colonne A). Nous avons la ligne à laquelle nous ajoutons 1 car nous voulons la ligne du produit situé au-dessous.
A présent que nous avons la ligne, il nous faut le contenu de cette ligne pour la colonne ‘A’. Nous utiliserons donc les fonctions INDIRECT et ADRESSE.
INDIRECT permet de retourner le contenu d’une cellule. Par exemple, INDIRECT(“E1”) nous retournera la contenu de la cellule E1, c’est à dire Produit.
La fonction adresse nous permet de retourner le code de l’adresse pour un numéro de ligne et un numéro de colonne. Ici, nous souhaitons l’adresse de la ligne 2 et de la colonne 1 (pour ‘A’), nous aurons donc ADRESSE(2;1) qui “retournera “$A$2”.
Nous aurons donc au final la formule suivante:
=INDIRECT(ADRESSE(EQUIV($E2;A:A;0)+1;1);1)
Il suffit d’appliquer la même formule jusqu’en E11 pour avoir le résultat suivant:
Nous aurions pu utiliser une autre méthode en appliquant la formule suivante:
=INDIRECT(ADRESSE(LIGNE()+Decalage;1))
Au lieu de rechercher le produit supérieur avec la fonction EQUIV, nous cherchons par rapport au numéro de ligne.
Décomposons la partie Ligne de la fonction ADRESSE:
LIGNE()+Decalage
  • La fonction LIGNE renvoie la ligne ou se trouve la cellule. Par exemple pour le produit 6 en E3, nous aurions la valeur 3.
  • On ajoute le décalage afin de trouver la bonne valeur dans la colonne produit en fonction de la barre de défilement. Ici la valeur est 4. Le total est donc de 7 ce qui correspond à la ligne de notre tableau complet:
Attention toutefois avec cette méthode car si nous insérons une cellule au-dessus de E1, le résultat sera faux. Vous pouvez faire l’essai. A ce moment là, il faudra tenir compte à la fois de la ligne où se trouve chacun des titres produits (pour la colonne A et la colonne E).
Récupérer les prix
Pour les prix, il suffit ici d’utiliser la très classique fonction RECHERCHEV:
En F2, nous mettrons donc:
=RECHERCHEV(E2;Tab_Produits;2;FAUX)
Le graphique
Pour le graphique, sélectionner le tableau puis dans le ruban insérer un histogramme 2D. Avec EXCEL 2013, vous pouvez tout simplement sélectionner le tableau et choisir le graphique proposé en cliquant sur l’icône en bas à droite du tableau sélectionné.
Ainsi vous aurez le résultat présenté dans la vidéo de l’article précédent.
A présent, faites défiler votre barre et vous verrez votre graphique se mettre à jour automatiquement.

Laisser un commentaire

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