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 là avec ce que vous voyez.
Ce que vous allez apprendre
- La répartition :
TRIMcible les espaces,CLEANcible les caractères de contrôle - Pourquoi
TRIMconserve 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
=,VLOOKUPet 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"=A2renvoie FAUX quandA2vaut"Apple "— l'espace final en fait deux chaînes différentes.VLOOKUPetXLOOKUPrenvoient#N/Asur 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
UNIQUEsé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
