Reggie a une cellule qui contient trois mots ou plus. (Le nombre de mots peut varier.) Il a besoin d’une formule qui lui permette d’extraire soit le premier mot de la cellule, soit le dernier mot de la cellule. Par exemple, si la cellule contient la phrase «Reggie était ici en 2016», alors il a besoin d’une formule pour extraire «Reggie» et une pour extraire «2016».

Vous pouvez extraire les deux mots à l’aide de formules. Extraire le premier mot est relativement simple. Tout ce que vous avez à faire est de trouver l’emplacement du premier espace dans la phrase, puis d’extraire ce qui se trouve à gauche de celle-ci. Si l’on suppose que la phrase est en A1, on peut utiliser la formule:

=LEFT(A1,FIND(" ",A1)-1)

Pour extraire le dernier mot, vous aurez besoin d’une formule légèrement différente:

=TRIM(RIGHT(SUBSTITUTE(TRIM(A1)," ",REPT(" ",255)),255))

Cette formule modifie les espaces en chaînes de 255 espaces. Ensuite, il trouve les 255 derniers caractères et coupe les caractères vers la gauche, laissant le dernier mot.

Vous pouvez également, si vous préférez, créer des fonctions définies par l’utilisateur pour saisir les mots souhaités. Saisir le premier mot est facile:

Function FirstWord(c As String)

Dim arr

arr = Split(Trim(c), " ")

FirstWord = arr(LBound(arr))

End Function

La fonction utilise la fonction Split pour séparer tout ce qui se trouve dans la cellule spécifiée, en utilisant le deuxième paramètre («  ») comme délimiteur. Chaque élément du tableau (arr) contient alors une partie de la chaîne d’origine. Dans ce cas, ce qui est renvoyé est le premier élément (spécifié par LBound) du tableau – le premier mot.

Puisque les mots de la phrase sont placés dans un tableau, vous pouvez utiliser juste une légère variation de la fonction pour renvoyer le dernier mot:

Function LastWord(c As String)

Dim arr

arr = Split(Trim(c), " ")

LastWord = arr(UBound(arr))

End Function

Notez que, essentiellement, le seul vrai changement dans la fonction est l’utilisation de UBound au lieu de LBound. La fonction UBound spécifie le dernier élément du tableau. Vous pouvez utiliser ces deux fonctions dans une feuille de calcul de cette manière:

=FirstWord(A1)

=LastWord(A1)

Si vous préférez, vous pouvez contourner en utilisant la fonction Split et, à la place, utiliser d’autres fonctions liées aux chaînes:

Function GetFirst(c As String)

GetFirst = Left(c, InStr(c, " ") - 1)

End Function
Function GetLast(c As String)

GetFirst = Mid(c, InstrRev(c, " ") + 1)

End Function

_Note: _

Si vous souhaitez savoir comment utiliser les macros décrites sur cette page (ou sur toute autre page des sites ExcelTips), j’ai préparé une page spéciale qui comprend des informations utiles.

lien: / excelribbon-ExcelTipsMacros [Cliquez ici pour ouvrir cette page spéciale dans un nouvel onglet de navigateur].

ExcelTips est votre source pour une formation Microsoft Excel rentable.

Cette astuce (11985) s’applique à Microsoft Excel 2007, 2010, 2013 et 2016.

Vous pouvez trouver une version de cette astuce pour l’ancienne interface de menu d’Excel ici:

link: / excel-Extracting_First_and_Last_Words [Extraction des premiers et derniers mots].