Comment diviser un texte après chaque n-ième mot dans Google Sheets (en utilisant Regex et Split)

Imaginez pouvoir diviser facilement une chaîne de texte après chaque n-ième mot dans Google Sheets. C’est possible grâce à l’utilisation de Regexreplace et Split.

Supposons que vous ayez importé ou copié-collé un long texte ou une phrase dans une cellule de Google Sheets. Que ce soit pour le traitement des données ou pour toute autre raison, vous souhaiteriez peut-être diviser ce long texte en plusieurs lignes.

Voici un exemple d’un texte Lorem Ipsum dans la cellule B4 :

Long texte d'exemple dans une cellule

J’ai enveloppé la chaîne de caractères et, en conséquence, la largeur de la ligne a augmenté pour accommoder tout le texte.

Cependant, je ne souhaite pas augmenter la largeur de la ligne, mais je veux toujours pouvoir le lire. Pour cela, au lieu de retourner à la ligne, ce que je veux, c’est diviser le texte après chaque n-ième mot.

Comme vous pouvez le voir dans l’exemple, le texte dans la cellule B4 est divisé en plusieurs lignes, et chaque ligne contient 5 mots.

Comment diviser un texte dans une cellule après chaque n-ième mot dans Google Sheets ?

Comme indiqué dans le titre, pour cela, nous pouvons utiliser les fonctions REGEXREPLACE et SPLIT dans Google Sheets. Voici comment :

Logique :

  1. Insérez un délimiteur après chaque n-ième mot – en utilisant REGEXREPLACE.
  2. Divisez le texte aux délimiteurs – en utilisant SPLIT.
  3. Enfin, changez les colonnes divisées en lignes – en utilisant TRANSPOSE.

Formule Regexreplace pour insérer des délimiteurs après chaque n-ième mot

Notre long texte se trouve dans la cellule B4. Écrivons donc la formule Regexreplace dans la cellule D4.

=REGEXREPLACE(B4,"(([a-zA-Z'‘’:.,_?!”“)(}{][]+s){5})", "$1🐟")

La formule ci-dessus permet d’insérer un délimiteur de poisson après chaque 5ème mot.

Dans la formule, veuillez noter le nombre entre les accolades. Ce nombre détermine le n-ième mot.

Vous voulez une explication de la formule ci-dessus ? Commençons par voir la syntaxe de la fonction utilisée dans la formule :

Syntaxe : REGEXREPLACE(texte, expression_régulière, remplacement)

En réalité, la expression_régulière dans la formule est aussi simple que celle-ci. "(([a-zA-Z]+s){5})"

Mais dans tous les cas, elle ne place pas correctement le délimiteur après chaque n-ième mot.

Cela signifie que si votre chaîne de caractères longue contient des caractères spéciaux tels qu’un point, un tiret, un point d’exclamation, des parenthèses, etc., alors la simple expression_régulière ci-dessus peut échouer.

J’ai donc inclus quelques-uns des caractères spéciaux dans l’expression régulière pour résoudre ce problème.

En plus de cela, au lieu de B4, vous pouvez utiliser la fonction clean(B4) pour supprimer les espaces superflus dans le texte de la cellule B4 (non utilisé dans ma formule).

L’effet du délimiteur de poisson rend le résultat intéressant, n’est-ce pas ?

Divisez le texte après chaque n-ième mot en utilisant le délimiteur de poisson dans Google Sheets

Maintenant que nous avons correctement placé les délimiteurs de poisson, nous pouvons utiliser efficacement la fonction Split.

Enveloppons donc la formule D4 avec Split. Cela placera le texte divisé dans la même ligne, mais dans plusieurs colonnes.

=split(REGEXREPLACE(B4,"(([a-zA-Z'‘’:.,_?!”“)(}{][]+s){5})", "$1🐟"),"🐟")

Ensuite, utilisez également la fonction Transpose avec Split + Regex pour changer l’orientation des données de ligne en colonne.

=TRANSPOSE(split(REGEXREPLACE(B4,"(([a-zA-Z'‘’:.,_?!”“)(}{][]+s){5})", "$1🐟"),"🐟"))

La formule ci-dessus est la formule finale pour diviser un texte après chaque n-ième (ici 5ème) mot dans Google Sheets.

Vous pouvez contrôler dynamiquement la position de la division en pointant le n-ième dans une cellule. Au lieu de le coder en dur, vous pouvez taper 5 dans la cellule C4 et vous y référer dans la formule.

Pour cela, remplacez {5} dans la formule par {"&C4&"}.

C’est ainsi que nous pouvons diviser un texte après chaque n-ième mot dans Google Sheets.

Merci d’être resté. Profitez-en bien !

Articles en lien