Extraction des premiers et derniers mots (Microsoft Excel)
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 2012», alors il a besoin d’une formule pour extraire «Reggie» et une pour extraire «2012».
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)
En principe, pour obtenir le dernier mot peut être accompli de la même manière, il est juste plus compliqué de trouver le dernier espace dans la chaîne. Une façon de faire est de:
-
Comptez le nombre d’espaces. Remplacez le dernier espace par un caractère différent (qui n’est pas ailleurs dans la phrase)
-
Ensuite, trouvez ce « caractère différent »
-
Prendre la partie de la phrase à droite de ce « caractère différent »
Le « caractère différent » que l’on peut utiliser est le premier caractère ASCII (c’est-à-dire char (1)), qui n’est pas imprimable et il est très peu probable qu’il soit dans la phrase. Le nombre d’espaces peut être trouvé en prenant la différence entre la longueur de la phrase avec la longueur de la phrase sans espaces (en utilisant SUBSTITUTE pour remplacer tous les espaces par la chaîne nulle):
LEN(A1)-LEN(SUBSTITUTE(A1," ",""))
Ensuite, vous pouvez remplacer char (1) pour la dernière occurrence de l’espace:
SUBSTITUTE(A1," ",CHAR(1),LEN(A1)-LEN(SUBSTITUTE(A1," ","")))
Vous pouvez alors TROUVER l’emplacement de char (1) dans cette chaîne:
FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))
Le premier caractère du dernier mot est un caractère après ceci:
1+ FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1),LEN(A1)- LEN(SUBSTITUTE(A1," ",""))))
Vous pouvez ensuite utiliser la fonction MID pour extraire la partie de la chaîne commençant à cet emplacement jusqu’à la fin de la chaîne. (Vous n’avez pas besoin de calculer la longueur exacte. Si vous choisissez un nombre plus grand que la longueur du dernier mot, seul le dernier mot sera choisi. Ainsi, vous pouvez commencer à l’emplacement ci-dessus et extraire le nombre de caractères dans la chaîne pour vous assurer que vous en avez assez.):
=MID(A1,1+FIND(CHAR(1),SUBSTITUTE(A1," ",CHAR(1), LEN(A1)-LEN(SUBSTITUTE(A1," ","")))),LEN(A1))
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)
_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 (11984) s’applique à Microsoft Excel 97, 2000, 2002 et 2003.
Vous pouvez trouver une version de cette astuce pour l’interface ruban d’Excel (Excel 2007 et versions ultérieures) ici:
lien: / excelribbon-Extracting_First_and_Last_Words [Extraction des premiers et derniers mots]
.