Formule Excel: supprimer le dernier mot -

Table des matières

Formule générique

=MID(A1,1,FIND("~",SUBSTITUTE(A1," ","~",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))-1)

Sommaire

Pour supprimer le dernier mot d'une chaîne de texte, vous pouvez utiliser une formule basée sur la fonction MID, avec l'aide de SUBSTITUTE, LEN et FIND. Dans l'exemple illustré, la formule de la cellule B5 est:

=MID(B5,1,FIND("~",SUBSTITUTE(B5," ","~",LEN(B5)-LEN(SUBSTITUTE(B5," ",""))))-1)

Explication

Cette formule utilise la fonction MID pour supprimer le dernier mot d'une chaîne de texte. Le principal défi est de savoir où commence le dernier mot.

La formule est un peu compliquée, mais les étapes sont simples. Nous comptons d'abord le nombre d'espaces dans le texte en utilisant LEN et SUBSTITUTE. Ensuite, nous utilisons l'argument "instance" quelque peu obscur dans la fonction SUBSTITUTE pour remplacer le dernier espace par un tilde (~). Enfin, nous utilisons FIND pour déterminer où se trouve le tilde et la fonction MID pour tout supprimer après le tilde.

En travaillant de l'intérieur vers l'extérieur, nous utilisons les fonctions LEN et SUBSTITUTE pour compter le nombre d'espaces qui apparaissent dans le suivant:

LEN(B5)-LEN(SUBSTITUTE(B5," ","")) // returns 6

Pour le texte en B5, cela renvoie 6. Cette page explique cette partie de la formule plus en détail. Cela nous indique que nous voulons couper le texte au 6ème caractère d'espace.

Remarque: si les mots sont séparés par plus d'un espace, vous souhaiterez d'abord normaliser les espaces avec la fonction TRIM.

Le numéro 6 est ensuite branché sur un autre SUBSTITUT en tant que "numéro d'instance":

SUBSTITUTE(B5," ","~",6) // insert tilde

Ici, nous remplaçons la 6ème instance d'un espace ("") par un tilde (~). Après l'exécution de SUBSTITUTE, il renvoie cette chaîne:

"It's been seven hours and fifteen~days"

Remarque: nous utilisons un tilde (~) uniquement parce que c'est un caractère rarement présent. Vous pouvez utiliser n'importe quel caractère de votre choix, à condition qu'il n'apparaisse pas dans le texte source.

Ensuite, nous utilisons la fonction FIND pour localiser le tilde:

FIND("~","It's been seven hours and fifteen~days")-1

FIND renvoie 34, car le tilde est le 34e caractère. Nous soustrayons 1 de ce nombre, car nous ne voulons pas inclure le dernier espace dans le résultat final. Nous pouvons maintenant simplifier la formule pour:

=MID(B5,1,33) // extract final text

La fonction MID renvoie alors les caractères 1 à 33:

"It's been seven hours and fifteen"

Avec un délimiteur personnalisé

La même formule peut être utilisée avec un délimiteur différent. Par exemple, pour supprimer tout le texte après la dernière barre oblique "/", vous pouvez utiliser:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,"/","~",LEN(A1)-LEN(SUBSTITUTE(A1,"/",""))))-1)

Supprimer les n derniers mots

Vous pouvez adapter la formule pour supprimer les 2 derniers mots, les 3 derniers mots, etc. La forme générale est:

=MID(A1,1,FIND("~",SUBSTITUTE(A1,d,"~",LEN(A1)-LEN(SUBSTITUTE(A1,d,""))-(n-1)))-1)

d est le délimiteur et n est le nombre de mots à supprimer.

Articles intéressants...