formateur informatique

Extraire toutes les lignes qui contiennent les mots cherchés

Accueil  >  Bureautique  >  Excel  >  Excel Avancé  >  Extraire toutes les lignes qui contiennent les mots cherchés
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 :


Extraire ce qui contient...

Python offre de nombreuses méthodes pour bâtir des formules remarquables dans Excel. L'une d'entre elles est toute particulière. Elle permet d'extraire les lignes d'un tableau pour lesquelles un champ en particulier contient un mot ou un terme cherché. Cette méthode se nomme contains. Nous allons la démontrer dans ce nouveau sujet.

Classeur Excel à télécharger
Nous suggérons de baser l'étude sur un classeur Excel existant. Nous découvrons un tableau d'articles vestimentaires sur la gauche de la feuille, entre les colonnes A et G. Juste au-dessus en cellule A3, un DataFrame Python le représente. Nous l'avons nommé bd pour base de données : bd=xl("A6:G250", headers=True).

Dataframe Python sur une base de données Excel

Sur la droite, une grille d'extraction est prévue entre les colonnes I et P. Au-dessus, l'utilisateur peut émettre deux critères textuels à l'aide de deux listes déroulantes en cellules K3 et K4. Pour pouvoir les exploiter par formule Python, nous les avons encapsulés sous les noms cr1 et cr2 en cellules L3 et L4 selon les syntaxes suivantes : cr1=xl("K3") et cr2=xl("K4").

La méthode contains
Il est donc question d'extraire toutes les lignes pour lesquelles le champ nom contient soit le premier mot cherché, soit le second. Nous devons donc bâtir une double condition d'extraction non exclusive.
  • Cliquer sur la première case vide de la grille d'extraction pour sélectionner la cellule I6,
  • Réaliser le raccourci clavier CTRL + ALT + MAJ + P pour activer Python,
  • Débuter la syntaxe comme suit : bd[bd["nom"],
Nous agissons sur la base de données représentée par le nom bd. Et à l'intérieur, nous souhaitons émettre un critère de recherche sur le champ nom.
  • Taper un point (.) suivi de la propriété str,
str pour string, c'est ainsi que nous indiquons vouloir agir sur du contenu textuel.
  • Taper un nouveau point, suivi de la méthode contains, comme suit : .contains(cr1),
Sur ce contenu textuel dans le champ nom et pour toutes les lignes du tableau, nous cherchons donc toutes les cellules qui embarquent le texte encapsulé dans l'objet Python cr1.
  • Fermer le crochet de la base de données (]),
  • Valider la formule par le raccourci clavier CTRL + Entrée,
Nous obtenons un DataFrame mais nous souhaitons exploiter visuellement ces données.
  • A gauche de la barre de formule, cliquer sur la flèche dirigée vers le bas,
  • Dans les propositions, choisir Valeur Excel,
Extraire les lignes du tableau Excel contenant le mot clé cherché par formule Python

Nous obtenons bien l'extraction de toutes les lignes contenant le premier mot clé cherché dans le champ du nom. Bien sûr, si vous changez ce mot clé avec la première liste déroulante, après un petit temps d'analyse, l'extraction s'ajuste automatiquement et en parfaite cohérence.

Critère OU
Mais nous l'avons dit, nous souhaitons combiner deux axes de recherche de façon non exclusive. Le deuxième mot-clé doit donc être pris en considération. En Python, l'opérateur OU se matérialise par la barre verticale (|).
  • Sélectionner de nouveau la cellule I6,
  • Dans la barre de formule, cliquer juste avant le crochet fermant,
  • Taper un espace suivi de l'opérateur OU (|) suivi d'un nouvel espace,
  • Selon le principe précédent, lancer la recherche sur le deuxième mot :
bd["nom"].str.contains(cr2)
  • Dès lors, valider l'adaptation de la formule par le raccourci CTRL + Entrée,
Extraire tous les enregistrements contenant l-un ou l-autre mot clé par formule Python dans Excel

Nous obtenons bien l'extraction des lignes contenant le premier mot clé cherché ainsi que celles embarquant le second. Là encore, si vous changez ces termes de recherche avec les listes déroulantes, l'extraction à double critère s'ajuste automatiquement.

Trier sur le prix
Pour terminer la solution, il apparaît opportun de classer les lignes extraites n'ont pas dans leur ordre d'apparition dans le tableau d'origine, mais dans l'ordre croissant sur les prix. Nous aurons ainsi une chronologie de lecture intéressante. Et comme nous l'avons déjà appris, c'est la méthode Python sort_values qui permet ces organisations maîtrisées.
  • Sélectionner de nouveau la cellule I6,
  • Dans la barre de formule, cliquer à la fin de la syntaxe, après le crochet fermant,
  • Taper un point (.) pour appeler la nouvelle méthode à suivre,
  • Inscrire la méthode Python de tri comme suit : sort_values("prix"),
  • Enfin, valider la formule par le raccourci CTRL + Entrée,
Extraire et trier sur des mots clés de recherche par formule Python dans Excel

Nous obtenons toujours l'extraction sur les deux axes de recherche mais cette fois-ci restituée dans l'ordre croissant sur les prix, pour une meilleure lecture et comme nous le souhaitions.

La syntaxe complète que nous avons construite est la suivante :

bd[bd["nom"].str.contains(cr1) | bd["nom"].str.contains(cr2)].sort_values("prix")

 
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