Comment extraire plusieurs mots en utilisant REGEXEXTRACT dans Google Sheets

Nous pouvons utiliser la fonction REGEXEXTRACT dans Google Sheets pour extraire plusieurs mots d’une cellule et les mettre dans une ligne ou une colonne.

Je ne pense pas qu’il soit nécessaire d’expliquer l’objectif de cette extraction de texte, car il varie en fonction de votre travail. Cependant, voici un exemple de scénario où cela pourrait être utile.

Supposons que nous voulions rechercher une cellule contenant une liste de noms de pays et extraire certains pays s’ils existent dans la liste.

Voici les noms de certains des pays où le blog Info Inspired a une bonne présence.

Grâce à la fonction REGEXEXTRACT, nous extrayons tous les mots correspondants dans une phrase ou une liste séparée par des virgules, dans une cellule de Google Sheets.

Nous pouvons utiliser des formules REGEXEXTRACT imbriquées (comme le montre la Figure 1 ci-dessous) ou une fonction REGEXEXTRACT basée sur LAMBDA (comme le montre la Figure 3 en bas) pour cela.

Les formules imbriquées ne sont pas idéales dans tous les cas car elles peuvent rendre la formule plus longue et plus difficile à comprendre. Donc, vous voudrez certainement essayer la formule basée sur LAMBDA à la place.

Étapes pour extraire plusieurs mots en utilisant REGEXEXTRACT dans Google Sheets

Syntaxe de la fonction REGEXEXTRACT :
REGEXEXTRACT(texte, expression_régulière)

Vous pouvez extraire un seul mot d’une cellule en utilisant la formule REGEXEXTRACT. Par exemple, si la cellule A1 contient la liste de pays suivante :

India, États-Unis, Royaume-Uni, Canada, Philippines, Australie, France, Brésil, Pays-Bas, Malaisie, Allemagne, Indonésie, Pakistan, Afrique du Sud, Espagne, Singapour, Italie, Mexique, Suède, Pérou, Israël, Hong Kong, Vietnam, Bangladesh, Nigeria

Si vous voulez extraire le nom du pays « Hong Kong », vous pouvez utiliser la formule suivante :

=REGEXEXTRACT(A1, »(?i)Hong Kong »)

Mais ne vous arrêtez pas là ! Vous pouvez faire en sorte que cette formule REGEX se comporte comme un test logique.

Cela signifie que vous pouvez tester la cellule A1 pour le mot « Hong Kong » et renvoyer le mot s’il est trouvé, sinon renvoyer une autre valeur.

Ce type de test est nécessaire. Sinon, la fonction REGEXEXTRACT renverrait parfois une erreur #NA.

Voici cette formule, où nous utilisons la fonction IFERROR :

=IFERROR(REGEXEXTRACT(A1, »(?i)Hong Kong »), »Non disponible »)

Donc, n’oubliez pas d’utiliser la fonction IFERROR ou la fonction IFNA avec REGEX dans de tels scénarios.

Maintenant, revenons à notre sujet, qui est comment extraire plusieurs mots en utilisant REGEXEXTRACT dans Google Sheets.

Ici, nous pouvons suivre deux approches. Si le nombre de mots à extraire est limité à 2-3 mots, nous pouvons utiliser une formule REGEXEXTRACT imbriquée ou une formule basée sur LAMBDA.

1. Formule REGEXEXTRACT imbriquée

La formule suivante extrait plusieurs mots en utilisant REGEXEXTRACT de manière imbriquée, et les fonctions sont séparées par des virgules et placées entre des accolades.

=IFERROR( { REGEXEXTRACT(A1, »(?i)Singapour »), REGEXEXTRACT(A1, »(?i)Italie »), REGEXEXTRACT(A1, »(?i)Brésil ») } )

Le résultat serait le suivant.

Si la formule ne trouve aucune correspondance, le résultat contiendra une ou plusieurs cellules vides.

Par exemple, si la cellule A1 ne contient pas le mot « Italie », la cellule D1 sera vide.

Dans notre formule principale (veuillez vous référer à la Figure 1 ci-dessus), j’ai simplement utilisé la fonction TRANSPOSE pour renvoyer la sortie dans une colonne.

=TRANSPOSE( IFERROR( { REGEXEXTRACT(A1, »(?i)Singapour »), REGEXEXTRACT(A1, »(?i)Italie »), REGEXEXTRACT(A1, »(?i)Brésil ») } ) )

Vous pouvez utiliser la fonction QUERY pour supprimer les cellules vides et limiter le nombre de valeurs à un nombre spécifique (n).

=QUERY( TRANSPOSE( IFERROR( { REGEXEXTRACT(A1, »(?i)Singapour »), REGEXEXTRACT(A1, »(?i)Italie »), REGEXEXTRACT(A1, »(?i)Brésil ») } ) ), « Select * where Col1<>’ ‘ Limit 3 » )

Ici, la clause LIMIT dans la dernière partie contrôle le nombre d’éléments à renvoyer. Elle est de 3 dans la formule ci-dessus.

2. Extraire plusieurs mots d’une cellule dans Google Sheets en utilisant REGEXEXTRACT basé sur LAMBDA

Syntaxe de la fonction MAP :
MAP(array1, [array2, …], lambda)

Si vous voulez extraire un grand nombre de mots correspondants d’une cellule, vous ne pouvez pas utiliser la formule REGEXEXTRACT imbriquée dans Google Sheets. La formule deviendrait trop grande et difficile à gérer.

Au lieu de cela, vous pouvez utiliser une combinaison MAP (fonction d’aide LAMBDA) et REGEXEXTRACT. Cela vous permettra d’extraire plusieurs mots correspondants sans avoir à créer une formule grande et complexe.

=LET( plage,A1, valeur,{« Singapour », »Italie », »Brésil »}, COMPOSE( MAP( COMPOSE(valeur,1), LAMBDA(r,REGEXEXTRACT(TEXTJOIN( » « ,TRUE,plage), »(?i) »&r)) ),3 ) )

Où :

  • La cellule A1 contient la liste des mots à extraire.
  • Le tableau {« Singapour », « Italie », « Brésil »} contient les pays (valeurs) à correspondre dans la liste.

Pour faire correspondre plus de valeurs, vous pouvez les insérer dans le tableau (accolades) séparées par des virgules.

Voici un exemple :

=LET( plage,A1:A, valeur,C1:C, COMPOSE( MAP( COMPOSE(valeur,1), LAMBDA(r,REGEXEXTRACT(TEXTJOIN( » « ,TRUE,plage), »(?i) »&r) ) ),3 ) )

Extract Multiple Words in Google Sheets Using Lambda-Based REGEXEXTRACT

C’est tout ce que j’ai à dire sur la façon d’extraire plusieurs mots en utilisant REGEXEXTRACT dans Google Sheets. Pour plus d’informations et de conseils sur le référencement et le marketing en ligne, rendez-vous sur Crawlan.com.

Articles en lien