🚀The world's best VBA AI has evolved. ExcelMaster is now an autonomous Agent.Read more →
Back to Blog

SUPPRESPACE et EPURAGE dans Excel — éliminez les caractères invisibles qui cassent vos recherches

|

SUPPRESPACE et EPURAGE dans Excel — éliminez les caractères invisibles qui cassent vos recherches

En bref — Les deux fonctions suppriment des caractères que vous ne voyez pas, mais elles ne chassent pas la même proie. TRIM(texte) retire les espaces de début, de fin et superflus (en réduisant les suites à un seul), mais uniquement l'espace normal, ASCII 32. CLEAN(texte) retire les caractères de contrôle non imprimables, codes 0 à 31 (sauts de ligne, tabulations issus d'un mauvais export). Le piège qui attrape tout le monde : le texte collé depuis une page web ou un PDF transporte souvent un espace insécable, CHAR(160) — et ni TRIM ni CLEAN n'y touchent. La formule qui attrape tout tient en une ligne.

Remarque : dans l'interface française, ces fonctions s'appellent SUPPRESPACE (TRIM), EPURAGE (CLEAN), SUBSTITUE (SUBSTITUTE), CODE (CODE) et UNICODE (UNICODE). Dans les formules, seuls les noms anglais fonctionnent en coulisses ; nous employons ici les deux pour que vous vous repériez dans les menus.

=TRIM("  Apple   Inc.  ")              ' -> "Apple Inc."   (bords + suites internes)
=CLEAN("Line1"&CHAR(10)&"Line2")       ' -> "Line1Line2"   (retire le saut de ligne)
=TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," ")))   ' le nettoyeur universel

Les espaces en fin de cellule et les caractères de contrôle égarés sont les bugs les plus coriaces d'un classeur, précisément parce qu'ils sont invisibles. Une recherche échoue, une SUM tombe trop bas, « Apple » et « Apple » finissent dans deux lignes de tableau croisé dynamique différentes — alors que les cellules semblent identiques. TRIM et CLEAN, c'est ainsi que vous faites correspondre ce qui est avec ce que vous voyez.

Ce que vous allez apprendre

  • La répartition : TRIM cible les espaces, CLEAN cible les caractères de contrôle
  • Pourquoi TRIM conserve les espaces internes uniques (il réduit, il ne rase pas tout)
  • L'espace insécable CHAR(160) qui échappe aux deux — et la correction en une ligne
  • Pourquoi les espaces invisibles cassent silencieusement =, VLOOKUP et le dédoublonnage
  • Le choix de méthode : nettoyer une fois à l'entrée des données, pas dans chaque formule

Le modèle mental : deux agents d'entretien aux missions distinctes

Voyez TRIM et CLEAN comme deux agents d'entretien aux fiches de poste très étroites.

TRIM est l'agent des espaces. Il parcourt la chaîne, retire chaque espace au début et à la fin, et réduit toute suite interne d'espaces à un seul espace. Ce comportement de « réduction des suites internes » est la partie que l'on oublie : TRIM ne signifie pas « supprimer tous les espaces », mais « normaliser l'espacement à un seul entre les mots ».

CLEAN est l'agent des caractères de contrôle. Il retire les caractères bas, non imprimables — codes 0 à 31 — qui se glissent lors d'un copier-coller depuis un e-mail, un export de base de données ou un fichier texte aux mauvaises fins de ligne. Le cas classique est CHAR(10), un saut de ligne coincé dans une cellule qui fait paraître vos données sur une ligne alors qu'elles se comportent comme deux.

Ils ne se chevauchent pas et ne se concurrencent pas. Si votre nuisance est un espacement, c'est TRIM. Si c'est un caractère invisible bizarre ou un saut de ligne, c'est CLEAN. La plupart des données importées réelles ont les deux, ce qui explique pourquoi on les voit si souvent imbriquées : =TRIM(CLEAN(A2)).

La règle qui débloque tout : l'espace que vous ne voyez pas est souvent CHAR(160)

Voici la question de support la plus fréquente à propos de TRIM, et sa réponse justifie à elle seule la lecture de cet article : « J'ai lancé TRIM et l'espace est toujours là. »

Neuf fois sur dix, cet « espace » n'est pas un ASCII 32. C'est un espace insécable, CHAR(160) (le   du HTML), et il arrive dès que vous collez depuis une page web, un PDF ou un rapport mis en forme. TRIM ne connaît que l'ASCII 32, il passe donc à côté du 160. Et CLEAN ne retire que les codes 0 à 31, le 160 lui échappe aussi. Le caractère est invisible, les deux agents l'ignorent, et vous vous retrouvez face à une cellule qui refuse de correspondre.

' La preuve — ceci renvoie 160, pas 32 :
=CODE(RIGHT(A2, 1))          ' -> 160  (« ah, un espace insécable »)

' Convertissez d'abord les 160 en espaces normaux, PUIS nettoyez :
=TRIM(SUBSTITUTE(A2, CHAR(160), " "))

' Le nettoyeur ceinture-et-bretelles pour les imports vraiment sales :
=TRIM(CLEAN(SUBSTITUTE(A2, CHAR(160), " ")))

Le SUBSTITUTE(A2, CHAR(160), " ") remplace chaque espace insécable par un vrai espace, et ensuite TRIM peut faire son travail. Gravez ce motif dans votre mémoire — il transforme « TRIM est cassé » en problème résolu pour le reste de votre carrière.

Pourquoi c'est important : les caractères invisibles cassent la correspondance, pas seulement l'apparence

Les espaces superflus ne sont pas un problème cosmétique. Ils cassent l'égalité, et l'égalité est le socle des recherches, du dédoublonnage et du regroupement.

  • ="Apple"=A2 renvoie FAUX quand A2 vaut "Apple " — l'espace final en fait deux chaînes différentes.
  • VLOOKUP et XLOOKUP renvoient #N/A sur une valeur pourtant « juste là », parce que la clé d'une table porte un espace égaré que l'autre n'a pas.
  • Un tableau croisé dynamique ou UNIQUE sépare "North" et "North " en deux lignes, et vos totaux régionaux comptent discrètement deux fois.

Chacun de ces cas est invisible dans la grille, et c'est ce qui les rend coûteux. TRIM sur la clé de jointure — ou mieux, sur la colonne à l'import — est l'assurance la moins chère d'Excel.

L'angle mort de CLEAN (et celui de TRIM)

CLEAN a été conçu pour la plage de contrôle ASCII, 0 à 31. C'est réellement utile pour retirer les sauts de ligne CHAR(10) incrustés, mais soyez lucide sur sa limite : il ne retire pas CHAR(160), et il ne touchera pas aux autres gremlins de plage haute comme les espaces de largeur nulle (CHAR(8203)) que les copies web modernes peuvent introduire. Pour ceux-là, retour à SUBSTITUTE(A2, CHAR(8203), "").

Le moyen fiable de trouver à quoi vous avez affaire est CODE (premier caractère) ou UNICODE (pour tout ce qui dépasse 255) : encadrez le caractère suspect et lisez son numéro, puis retirez-le par SUBSTITUTE selon ce numéro. Deviner vous fait perdre un après-midi ; CODE/UNICODE vous le dit en une formule.

Le choix de méthode : nettoyer à la frontière, pas partout

L'anti-modèle tentant consiste à parsemer TRIM dans chaque formule qui touche une colonne de texte — chaque VLOOKUP, chaque comparaison, chaque concaténation. Ça marche, mais c'est un signal d'alerte : cela signifie que les données sont sales et que vous payez pour les renettoyer à chaque recalcul, à jamais.

Le geste professionnel est de nettoyer une seule fois, à l'entrée des données. Importez la colonne brute, ajoutez une colonne d'aide avec =TRIM(CLEAN(SUBSTITUTE(A2,CHAR(160)," "))), recollez le résultat en tant que valeurs, et supprimez la colonne brute. À partir de là, les données sont propres et chaque formule en aval reste simple. Si vous récupérez régulièrement des données, les transformations Supprimer les espaces et Nettoyer de Power Query font la même chose en tant qu'étape reproductible — c'est le bon foyer pour un nettoyage récurrent. Prenez les formules quand c'est ponctuel ; prenez Power Query quand c'est un flux de données.

Comment ExcelMaster vous aide

« Pourquoi ce VLOOKUP ne correspond-il pas — les valeurs ont l'air identiques » fait partie des questions les plus fréquentes, et la réponse est presque toujours un espace invisible. ExcelMaster vérifie exactement cela : il repère l'espace final ou le CHAR(160), vous dit quel caractère est le coupable, et écrit la combinaison TRIM/CLEAN/SUBSTITUTE qui corrige toute la colonne — pas un pansement enroulé autour d'une seule formule. Vous décrivez le symptôme (« la correspondance échoue sans arrêt ») ; il trouve la nuisance que vous ne voyez pas.

Foire aux questions

Quelle est la différence entre TRIM et CLEAN dans Excel ?

TRIM retire les espaces superflus — de début, de fin et internes répétés (en les réduisant à un seul), mais uniquement le caractère espace normal (ASCII 32). CLEAN retire les caractères de contrôle non imprimables (codes 0 à 31), comme les sauts de ligne incrustés dans une cellule. Utilisez TRIM pour l'espacement, CLEAN pour les caractères invisibles égarés ; imbriquez-les en TRIM(CLEAN(A2)) pour les deux.

Pourquoi TRIM ne retire-t-il pas l'espace de ma cellule ?

Parce que ce n'est probablement pas un espace normal. Le texte collé depuis le web ou un PDF contient souvent un espace insécable, CHAR(160), que TRIM ignore. Vérifiez avec =CODE(RIGHT(A2,1)) — s'il renvoie 160, corrigez avec =TRIM(SUBSTITUTE(A2, CHAR(160), " ")).

TRIM supprime-t-il tous les espaces entre les mots ?

Non. TRIM conserve un seul espace entre les mots et ne retire que les superflus, ainsi que tout ce qui est au début et à la fin. TRIM("a b") renvoie "a b", pas "ab". Pour supprimer chaque espace, utilisez plutôt SUBSTITUTE(A2, " ", "").

Comment supprimer les sauts de ligne d'une cellule ?

Utilisez CLEAN, qui retire le caractère de saut de ligne CHAR(10) : =CLEAN(A2). Si le saut de ligne a été inséré sous forme d'un autre caractère, ou si vous voulez aussi le remplacer par un espace, utilisez =SUBSTITUTE(A2, CHAR(10), " ").

Qu'est-ce qui retire à la fois les espaces superflus et les caractères non imprimables ?

Imbriquez les trois outils : =TRIM(CLEAN(SUBSTITUTE(A2, CHAR(160), " "))). Le SUBSTITUTE convertit les espaces insécables en espaces normaux, CLEAN retire les caractères de contrôle, et TRIM réduit l'espacement restant.

Testé dans

Testé dans : Excel 365 (Windows 11) — dernière vérification le 06/07/2026.

Guides associés : Excel SUBSTITUE et REMPLACER · Excel NBCAR · Excel MAJUSCULE, MINUSCULE et NOMPROPRE · Excel CNUM et CNUMVALUE