Comment supprimer les caractères spéciaux / indésirables dans Excel

  • Partage Ça
Michael Brown

Dans cet article, vous apprendrez à supprimer des caractères spécifiques d'une chaîne de texte et à supprimer les caractères indésirables de plusieurs cellules à la fois.

Lorsque vous importez des données d'un autre endroit vers Excel, un grand nombre de caractères spéciaux peuvent se déplacer vers vos feuilles de calcul. Ce qui est encore plus frustrant, c'est que certains caractères sont invisibles, ce qui produit des espaces blancs supplémentaires avant, après ou à l'intérieur des chaînes de texte. Ce tutoriel fournit des solutions à tous ces problèmes, vous évitant de devoir parcourir les données cellule par cellule et de purger les indésirables.caractères à la main.

    Supprimer un caractère spécial d'une cellule Excel

    Pour supprimer un caractère spécifique d'une cellule, remplacez-le par une chaîne vide en utilisant la fonction SUBSTITUTE dans sa forme la plus simple :

    SUBSTITUTE( cellule , char , "")

    Par exemple, pour effacer un point d'interrogation de A2, la formule en B2 est la suivante :

    =SUBSTITUER(A2, " ?", "")

    Pour supprimer un caractère qui n'est pas présent sur votre clavier, vous pouvez le copier/coller dans la formule depuis la cellule d'origine.

    Par exemple, voici comment vous pouvez vous débarrasser d'un point d'interrogation inversé :

    =SUBSTITUER(A2, "¿", "")

    Mais si un personnage indésirable est invisible ou ne se copie pas correctement, comment le mettre dans la formule ? Il suffit de trouver son numéro de code en utilisant la fonction CODE.

    Dans notre cas, le caractère indésirable ("¿") vient en dernier dans la cellule A2, nous utilisons donc une combinaison des fonctions CODE et DROIT pour récupérer sa valeur de code unique, qui est 191 :

    =CODE(RIGHT(A2))

    Une fois que vous avez obtenu le code du caractère, servez la fonction CHAR correspondante à la formule générique ci-dessus. Pour notre jeu de données, la formule est la suivante :

    =SUBSTITUER(A2, CHAR(191),"")

    Remarque : la fonction SUBSTITUTE est sensible à la casse Les lettres minuscules et majuscules sont traitées comme des caractères différents, ce que vous devez garder à l'esprit si votre caractère indésirable est une lettre.

    Supprimer plusieurs caractères d'une chaîne de caractères

    Dans l'un des articles précédents, nous avons vu comment supprimer des caractères spécifiques de chaînes de caractères dans Excel en imbriquant plusieurs fonctions SUBSTITUTE les unes dans les autres. La même approche peut être utilisée pour éliminer deux ou plusieurs caractères indésirables en une seule fois :

    SUBSTITUT(SUBSTITUT(SUBSTITUT( cellule , char1 , ""), char2 , ""), char3 , "")

    Par exemple, pour éradiquer les points d'exclamation et d'interrogation normaux ainsi que les points inversés d'une chaîne de texte en A2, utilisez cette formule :

    =SUBSTITUT(SUBSTITUT(SUBSTITUT(SUBSTITUT(A2, " !", ""), "¡", ""), " ?", ""), "¿", "")

    La même chose peut être faite à l'aide de la fonction CHAR, où 161 est le code de caractère pour "¡" et 191 est le code de caractère pour "¿" :

    =SUBSTITUER(SUBSTITUER(SUBSTITUER(SUBSTITUER(A3, " !", ""), " ?", ""), CHAR(161), ""), CHAR(191), "")

    Les fonctions SUBSTITUTE imbriquées fonctionnent bien pour un nombre raisonnable de caractères, mais si vous avez des dizaines de caractères à supprimer, la formule devient trop longue et difficile à gérer. L'exemple suivant illustre une solution plus compacte et élégante.

    Supprimez tous les caractères indésirables en une seule fois

    La solution ne fonctionne que dans Excel pour Microsoft 365

    Comme vous le savez probablement, Excel 365 dispose d'une fonction spéciale qui vous permet de créer vos propres fonctions, y compris celles qui calculent de manière récursive. Cette nouvelle fonction s'appelle LAMBDA, et vous pouvez trouver tous les détails à son sujet dans le tutoriel ci-dessus. Ci-dessous, je vais illustrer le concept avec quelques exemples pratiques.

    Une fonction LAMBDA personnalisée pour supprimer les caractères indésirables est le suivant :

    =LAMBDA(string, chars, IF(chars "", RemoveChars(SUBSTITUTE(string, LEFT(chars, 1), ""), RIGHT(chars, LEN(chars) -1)), string)))

    Pour pouvoir utiliser cette fonction dans vos feuilles de travail, vous devez d'abord lui donner un nom. Nom du responsable et définir ensuite une Nouveau nom de cette façon :

    1. Dans le Nom saisissez le nom de la fonction : RemoveChars .
    2. Définissez le champ d'application à Cahier d'exercices .
    3. Dans le Fait référence à collez la formule ci-dessus.
    4. En option, vous pouvez entrer la description des paramètres dans le champ Commentaires Les paramètres s'affichent lorsque vous saisissez une formule dans une cellule.
    5. Cliquez sur OK pour sauvegarder votre nouvelle fonction.

    Pour des instructions détaillées, veuillez consulter Comment nommer une fonction LAMBDA personnalisée.

    Une fois que la fonction a reçu un nom, vous pouvez vous y référer comme à n'importe quelle formule native.

    Du point de vue de l'utilisateur, la syntaxe de notre fonction personnalisée est aussi simple que cela :

    RemoveChars(string, chars)

    Où :

    • Chaîne de caractères - est la chaîne originale, ou une référence à la cellule/plage contenant la ou les chaînes.
    • Chars - Les caractères à supprimer peuvent être représentés par une chaîne de texte ou une référence de cellule.

    Pour des raisons de commodité, nous entrons des caractères indésirables dans une cellule, disons D2. Pour supprimer ces caractères de A2, la formule est la suivante :

    =Supprimer les caractères (A2, $D$2)

    Pour que la formule fonctionne correctement, veuillez tenir compte des points suivants :

    • Dans D2, les caractères sont listés sans espace, à moins que vous ne souhaitiez également éliminer les espaces.
    • L'adresse de la cellule contenant les caractères spéciaux est verrouillée par le signe $ ($D$2) pour éviter que la référence ne change lors de la copie de la formule dans les cellules inférieures.

    Ensuite, il suffit de faire glisser la formule vers le bas pour que tous les caractères énumérés dans D2 soient supprimés des cellules A2 à A6 :

    Pour nettoyer plusieurs cellules avec une seule formule, fournissez la plage A2:A6 comme 1er argument :

    =Supprimer les caractères (A2:A6, D2)

    Étant donné que la formule n'est saisie que dans la cellule la plus haute, il n'est pas nécessaire de verrouiller les coordonnées de la cellule - une référence relative (D2) fonctionne parfaitement dans ce cas. Et grâce à la prise en charge des tableaux dynamiques, la formule se répand automatiquement dans toutes les cellules référencées :

    Suppression d'un jeu de caractères prédéfini

    Pour supprimer un ensemble prédéfini de caractères de plusieurs cellules, vous pouvez créer un autre LAMBDA qui appelle la méthode principale de suppression des caractères. RemoveChars et spécifier les caractères indésirables dans le 2ème paramètre. Par exemple :

    Pour supprimer caractères spéciaux nous avons créé une fonction personnalisée nommée RemoveSpecialChars :

    =LAMBDA(string, RemoveChars(string, "?¿!¡*%#@^"))

    A supprimer les numéros à partir de chaînes de texte, nous avons créé une autre fonction appelée RemoveNumbers :

    =LAMBDA(string, RemoveChars(string, "0123456789"))

    Les deux fonctions ci-dessus sont très faciles à utiliser car elles ne nécessitent qu'un seul argument : la chaîne de caractères d'origine.

    Pour éliminer caractères spéciaux à partir de A2, la formule est :

    =Supprimer les caractères spéciaux (A2)

    Pour supprimer uniquement des caractères numériques :

    =Supprimer les numéros (A2)

    Comment fonctionne cette fonction :

    En substance, le RemoveChars boucle dans la liste des chars et supprime un caractère à la fois. Avant chaque appel récursif, la fonction IF vérifie les caractères restants. Si l'option chars n'est pas vide (chars ""), la fonction s'appelle elle-même. Dès que le dernier caractère a été traité, la formule renvoie chaîne de caractères sa forme actuelle et ses sorties.

    Pour la décomposition détaillée de la formule, veuillez consulter le document Recursive LAMBDA to remove unwanted characters.

    Supprimer les caractères spéciaux avec VBA

    Les fonctions fonctionnent dans toutes les versions d'Excel

    Si la fonction LAMBDA n'est pas disponible dans votre Excel, rien ne vous empêche de créer une fonction similaire avec VBA. Une fonction définie par l'utilisateur (UDF) peut être écrite de deux manières.

    Fonction personnalisée pour supprimer les caractères spéciaux récursif :

    Ce code émule la logique de la fonction LAMBDA discutée ci-dessus.

    Function RemoveUnwantedChars(str As String , chars As String ) If ( """ chars) Then str = Replace(str, Left(chars, 1), "" ) chars = Right(chars, Len(chars) - 1) RemoveUnwantedChars = RemoveUnwantedChars(str, chars) Else RemoveUnwantedChars = str End If End Function

    Fonction personnalisée pour supprimer les caractères spéciaux non-récursif :

    Ici, nous parcourons les caractères indésirables de 1 à Len(chars) et nous remplaçons ceux trouvés dans la chaîne originale par rien. La fonction MID extrait les caractères indésirables un par un et les transmet à la fonction Replace.

    Function RemoveUnwantedChars(str As String , chars As String ) For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveUnwantedChars = str End Function

    Insérez l'un des codes ci-dessus dans votre classeur comme expliqué dans Comment insérer un code VBA dans Excel, et votre fonction personnalisée est prête à être utilisée.

    Pour ne pas confondre notre nouvelle fonction définie par l'utilisateur avec celle définie par Lambda, nous l'avons nommée différemment :

    RemoveUnwantedChars(string, chars)

    En supposant que la chaîne de caractères originale se trouve en A2 et les caractères indésirables en D2, nous pouvons nous en débarrasser à l'aide de cette formule :

    = RemoveUnwantedChars(A2, $D$2)

    Fonction personnalisée avec des caractères codés en dur

    Si vous ne voulez pas vous soucier de fournir des caractères spéciaux pour chaque formule, vous pouvez les spécifier directement dans le code :

    Function RemoveSpecialChars(str As String ) As String Dim chars As String Dim index As Long chars = "?¿!¡*%#$(){}[]^&/\~+-" For index = 1 To Len(chars) str = Replace(str, Mid(chars, index, 1), "" ) Next RemoveSpecialChars = str End Function

    N'oubliez pas que le code ci-dessus est destiné à des fins de démonstration. Pour une utilisation pratique, veillez à inclure tous les caractères que vous souhaitez supprimer dans la ligne suivante :

    chars = "?¿!¡*%#$(){}[]^&/\~+-"

    Cette fonction personnalisée est nommée RemoveSpecialChars et il ne requiert qu'un seul argument - la chaîne de caractères originale :

    RemoveSpecialChars(string)

    Pour éliminer les caractères spéciaux de notre jeu de données, la formule est la suivante :

    =Supprimer les caractères spéciaux (A2)

    Suppression des caractères non imprimables dans Excel

    Microsoft Excel dispose d'une fonction spéciale pour supprimer les caractères non imprimés - la fonction CLEAN. Techniquement, elle supprime les 32 premiers caractères du jeu ASCII 7 bits (codes 0 à 31).

    Par exemple, pour supprimer caractères non imprimables à partir de A2, voici la formule à utiliser :

    =CLEAN(A2)

    Cela éliminera les caractères non imprimés, mais les espaces avant/après le texte et entre les mots resteront.

    Pour se débarrasser de espaces supplémentaires Enveloppez la formule CLEAN dans la fonction TRIM :

    =TRIM(CLEAN(A2))

    Désormais, tous les espaces avant et arrière sont supprimés, tandis que les espaces intermédiaires sont réduits à un seul caractère d'espacement :

    Si vous voulez supprimer absolument tous les espaces à l'intérieur d'une chaîne de caractères, puis remplace en plus le caractère espace (numéro de code 32) par une chaîne vide :

    =TRIM(CLEAN((SUBSTITUTE(A2, CHAR(32), ""))))")

    Il reste des espaces ou d'autres caractères invisibles dans votre feuille de calcul ? Cela signifie que ces caractères ont des valeurs différentes dans le jeu de caractères Unicode.

    Par exemple, le code de caractères d'un espace insécable ( ) est de 160 et vous pouvez le purger en utilisant cette formule :

    =SUBSTITUER(A2, CHAR(160)," ")

    Pour effacer un caractère spécifique non imprimable Les instructions détaillées et les exemples de formules se trouvent ici : Comment supprimer un caractère non imprimé spécifique.

    Supprimer les caractères spéciaux avec Ultimate Suite

    Prend en charge Excel pour Microsoft 365, Excel 2019 - 2010

    Dans ce dernier exemple, laissez-moi vous montrer la façon la plus simple de supprimer les caractères spéciaux dans Excel. Avec la suite Ultimate installée, voici ce que vous devez faire :

    1. Sur le Ablebits Data dans l'onglet Texte cliquez sur Retirer > ; Supprimer les caractères .

  • Dans le volet de l'add-in, choisissez la plage source, sélectionnez Suppression des jeux de caractères et choisissez l'option souhaitée dans la liste déroulante ( Symboles & ; signes de ponctuation dans cet exemple).
  • Appuyez sur la touche Retirer bouton.
  • En un instant, vous obtiendrez un résultat parfait :

    Si quelque chose ne va pas, ne vous inquiétez pas - une copie de sauvegarde de votre feuille de calcul sera créée automatiquement en tant qu'élément de l'historique de l'entreprise. Sauvegarder cette feuille de travail est sélectionné par défaut.

    Curieux d'essayer notre outil de retrait ? Un lien vers la version d'évaluation se trouve juste en dessous. Je vous remercie de votre lecture et j'espère vous voir sur notre blog la semaine prochaine !

    Téléchargements disponibles

    Supprimer les caractères spéciaux - exemples (fichier .xlsm)

    Ultimate Suite - version d'essai (fichier .exe)

    Michael Brown est un passionné de technologie passionné par la simplification de processus complexes à l'aide d'outils logiciels. Avec plus d'une décennie d'expérience dans l'industrie de la technologie, il a perfectionné ses compétences dans Microsoft Excel et Outlook, ainsi que dans Google Sheets et Docs. Le blog de Michael est dédié au partage de ses connaissances et de son expertise avec les autres, en fournissant des conseils et des tutoriels faciles à suivre pour améliorer la productivité et l'efficacité. Que vous soyez un professionnel chevronné ou un débutant, le blog de Michael offre des informations précieuses et des conseils pratiques pour tirer le meilleur parti de ces outils logiciels essentiels.