Les fonctions TEXTE.AVANT et TEXTE.APRES ont été ajoutées à Excel 365 à partir de la version 2208 et vous permettent de faire des extractions sur un délimiteur (espace; virgule, ...).
Pour illustrer comment utiliser les fonctions TEXTE.AVANT et TEXTE.APRES, nous allons partir de ces données clients qui sont dans une même cellule.

Extraire les premiers mots d'un texte
La fonction TEXTE.AVANT permet d'extraire les premiers mots d'un texte en se basant sur un délimiteur, comme l'espace.
Extraire le premier mot d'un texte
Pour extraire le premier mot d'une chaine de caractères, il suffit d'écrire la fonction suivante
=TEXTE.AVANT(A2;" ")

La fonction se comprend très facilement ; "On extrait le premier mot AVANT le premier délimiteur"
Extraire les 2 premiers mots
Mais la fonction TEXTE.AVANT a un troisième paramètre qui permet d'indiquer le nombre de mots (ou encore d'occurrences) que nous souhaitons retourner.
Pour extraire le prénom et le nom, nous allons écrire la formule
=TEXTE.AVANT(A2;" ";2)

Pour obtenir le même résultat avec les fonctions GAUCHE et CHERCHE, il aurait fallu écrire
=GAUCHE(A2;CHERCHE(" ";A2;CHERCHE(" ";A2;1)+1))

La fonction TEXTE.APRES
Inversement, la fonction TEXTE.APRES va retourner le reste de la chaine de caractères à partir du nième délimiteur.
Donc, pour retourner l'adresse, le code postal et la ville, nous allons écrire :
=TEXTE.APRES(A2;" ";2)

Extraire les 2 derniers mots
Mais ce qui est beaucoup plus intéressant avec la fonction TEXTE.APRES c'est de mettre un nombre négatif en 3e paramètre.
En effet, en mettant -1, vous extrayez le dernier mot et en mettant -2, vous extrayez les 2 derniers mots (facile 😀)
=TEXTE.APRES(A2;" ";-2)

J'ai essayé de vous construire une formule équivalente avec la fonction DROITE mais la recherche de l'avant-dernier espace est juste impossible.
Donc cette nouvelle fonction enrichie les possibilités de manipulation de texte dans Excel 😀👍
Comment extraire une sous-chaine au milieu ?
Nous avons vu comment extraire le prénom , prénom et nom mais comment extraire seulement le nom ? Et bien il faut faire une double utilisation de ces formules pour obtenir ce résultat
- Une première fois pour extraire les 2 premiers mots
- Et nous allons déduire de ce résultat le dernier mot
=TEXTE.APRES(TEXTE.AVANT(A2;" ";2);" ")

Et pour finir, pour extraire l'adresse uniquement, nous allons
- Réduire le texte initial du nom et du prénom
- De ce résultat, nous retirons les 2 derniers mots
=TEXTE.AVANT(TEXTE.APRES(A2;" ";2);" ";-2)

18/10/2023 @ 12:45
Merci pour votre aide