formateur informatique

Extraire selon des critères recoupés par calculs Excel

Accueil  >  Bureautique  >  Excel  >  Excel Avancé  >  Extraire selon des critères recoupés par calculs Excel
Livres à télécharger


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

Pour l'intégrer sur votre site internet ou blog, vous pouvez l'embarquer :

Sujets et formations similaires :


Extraire les données de choix multiples par calculs Excel

Dans ce troisième volet, nous souhaitons finaliser l'application permettant d'extraire les données de bases Excel, selon des choix recoupés en cascade. Dans les deux précédentes étapes, nous avions premièrement extrait les données sources purgées de leurs doublons, et deuxièmement, nous avions relié ces sources entre elles. De fait, nous avions conçu des listes déroulantes dont les sélections dépendaient les unes des autres.

Application Excel pour extraire tous les enregistrements des critères recoupés par listes déroulantes liées



Comme l'illustre la capture ci-dessus de l'application Excel finalisée, l'utilisateur réalise trois choix en cascade par le biais de listes déroulantes. Il définit tout d'abord un département proposé dans la première des listes. La source de la deuxième liste déroulante se génère alors en fonction de ce premier choix. Il définit donc une activité de sortie et les propositions de villes se génèrent automatiquement en fonction de ce deuxième choix. A la sélection d'une ville, les enregistrements correspondant aux trois critères recoupés, sont instantanément extraits dans la zone d'extraction, située juste en dessous. Et à l'instar des deux précédentes étapes, nous souhaitons réaliser cette sélection de données par calculs Excel, sans l'intervention du code Visual Basic.

Source et problématique
Nous devons récupérer les travaux précédents qui ont permis d'articuler ces listes déroulantes, sur la source de données. Ainsi, nous pourrons concentrer nos efforts sur les formules permettant de réaliser les requêtes d'extraction. Nous arrivons sur un classeur constitué de deux feuilles. La feuille bd_sorties est celle de la base de données listant les idées de sorties par département, activité et ville. C'est sur ces trois champs que des calculs ont été bâtis lors des formations précédentes afin de générer des listes déroulantes dynamiquement liées. Ces listes se situent dans la feuille de l'application nommée listes.
  • En bas de la fenêtre Excel, cliquer sur l'onglet listes pour activer sa feuille,
Ces listes déroulantes sont proposées en ligne 5 des colonnes B, C et D. Elles ont été conçues sur des plages de cellules dynamiques pour s'adapter aux variations des sources de données I, J et K, grâce à la fonction Decaler. Ces sources sont issues de calculs permettant l'extraction des données à la fois reliées et purgées de leurs doublons.
  • A l'aide de la première liste déroulante en B5, sélectionner le département 83-Var,
  • A l'aide de la deuxième liste déroulante en C5, sélectionner l'activité Hôtel/Restaurant,
  • Enfin, avec la dernière liste en D5, sélectionner la ville de Toulon,
Choix en cascade dans des listes déroulantes Excel reliées par le calcul

Pas d'extraction pour l'instant puisqu'il s'agit précisément de la solution à mettre en place dans ce troisième volet. En revanche, à chaque choix dans une liste déroulante, vous avez pu remarquer les sources de données se reconstituer automatiquement, sur la partie droite de la feuille. Par le jeu des calculs, les informations sont extraites dynamiquement pour restreindre les propositions selon les sélections réalisées en amont. C'est ainsi que les listes remplies de ces données s'articulent les unes par rapport aux autres.



Repérer les enregistrements vérifiant les conditions
Pour simplifier la formule d'extraction des données, nous proposons de bâtir un calcul intermédiaire dans la colonne L de la feuille bd_sorties. Ce calcul doit marquer l'enregistrement en cours d'une valeur numérique incrémentée, s'il satisfait aux trois conditions recoupées des listes déroulantes. Pour l'incrémentation automatique dans la colonne du calcul, nous exploiterons l'astuce de la fonction Max sur une plage de cellules, dont la borne inférieure se déplace en même temps que la formule est répliquée. En somme, nous reproduisons des techniques identiques à celles des deux volets précédents. Pour vérifier plusieurs conditions à la fois, nous devons exploiter la fonction Excel ET dans la zone de critère de la fonction conditionnelle Si.
  • Cliquer sur l'onglet bd_sorties en bas de la fenêtre Excel pour activer sa feuille,
  • Puis, sélectionner la cellule L2 sur la droite du tableau,
  • Taper le symbole = pour débuter le calcul,
  • Saisir le nom de la fonction conditionnelle suivi d'une parenthèse, soit Si(,
  • Saisir la fonction pour énumérer les conditions suivi d'une parenthèse, soit ET(,
  • Sélectionner le département de la ligne en cours pour le premier critère à vérifier, soit D2,
  • Taper le symbole = pour enclencher l'égalité à vérifier,
  • Cliquer sur l'onglet listes en bas de la fenêtre Excel pour activer sa feuille,
  • Sélectionner la cellule du département, soit B5,
  • Enfoncer la touche F4 du clavier pour la figer, ce qui donne : listes!$B$5,
  • Taper un point-virgule (;) pour passer au deuxième critère à recouper,
  • Sur la feuille bd_sorties, sélectionner la cellule F2 de l'activité,
  • Taper le symbole = puis sélectionner la cellule C5 de la feuille listes pour l'activité,
  • Enfoncer la touche F4 du clavier pour figer cette dernière dans le calcul,
  • Taper un point-virgule (;) pour passer à la troisième condition à croiser,
  • Sélectionner alors la cellule H2 de la feuille bd_sorties pour la ville en cours,
  • Taper le symbole = et désigner la cellule D5 de la feuille listes pour la ville correspondante,
  • Enfoncer la touche F4 pour la figer et fermer la parenthèse de la fonction Et,
  • Taper un point-virgule (;) pour passer dans la branche Alors de la fonction Si,
  • Saisir la fonction retournant le nombre le plus grand suivi d'une parenthèse, soit Max(,
  • Sélectionner la toute première cellule de la colonne L, soit L1,
  • Taper le symbole deux points (:) pour générer la plage de départ, soit L1:L1,
  • Dans la formule, cliquer sur la première des deux références,
  • Puis enfoncer la touche F4 du clavier pout la figer, ce qui donne : $L$1:L1,
  • Fermer la parenthèse de la fonction Max,
  • Taper le symbole + suivi du chiffre 1 pour l'incrément,
  • Taper un point-virgule (;) pour passer dans la branche Sinon de la fonction Si,
  • Saisir deux guillemets ('') pour conserver la cellule vide lorsque les conditions recoupées par la fonction ET, ne sont pas satisfaites,
  • Fermer la parenthèse de la fonction Si,
  • Valider le calcul par le raccourci clavier CTRL + Entrée pour conserver la cellule active ,
  • Double cliquer sur la poignée de la cellule pour répliquer la formule sur la hauteur du tableau,
Repérer les enregistrements à extraire avec des chiffres incrémentés par formule Excel

Selon les choix que nous avons réalisés précédemment, nous sommes obligés d'atteindre la ligne 889 de la feuille bd_sorties, pour trouver les premiers enregistrements marqués par la formule. Ils correspondent en effet aux trois Hôtel/Restaurant pour la ville de Toulon située dans le Var. Ce sont ces numéros que nous devons exploiter pour produire l'extraction multicritère correspondante, dans la feuille listes. La formule que nous avons construite est la suivante :

=SI(ET(D2=listes!$B$5; F2=listes!$C$5; H2=listes!$D$5); MAX($L$1:L1) + 1; '')

Notez que nous avons supprimé le nom de la feuille bd_sorties en préfixe des cellules D2, F2 et H2. Excel nous l'impose en effet à chaque fois que nous basculons d'une feuille à une autre pendant la construction de la formule. Comme cette dernière est située dans la feuille bd_sorties, il n'est pas nécessaire de conserver sa référence, pour plus de clarté.



Extraction des données selon les conditions recoupées
Nous devons donc réaliser la recherche de ces numéros incrémentés pour trouver la ligne des enregistrements concordants. L'astuce, comme dans les formations précédentes, consiste à exploiter la fonction Excel Ligne qui permet de retourner l'indice de ligne d'une cellule désignée. En désignant la cellule A1 pour le premier calcul (Ligne(A1)), nous réaliserons ainsi la recherche du chiffre 1 qui s'auto-incrémentera au fur et à mesure que le calcul est répliqué sur les lignes du dessous. Nous ne pouvons pas exploiter la fonction Excel RechercheV. Cette dernière impose en effet que l'élément à chercher se situe en première colonne du tableau de référence. Or, la colonne L est justement la dernière. Nous proposons de palier le problème avec l'imbrication des fonctions Index et Equiv, telles que nous les avions présentées dans la formation Excel pour extraire des données. Leurs syntaxes sont les suivantes :

=INDEX(Base_de_données ; numero_de_ligne ; numero_de_colonne)
=EQUIV(Valeur_cherchée ; Colonne_de_recherche ; 0)


La fonction Excel Index permet donc d'extraire une information de base de données selon son indice de ligne et selon son indice de colonne. La colonne est fixe. Pour l'extraction de la raison sociale par exemple, il s'agit de la deuxième colonne, soit le chiffre 2 pour définir son argument. Le numéro de ligne en revanche est variable. Il peut être trouvé grâce au calcul intermédiaire que nous avons produit en colonne L de la feuille bd_sorties. Et c'est la fonction Equiv qui permet justement de réaliser la recherche de ce numéro dans la colonne désignée, afin de retourner l'indice de ligne en question.

Pour simplifier le calcul, avant de le débuter, nous proposons d'attribuer un nom à la plage de cellules de la base de données. Elle sera ainsi plus simple à désigner dans la formule d'extraction.
  • Cliquer sur l'onglet bd_sorties en bas de la fenêtre Excel pour activer sa feuille,
  • Sélectionner la cellule A1,
  • Réaliser la combinaison de touches CTRL + MAJ + FIN pour étendre la sélection jusqu'à la dernière cellule active de la feuille,
  • Dans la zone Nom, en haut à gauche de la feuille, saisir bds et valider par la touche Entrée,
Nommer plage de cellules de base de données Excel pour faciliter extraction par formule

Dans les calculs à venir, la base de données, donc le tableau de recherche, pourra être désigné par simple saisie de son nom. La combinaison de touches que nous avons exploitée pour étendre la sélection est démontrée dans la formation sur les raccourcis claviers Excel. Si elle ne vous convient pas, rien ne vous empêche de sélectionner à la souris.

Il est temps de construire la formule d'extraction des données.
  • Cliquer sur l'onglet listes en bas de la fenêtre Excel pour activer sa feuille,
  • Sélectionner la première cellule de l'extraction à produire, soit B11,
  • Taper le symbole = pour débuter le calcul,
  • Saisir le nom de la fonction de gestion d'erreur suivi d'une parenthèse, soit SiErreur(,
  • Saisir la fonction d'extraction par ligne et colonne suivi d'une parenthèse, soit Index(,
  • Saisir le texte bds pour désigner la base de données précédemment nommée,
  • Taper un point-virgule (;) pour passer dans l'argument de l'indice de ligne,
  • Saisir la fonction de recherche retournant la ligne suivi d'une parenthèse, soit Equiv(,
  • Saisir le nom de la fonction retournant l'indice de ligne suivi d'une parenthèse, soit Ligne(,
  • Cliquer sur la cellule A1 pour restituer mécaniquement les numéros à retrouver,
  • Fermer la parenthèse de la fonction Ligne,
  • Taper un point-virgule (;) pour passer dans l'argument de la colonne de recherche,
  • Cliquer sur l'onglet bd_sorties en bas de la fenêtre Excel pour activer sa feuille,
  • Cliquer alors sur l'étiquette de la colonne L, ce qui donne : bd_sorties!L:L,
  • Taper un point-virgule (;) pour passer dans le dernier argument de la fonction Equiv,
  • Saisir le chiffre 0 pour commander une recherche selon une correspondance exacte,
  • Fermer la parenthèse de la fonction Equiv,
  • Taper un point-virgule pour passer dans l'argument de l'indice de colonne de la fonction Index,
  • Saisir le chiffre 2 pour désigner la colonne de la raison sociale,
  • Fermer la parenthèse de la fonction Index,
  • Taper un point-virgule pour passer dans le second argument de la fonction SiErreur,
  • Saisir deux guillemets ('') pour conserver la cellule vide en cas d'erreur,
  • Fermer la parenthèse de la fonction SiErreur,
  • Valider la formule par le raccourci CTRL + Entrée pour conserver la cellule active,
  • Tirer la poignée du calcul jusqu'à la ligne 24 par exemple,
Importation de tous les enregistrements de base de données Excel selon des critères recoupés par des listes déroulantes liées

Comme nous l'avions constaté lors de la vérification du calcul intermédiaire, trois enregistrements sont effectivement extraits. Il s'agit bien des données vérifiant les trois conditions recoupées par les listes déroulantes en cascade, à savoir les Hôtel/Restaurant pour la ville de Toulon située dans le Var. Les données sont extraites instantanément, sans doublons, listées les unes à la suite des autres, grâce à la recherche sur un numéro incrémenté. Une fois encore, nous parvenons à réaliser cette prouesse sans faire appel au code VBA Excel. Et vous en conviendrez, la formule est relativement simple :

=SIERREUR(INDEX(bds; EQUIV(LIGNE(A1); bd_sorties!L:L; 0); 2); '')
  • Répliquer ce calcul sur les colonnes D, E, F et G de la zone d'extraction en adaptant la valeur du paramètre de l'indice de ligne, pour la fonction Index,
  • Puis tirer la poignée pour chaque colonne jusqu'à la ligne 24,
Le chiffre 2 du troisième argument de la fonction Index devient respectivement :
  • Le chiffre 4 pour le département,
  • Le chiffre 6 pour l'activité,
  • Le chiffre 8 pour la ville,
  • Et le chiffre 1 pour l'identifiant (Id),
Extraire toutes les lignes attachées à une référence répétitive en base de données Excel

Chaque calcul ainsi répliqué fournit le détail de champ, extrait de la base de données, pour l'enregistrement correspondant. Vous notez la construction automatique de bordures d'encadrement, dès lors qu'un contenu est détecté.

Mise en forme conditionnelle des résultats importés par formules Excel extraction
  • Cliquer dans l'une des cellules de la zone d'extraction, par exemple B11,
  • Dans le ruban Accueil, cliquer sur le bouton Mise en forme conditionnelle,
  • Puis, dans la liste, choisir Gérer les règles,
  • Dans la boîte de dialogue qui suit, cliquer sur le bouton Modifier la règle,
Comme l'indique la formule illustrée par la capture ci-dessus, lorsque la cellule en cours est détectée comme non vide, une bordure lui est attribuée. Il s'agit donc d'un format qui réagit au contenu de la cellule. C'est la raison pour laquelle les attributs de mise en valeur restent vierges lorsqu'aucune information n'est détectée.
  • Cliquer deux fois sur Ok pour fermer les deux boîtes de dialogue,
Réalisons une dernière simulation à titre de vérification mais aussi de satisfaction quant à la puissance et à l'automatisme du processus.
  • A l'aide de la première liste déroulante, choisir le département 07-Ardèche,
  • Avec la deuxième liste, choisir l'activité liée Restaurant,
  • Enfin, sélectionner la ville dépendante Aubenas dans la troisième liste,
Extraction multiligne des informations liées à une référence redondante en base de données Excel

A peine le dernier choix sur la ville est-il émis que la zone d'extraction se reconstruit, pour offrir tous les enregistrements concordant avec les trois critères recoupés par les listes déroulantes.

 
Sur Facebook
Sur G+
Sur Youtube
Les livres
Contact
Mentions légales



Partager la formation
Partager sur Facebook
Partager sur Google+
Partager sur Twitter
Partager sur LinkedIn