formateur informatique

Extractions à partir de multiples feuilles Excel

Accueil  >  Bureautique  >  Excel  >  Excel Astuces  >  Extractions à partir de multiples feuilles Excel
Livres à télécharger


Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :


Inscription Newsletter    Abonner à Youtube    Vidéos astuces Instagram
Sujets que vous pourriez aussi aimer :


Extraction multi feuilles

Lorsque la référence cherchée se trouve dans l'un des tableaux de l'une des feuilles, c'est la plupart du temps un raisonnement matriciel qui dénoue le problème pour rapatrier les informations associées.

Liste déroulante Excel de recherche

Dans l'exemple illustré par la capture, l'utilisateur choisit une référence avec une liste déroulante un peu comme si le code à barres de l'article avait été scanné. Et aussitôt, le prix de ce produit est rapatrié dans la cellule voisine. Pourtant, cette référence peut être placée dans n'importe quel tableau de n'importe quelle feuille Excel. L'enjeu consiste donc à produire des extractions précises même lorsque la feuille de recherche n'est pas connue à l'avance.

Classeur Excel à télécharger
Pour la mise en place de la solution, nous suggérons d'appuyer l'étude sur un classeur hébergeant plusieurs tableaux répartis dans plusieurs feuilles. Nous débouchons sur la première feuille du classeur. L'utilisateur choisit une référence avec une liste déroulante en cellule D4. Et aussitôt, c'est une formule matricielle qui doit importer le prix correspondant en cellule voisine E4.

Noms des feuilles du classeur Excel avec numéros incrémentés

En bas de la fenêtre Excel, vous remarquez que toutes les feuilles suivantes portent le même nom (Base) en préfixe. C'est un numéro incrémenté qui les différencie. Et c'est cette construction remarquable qui va grandement simplifier le raisonnement matriciel pour pouvoir les considérer toutes dans une seule et même formule.
  • En bas de la fenêtre Excel, cliquer par exemple sur l'onglet Base1 pour activer sa feuille,
Une base de données de feuille Excel à consolider avec les autres par formule

Vous découvrez un tableau hébergeant des références avec leurs prix, de la ligne 2 à la ligne 10 et sur les colonnes A et B. Cette structure et ces bornes sont strictement respectées pour tous les autres tableaux des autres feuilles, bien que les références des articles diffèrent à chaque fois.

Technique matricielle multi feuilles
Pour résoudre le cas, nous allons engager en quelque sorte une recherche verticale multi feuilles. En imbriquant la fonction Somme.Si dans la fonction SommeProd, toutes les cellules de toutes les matrices désignées vont pouvoir être confrontées à la référence demandée. Ces matrices doivent représenter les plages aux bornes fixes certes, mais sur toutes les feuilles concernées à la fois.
  • En bas de la fenêtre Excel, cliquer sur l'onglet extraction pour activer sa feuille,
  • Cliquer alors sur la cellule E4 du prix pour l'activer,
  • Taper le symbole égal (=) pour initier la syntaxe de la formule matricielle,
  • Inscrire la fonction matricielle suivie d'une parenthèse, soit : SommeProd(,
  • Inscrire la fonction de somme conditionnelle suivie d'une parenthèse, soit : Somme.Si(,
La feuille de recherche
En premier des trois arguments, nous devons lui spécifier la plage sur laquelle il est question de trouver la référence pour en extraire le prix correspondant. Et comme nous l'avons dit, nous ne savons pas quel est le tableau dans lequel se trouve ce code. En d'autres termes, nous ne connaissons pas la feuille dans laquelle il s'agit de réaliser l'analyse. Dans ce raisonnement matriciel, nous allons désigner chacune des feuilles grâce à une matrice virtuelle recomposant les numéros incrémentés. C'est ainsi qu'elles seront toutes concernées de façon récursive. Mais comme vous le savez, une matrice virtuelle doit être interprétée.
  • Inscrire la fonction d'interprétation suivie d'une parenthèse, soit : Indirect(,
  • Entre guillemets, taper le préfixe commun à toutes les feuilles, soit : "Base",
  • Puis, taper le symbole de concaténation (&) pour annoncer la matrice des numéros à suivre,
  • Inscrire la fonction donnant l'indice de ligne, suivie d'une parenthèse, soit : Ligne(,
En guise de cellule, nous allons lui passer une matrice virtuelle représentant les quatre premières lignes d'une feuille. Dans ce raisonnement matriciel, elles vont toutes être passées en revue tour à tour, pour recomposer chaque suffixe de chaque feuille.
  • Construire la matrice virtuelle suivante : 1:4,
  • Puis, fermer la parenthèse de la fonction Ligne,
Maintenant que toutes les feuilles sont représentées, nous devons descendre jusqu'aux plages de cellules aux bornes communes. Ce sont elles qui abritent les références et les prix correspondants à extraire.
  • Taper de nouveau le symbole de concaténation (&) pour poursuivre l'assemblage,
  • Inscrire la plage entre guillemets avec le point d'exclamation en préfixe : "!A2:A10",
  • Puis, fermer la parenthèse de la fonction Indirect,
Il s'agit bien sûr de la plage de recherche des références que l'utilisateur peut choisir avec la liste déroulante.

Le critère de recherche
En deuxième argument, il est question de définir le critère à utiliser pour la somme conditionnelle. En réalité, il s'agit du critère de recherche, donc de la référence choisie. Lorsqu'elle sera trouvée, la somme isolera l'unique prix qui sera restitué.
  • Taper un point-virgule (;) pour passer dans l'argument du critère de la somme conditionnelle,
  • Puis, désigner la référence cherchée par ses coordonnées de cellule, soit : D4,
  • Taper un dernier point-virgule (;) pour passer dans l'argument de la plage pour la somme,
La plage d'extraction
Cette plage correspondant au critère pour la somme n'est autre que la plage d'extraction. Nous l'avons dit, seule une référence sera concordante, quel que soit le tableau et quelle que soit la feuille. En conséquence, la somme restituera simplement le prix ainsi isolé. La construction est identique à celle de la plage pour le critère de la fonction Somme.Si. Mais cette fois, nous devons pointer sur la colonne B, entre les lignes 2 et 10.
  • Puis, reconstruire la plage d'extraction : Indirect("Base" & Ligne(1:4) & "!B2:B10"),
  • Fermer la parenthèse de la fonction Somme.Si,
  • Puis, fermer la parenthèse de la fonction SommeProd,
  • Dès lors, valider la formule avec le raccourci clavier CTRL + MAJ + Entrée,
Depuis la version 2019 d'Office, ce raccourci n'est plus nécessaire car Excel comprend naturellement qu'il s'agit d'un raisonnement matriciel. Quoiqu'il en soit, vous voyez apparaître le prix correspondant. Et si vous vous rendez sur la feuille hébergeant cette référence, vous constatez que l'extraction est la bonne. Bien sûr, si vous changez de référence, le prix correspondant est automatiquement extrait et ce, quelle que soit la feuille hébergeant le code cherché. Mais vous l'avez compris, en raison de la nature de la fonction Somme.Si, cette recherche multifeuilles ne peut fonctionner que sur les données numériques à rapatrier.

 
Sur Facebook
Sur Youtube
Les livres
Contact
Mentions légales



Abonnement à la chaîne Youtube
Partager la formation
Partager sur Facebook
Partager sur Twitter
Partager sur LinkedIn