Formule Excel: couper le texte en n mots -

Table des matières

Formule générique

=LEFT(txt,FIND("#",SUBSTITUTE(txt," ","#",n))-1)

Sommaire

Pour découper du texte en un certain nombre de mots, vous pouvez utiliser une formule basée sur les fonctions SUBSTITUTE, FIND et LEFT. Dans l'exemple illustré, la formule en xxx est:

=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)

Explication

Nous avons besoin d'un moyen de diviser le texte à un certain marqueur qui correspond à un certain nombre de mots. Excel n'a pas de fonction intégrée pour analyser le texte par mot, utilisez donc l'argument "instance" de la fonction SUBSTITUTE pour remplacer un caractère "nième espace" par le signe dièse (#), puis utilisez FIND et LEFT pour tout supprimer texte après le marqueur.

En travaillant de l'intérieur vers l'extérieur, SUBSTITUTE est configuré pour remplacer la nième occurrence d'un caractère d'espace, où n vient de la colonne C, le texte vient de la colonne B et "#" est codé en dur.

=SUBSTITUTE(B5," ","#",C5) =SUBSTITUTE("The cat sat on the mat."," ","#",3) ="The cat sat#on the mat."

La chaîne résultante est renvoyée à la fonction FIND, configurée pour rechercher "#".

=FIND("#","The cat sat#on the mat.)

Puisque le "#" est le 12e caractère du texte, FIND renvoie 12. Nous ne voulons pas inclure le caractère d'espace lui-même, nous soustrayons donc 1:

=LEFT(B5,12-1) =LEFT(B5,11)

LEFT renvoie le résultat final de la formule "Le chat assis".

Remarque: le caractère dièse ("#") est arbitraire et peut être remplacé par n'importe quel caractère qui n'apparaîtra pas dans le texte.

Ajouter des elipses ou un autre caractère

Pour ajouter "…" à la fin du texte coupé, utilisez la concaténation comme ceci:

=LEFT(B5,FIND("#",SUBSTITUTE(B5," ","#",C5))-1)&"… "

Vous pouvez remplacer «…» par tout ce que vous voulez.

Articles intéressants...