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

Fonction TEXTJOIN dans Excel — Joindre toute une plage avec un séparateur (et ignorer les vides)

|

Fonction TEXTJOIN dans Excel — Joindre toute une plage avec un séparateur (et ignorer les vides)

L'essentielTEXTJOIN colle une plage de valeurs en une seule chaîne, place un séparateur entre elles et — c'est la partie que tout le monde manque — ignore les cellules vides pour vous. Syntaxe : =TEXTJOIN(séparateur ; ignore_vide ; texte1 ; …). Le deuxième argument est tout l'enjeu : VRAI saute les vides pour ne jamais produire "Anna ; ; ; Ben" ; FAUX garde les trous. Une limite à connaître : le résultat ne peut dépasser 32 767 caractères (une cellule), sinon vous obtenez #VALUE!. Disponible dans Excel 365 et 2019+.

=TEXTJOIN("; ", VRAI, A2:A100)
=TEXTJOIN(" | ", VRAI, FILTER(Email, Statut = "Actif"))

Pendant des années, transformer une colonne de noms en "Anna ; Ben ; Carla" voulait dire une chaîne de A2 & "; " & A3 & "; " & A4 … qui cassait dès qu'une cellule était vide (un ; ; parasite) ou que quelqu'un insérait une ligne. TEXTJOIN remplace toute la chaîne par une expression : une plage, un séparateur et un interrupteur pour les vides. C'est la fonction du cas « une cellule contient une liste ».

Remarque : dans une interface Excel en français, ces fonctions s'appellent JOINDRE.TEXTE (TEXTJOIN), FRACTIONNER.TEXTE (TEXTSPLIT), CONCAT (CONCAT) et CONCATENER (l'ancien CONCATENATE). Les formules ci-dessous utilisent les noms anglais ; le comportement est identique.

Ce que vous allez apprendre

  • Pourquoi ignore_vide — et non le séparateur — est l'argument qui compte
  • La limite de 32 767 caractères et le #VALUE! qu'elle déclenche
  • Quand TEXTJOIN l'emporte sur CONCAT, CONCATENER et l'opérateur &
  • Comment joindre un résultat déversé (FILTER, UNIQUE) en une seule cellule
  • L'astuce du séparateur que presque personne n'essaie : un tableau de séparateurs

Le modèle mental : un pistolet à colle avec séparateur

L'opérateur & et l'ancien CONCATENER collent deux choses à la fois, et vous tapez le séparateur à la main entre chaque paire. TEXTJOIN est un pistolet à colle : vous le chargez d'un séparateur, vous visez toute une plage, et il pose le séparateur automatiquement entre les valeurs — et seulement entre elles, jamais à la fin. Cette seule différence explique pourquoi TEXTJOIN existe et pourquoi il se lit bien mieux :

' L'ancienne façon — séparateur répété à la main, casse sur une cellule vide :
=A2 & "; " & A3 & "; " & A4 & "; " & A5

' TEXTJOIN — un séparateur, une plage :
=TEXTJOIN("; ", VRAI, A2:A5)

La règle qui débloque tout : ignore_vide est l'essentiel

Voici la plainte numéro un, « ma liste est pleine de points-virgules », et ce n'est pas un problème de séparateur — c'est le deuxième argument. ignore_vide décide du sort des cellules vides :

' A3 et A5 sont vides :
=TEXTJOIN("; ", VRAI, A2:A6)   ' -> "Anna; Ben; Carla"        (vides ignorés)
=TEXTJOIN("; ", FAUX, A2:A6)   ' -> "Anna; ; Ben; ; Carla"    (vides gardés)

VRAI est ce que vous voulez 95 % du temps : une liste propre, sans séparateur doublé, sans point-virgule en tête ni en queue. FAUX est le choix plus rare et délibéré — quand chaque position doit s'aligner sur autre chose (un enregistrement de largeur fixe, un modèle où le champ 3 reste le champ 3 même vide). Si & et CONCATENER paraissent si fragiles, c'est qu'ils n'ont aucun équivalent de cet interrupteur : chaque cellule vide devient un trou visible à nettoyer ensuite.

La limite que personne ne mentionne : 32 767 caractères

Un résultat de TEXTJOIN vit dans une cellule, et une cellule contient au plus 32 767 caractères. Joignez une longue colonne et vous pouvez franchir cette limite — Excel renvoie alors #VALUE!, pas une chaîne tronquée :

=TEXTJOIN(";", VRAI, A:A)    ' -> #VALUE! si le texte joint dépasse 32 767 caractères

Si vous l'atteignez, vous construisez presque toujours la mauvaise chose — une cellule unique est rarement le bon foyer pour des dizaines de milliers de caractères. Joignez une plage bornée (A2:A500) ou demandez-vous si la donnée a sa place dans une seule cellule.

Joindre un tableau déversé en une seule cellule

C'est ici que TEXTJOIN gagne sa place dans l'Excel moderne. Les fonctions matricielles dynamiques — FILTER, UNIQUE, SORTdéversent leurs résultats sur de nombreuses cellules. Parfois vous voulez l'inverse : replier ce déversement en une chaîne lisible (une cellule de synthèse, une ligne « À » d'e-mail, une ligne de CSV). TEXTJOIN prend un tableau directement, alors vous l'imbriquez :

' L'e-mail de chaque client actif, dédoublonné, en une cellule :
=TEXTJOIN("; ", VRAI, UNIQUE(FILTER(Email, Statut = "Actif")))

Aucune plage de déversement à gérer, aucune colonne d'aide — les fonctions internes produisent le tableau, TEXTJOIN l'aplatit. Le séparateur peut même être un tableau de séparateurs ({"; " ; " et "}) si le dernier élément doit être joint autrement — une astuce que presque aucun tutoriel ne montre.

Le jugement : TEXTJOIN, CONCAT ou & ?

N'utilisez & que pour coller deux ou trois éléments connus (Prénom & " " & Nom). Dès que vous joignez une plage ou une liste, la question se résume à : faut-il un séparateur ou ignorer les vides ? Si oui — et c'est presque toujours le cas — prenez TEXTJOIN. Ne recourez à CONCAT que si vous voulez vraiment aucun séparateur et aucun saut de vide ; à la seconde où vous ajoutez & ou SUBSTITUE pour simuler un séparateur, c'est TEXTJOIN qu'il fallait dès le départ.

Comment ExcelMaster aide

Beaucoup de travail avec TEXTJOIN, c'est en fait « transforme cette colonne en une chaîne que je colle ailleurs » : les adresses e-mail de tous les retards, séparées par des points-virgules. ExcelMaster écrit cette formule à partir d'une description en langage naturel — avec l'interrupteur ignore_vide et tout FILTER/UNIQUE qui alimente la jointure — et dépose le résultat où vous voulez. Vous décrivez la liste ; il gère la jointure.

Questions fréquentes

Comment joindre des cellules avec une virgule dans Excel ?

Utilisez =TEXTJOIN(", " ; VRAI ; A2:A100). Le premier argument est le séparateur, le deuxième (VRAI) saute les cellules vides, le troisième est la plage. La virgule et l'espace n'apparaissent qu'entre les valeurs, jamais à la fin.

Comment faire en sorte que TEXTJOIN ignore les cellules vides ?

Mettez le deuxième argument à VRAI : =TEXTJOIN("; " ; VRAI ; plage). Avec FAUX, chaque cellule vide devient un emplacement vide et vous obtenez des séparateurs doublés comme "a; ; b".

Pourquoi TEXTJOIN renvoie-t-il #VALUE! ?

La cause la plus fréquente est la limite de 32 767 caractères — une cellule ne peut en contenir davantage, donc une jointure de trop de valeurs déborde. Joignez une plage plus petite, ou reconsidérez si la donnée doit tenir dans une seule cellule.

TEXTJOIN ou CONCATENER — quelle différence ?

CONCATENER (et &) collent les valeurs sans séparateur et sans pouvoir ignorer les vides, et CONCATENER ne prend pas une plage entière — vous listez les cellules une à une. TEXTJOIN prend une plage ou un tableau, insère un séparateur automatiquement et saute les vides à la demande. Pour les listes, TEXTJOIN gagne à chaque fois.

TEXTJOIN fonctionne-t-il dans Excel 2016 ?

Non. TEXTJOIN est arrivé avec Excel 2019 et Excel 365. Sur 2016, vous revenez à & ou CONCATENER avec séparateurs manuels.

Testé dans

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

Guides connexes : Excel TEXTSPLIT · Excel CONCAT · Excel FILTER · VBA Concaténation