Se débarrasser de tout sauf des nombres (Microsoft Excel)
Linda a une colonne qui contient des caractères alphanumériques. Elle doit conserver les caractères numériques et supprimer les caractères alphabétiques. Par exemple, une cellule peut contenir 10003E111 et elle veut finir avec 10003111.
Il existe plusieurs façons d’aborder ce problème. Cependant, avant de procéder à une solution, vous devez vous assurer que vous n’essayez pas de changer quelque chose qui n’est pas vraiment cassé. Par exemple, vous voudrez vous assurer que le « E » qui apparaît dans le nombre ne fait pas partie du format du nombre – en d’autres termes, une désignation d’exponentiation. Si c’est le cas, vous ne voulez pas vraiment supprimer le caractère car cela finira par changer la nature du nombre sous-jacent.
Si vous déterminez que les caractères ne font pas partie du format du nombre, vous pouvez d’abord essayer d’utiliser des formules pour supprimer les caractères alpha. Si les valeurs que vous souhaitez modifier se trouvent dans la colonne A, vous pouvez saisir la formule (très longue) suivante dans la colonne B:
=MID(A1,MATCH(TRUE,ISERROR(1MID(A1,ROW(INDIRECT ("1:"&LEN(A1))),1)),0),-MATCH(TRUE,ISERROR(1MID (A1,ABS(ROW(INDIRECT("1:"&LEN(A1)))-LEN(A1)-1),1)) ,0)+LEN(A1)+2-MATCH(TRUE,ISERROR(1*MID(A1,ROW (INDIRECT("1:"&LEN(A1))),1)),0))
Assurez-vous de le saisir sous forme de formule matricielle en appuyant sur Ctrl + Maj + Entrée. Entrez ensuite ce qui suit dans la colonne C:
=SUBSTITUTE(A1,B1,"")
Le résultat est que la colonne C contient les valeurs de la colonne A, sans les caractères alpha. Vous pouvez utiliser Collage spécial pour copier les informations de la colonne C vers une autre colonne afin de vous retrouver avec des valeurs réelles au lieu des résultats de formule.
Cette approche peut fonctionner très bien pour une utilisation à court terme sur un seul classeur, mais si vous devez effectuer ce type de traitement de données plus souvent, vous souhaiterez créer une fonction définie par l’utilisateur pour effectuer le traitement. Voici un exemple:
Function OnlyNums(sWord As String) Dim sChar As String Dim x As Integer Dim sTemp As String sTemp = "" For x = 1 To Len(sWord) sChar = Mid(sWord, x, 1) If Asc(sChar) >= 48 And _ Asc(sChar) <= 57 Then sTemp = sTemp & sChar End If Next OnlyNums = Val(sTemp) End Function
Vous utilisez cette fonction en l’appelant depuis une cellule de feuille de calcul:
=OnlyNums(A1)
La fonction renvoie une valeur numérique. Si vous souhaitez créer une macro encore plus courte pour effectuer le traitement, tenez compte des éléments suivants:
Function StripChar(aText As String) Dim I As Integer StripChar = "" For I = 1 To Len(aText) aChar = Mid(aText, I, 1) Select Case aChar Case "0" To "9" StripChar = StripChar & aChar End Select Next End Function
Pour utiliser cette fonction, utilisez l’un des éléments suivants dans votre feuille de calcul:
=STRIPCHAR(A1) =VALUE(STRIPCHAR(A1))
Le premier renvoie une chaîne de texte composée des chiffres, le second renvoie la version numérique de cette chaîne.
_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 (3840) 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:
link: / excelribbon-Getting_Rid_of_Everything_Except_Numbers [Se débarrasser de tout sauf les nombres]
.